The Software World and Its Famously Endless Debates.
Software is one of the fastest-growing and most rapidly changing industries. It's also one of the most diverse fields in terms of programming languages, methodologies, tools, and ways of being used. Ideas and products are highly varied…
Software is one of the fastest-growing and most rapidly changing industries. It's also one of the most diverse fields in terms of programming languages, methodologies, tools, and ways of being used. Ideas and products are highly varied…
The Software World and Its Famously Endless Debates — post content
Software is one of the fastest-growing and changing industries. It is also one of the fields with the greatest variety in terms of programming languages, methodologies, tools, and ways of being used.
When ideas and products are so diverse, debates are inevitable. These debates, in which usually neither side is entirely wrong, can sometimes go on for many years and even fail to reach a conclusion.
Tabs or spaces?
In programming, writing code with different indentations is important. By writing the code inside a function indented a bit, the part inside a loop indented a bit further, and so on, the code becomes easy to read and understand.
So when applying these indentations, should the Tab character be used, or should a certain number of spaces be used?
The answer to this question has been a topic of debate for many years. Those who advocate for spaces say that a Tab character can mean 8 spaces in Unix and 4 spaces in Macintosh, and that for a common standard a specific number of spaces should be used.
Those in favour of tabs argue that everyone gives spaces in different ways and that the real standard is established by using the Tab character.
In most modern programming editors, how many spaces the Tab key produces is left up to the user. Those who prefer to insert spaces instead of tabs may use 2, 4, or 8 characters depending on different habits.
Where should the curly brace go?
In C and similar programming languages that came after, curly braces { } are used to indicate the beginning and end of a program, a method, or a loop. The way these braces are used is also another topic of debate.
According to the explanation in Wikipedia;
In the K&R (Kernighan and Ritchie) style, widely used in classic C, in the 1TBS (The One True Brace Style) used in writing the Unix/Linux kernel, and in the BSD KNF style used to write the BSD Unix source code, the opening brace is placed on the next line for methods, while in loops within a method it is placed on the same line. The closing brace is placed in line with the start of the method or the loop.
In the Allman style, known as the ANSI C standard, braces are always placed on separate lines. In this method, since each brace appears on a single line, the line count of the code increases. But at the same time, readability also increases.
Again, which of these two methods you prefer is up to you.
Should there be a space after the equals sign?
Another topic of debate is whether to leave a space around the = (equals) character in variable assignments or in conditional statements.
For example, should it be variable=value or variable = value? The answer to this question varies; because in many programming and scripting languages, the meaning of using a space can change.
GNU/Linux or Linux?
One of the debates of the open source software world is whether the name of the Linux operating system should be used as GNU/Linux or as Linux.
GNU (GNU's Not Unix — a recursive acronym) is a project started by Richard Stallman in 1984 to create an alternative to Unix that consists only of free software. In 1991, when Linus Torvalds wrote the Linux kernel, some GNU programs were ported to run on Linux, and later the other parts of GNU were also moved onto Linux. Thus, a complete operating system emerged.
However, in subsequent years, what to call this operating system, made up of the Linux kernel and GNU programs, has been a topic of debate. Those who advocate the name GNU/Linux want it to be accepted as an identity because it represents the full name; those who advocate the name Linux argue that since easier and more widespread use has emerged, the name of the operating system should remain as Linux.
Richard Stallman wants people to say GNU/Linux when talking about the operating system, and Linux when talking about the kernel. Linus Torvalds, on the other hand, says that if a GNU distribution like Debian Linux or Redhat Linux is to be prepared, then it can be called that, but calling Linux GNU/Linux is funny.
Should the source code be open or closed?
The debate has been going on for years between the open-source philosophy, which wants the source code of developed software to be open and accessible, and the companies that argue the source code should be kept secret.
The open-source philosophy says that open-source applications provide reliability, that contrary to popular belief they do not create security vulnerabilities, and that since the code can be seen by many people, errors can be fixed in a short time. It also claims that since it can be developed by anyone, the result is more solid and of higher quality.
Companies advocating closed source, led by Microsoft, argue that closed-source applications are more secure, that more people seeing the code will not be enough to fix errors, and that having different people interfere with the code is more harmful. They also argue that the licence fees received from software are used in R&D activities, while many open-source software projects use their ideas without doing R&D activities.
Is software development art or engineering?
Software products show, both in terms of the way they are made — as a work of art — and in terms of the logic and approach to problems they contain — as a science or engineering structure.
The point being debated is which one software development fits more.
Those who advocate the engineering view put forward the approach that software development is a profession with its own dynamics, working principles, and rules, that processes need to be approached scientifically, and that solutions need to be produced in an analytical and systematic structure to needs.
Those who claim it is an art, on the other hand, think that developers are providing handwork that requires talent, that because of interface designs, reporting, and so on each piece is a work of art, and that software developers cannot work under discipline but can produce quality work when left free.