The advantage of Linux is that many, many eyeballs review the code, and the authors know that their code will be seen and criticized in public. That probably encourages them to be more careful. Plus, the code is debugged by many, many people.
Most programmers work on their bit of code alone. Nobody checks their source code but themselves. They don't comment because they figure they will remember their design intent forever, or because they were never taught to document their own code.
What do you mean by "real design"? I do real products in assembly. Most truly mission-critical, lives-depend-on-it programming (like the stuff that flies airplanes) is done in Ada.
BASIC is great for people like engineers who just want to get the computing done, correctly. PRINT USING alone is a good reason to program in BASIC.
Absolutely. PB has all the modern constructs, WHILE, CASE, TRY/CATCH, graphics, all that. But I still think in state machines, and GOTO is a perfectly good way to structure state machines. Nothing flow-charts as nicely as a program based on GOTOs. The anti-GOTO nonsense was started by Dijkstra, who didn't program much himself and didn't have regular access to a computer.
Software should be like hardware: do it the cleanest way, take your time, document it thoroughly, get it right the first pass.
It rarely is. If you consider all the components of a complex system, software is the least reliable, the hardest to manage, the hardest to maintain, the most likely to destroy the company, and usually the most expensive.
John