3 ms·
Good question! I'd also add the questions Why are we still programming with the semantics of 80-column punched cards? Why are programs even structured as sequen
by kens 10y ago
Good question! I'd also add the questions Why are we still programming with the semantics of 80-column punched cards? Why are programs even structured as sequential lines?
The lines within a method need to be ordered, but beyond that, code should just float to where it's convenient and be hypertext-y. And worrying about whitespace and fitting code on a fixed-length line is pointless.
I don't have the answers to how programs should be written, but the current system just seems wrong, locked into decisions made decades ago. It seems like programming is stuck at a local maximum.
- kmiroslav 10y ago> Why are programs even structured as sequential lines? Same reasons books are structured as sequential lines: easier to read for humans. And the reason why source code is still heavily text based and why introducing more WYSIWIG to it would be disastrous is that all the peripheral tooling would become a nightmare (diffs, code reviews, source control, etc...).
- userbinator 10y agoThere's been articles posted to HN that have attempted to explain why textual source code has become the norm, but from what I remember it comes down to simplicity (and with it, efficiency of storage and processing) and portability. It's the same reason why files as plain sequences of arbitrary bytes won over structured/more "rich" formats, and the "everything is a file/stream of bytes" model of Unix dominated; all the complexity involved in handling things like embedded formatting instructions, resource forks and other nuances is a huge obstacle to widespread implementation and interoperability. The phrase I remember reading in reference to this is "text is universal", and I agree completely. One would naturally wonder how Alto/Mesa managed to have all these features, and the answer is simple: it is effectively a closed proprietary ecosystem, developed by one company with plenty of engineering effort, and with little consideration for interchange with other systems. It also had far more processing power than personal computers of the time. I don't have the answers to how programs should be written, but the current system just seems wrong, locked into decisions made decades ago. It seems like programming is stuck at a local maximum. Never underestimate the importance of simplicity and a low "barrier to entry" --- in fact, I'd consider the lack of success of much larger, "fancier", more complex systems like the Alto as a strong evidence that, regardless of how fancy, featureful, and radical your system is, unless it has a low barrier to entry and interoperates with existing ones, it will not endure the test of time.
- Animats 10y agoI suspect that part of the reason is that Microsoft Word's internal representation is such a mess. Making a compiler read .doc files would be a major effort. So writing code in Word never caught on.
- pjmlp 10y agoThis is what drove me away from GNU/Linux back into the worlds of Mac OS X and Windows, as the developer communities view of the world isn't Vi/Emacs + CLI. Working on .NET, Android or Mac OS X/iOS is a much closer experience to working with Alto and Star environments, or even ETHZ Oberon derivatives.
- dfox 10y agoThere are various programming environments where source code is not structured as big sequential files, but as sets of individual methods, Smalltalk with roots on Alto being one of them (other such environments are various "4GL database systems"). While ST80 has standard textual source code format, it's not something you want to write by hand but essentially an semi-convenient serialization format (with slightly hackish implementation).