4 ms·
A fun reminder that where most programmers (I suspect) are of the iterative sort -- especially where the language is concise and testable -- Knuth is an inveter
by jeremyw 17y ago
A fun reminder that where most programmers (I suspect) are of the iterative sort -- especially where the language is concise and testable -- Knuth is an inveterate planner. If you've trained yourself to strategize mathematically and execute long streams of pseudocode in your head, a word processor is your friend. :)
That said, I've long wanted more expressive commentary in the trickier parts of the codebase. i.e. some kind of comment xml that IDEs make into a rich text area, for the diagrams and maths and whatnot.
- stcredzero 17y agoWhy not do the entire codebase as some sort of nested structure, designed only to be presented inside an IDE? So not only comments, but types, namespaces, every bit of programming metadata there is. Many programmers feel insecure abandoming their text editor -- because this is something they're accustomed to and which they understand conceptually. Some sort of nested structure expressed in a markup language like XML would be just as understandable conceptually. Many of the incompatibilities between languages would disappear if there was a widely used standard for such a code representation.
- jeremyw 17y agoFlat files continue to have a simplicity, portability and fungibility that is difficult (if not folly! :) to walk away from. Instead, there are opportunities to enhance things in ways the are still perfectly useful in emacs/vi.
- stcredzero 17y agoAs a user of Smalltalk for almost a decade, let me assure you that walking away from source files is not folly! In fact, I get something which is just as nimble and reliable, and yet even more powerful. I can write snippets of code that act like queries into my codebase. With a short script I can rewrite broad swaths of my code with syntactic precision, and with a little work be assured that I have done a perfect refactoring. I can undo/redo all changes. I can even do dangerous things that even bring the VM to a screeching halt, and not lose any code. All of this is enabled by giving up source files and going to a "change log" which is like a transactional log of my changes. You can think of this as something like going from ext2 to ext3, then onto ZFS.
- pgbovine 17y agoi haven't looked into this myself, but i think that Mathematica 'notebooks' tries to reach this ideal of "just leave everything in mathematica, and we'll take care of code, tests, visualizations, documentation, etc."
- eru 17y agoYou may want to have a look at PLT Scheme, which does something similar. (Though I'd bet my nose that they do not use XML.)