Re: Programmers Shouldn't Touch the Source
Posted: Oct 26, 2005 7:27 AM
> This is an old idea. 30 years ago timeshared BASIC systems
> stored programs as bytecodes and rendered them as text for
> viewing and editing by a programmer.
Are you referring to storing the keywords as tokens ("bytecodes")? BASIC for the home computers (prior to the PCs) used to have this, as well. As I understand, the reason for it was to conserve space (as these had little memory, compared to today's computers).
However, at least for BASIC on the home computers, there was a one-to-one mapping between token and textual representation, and they didn't store the program in any kind of AST form, nor did the format allow selective viewing of the source, such as turning on/off comments. The goal was to save space in the program file, not to aid reading of the code, or enable program transformations. So if this is what you refer to, then you can't really say it's the same idea. That would be like saying this is the same idea as what Java does with compiling to bytecodes... (Yes, that's _also_ an old idea, dating back to Pascal's p-code, or earlier, but it's not the same as one-to-one mapping between text and internal representation).
> Every article that begins with the author
> expressing wonder that Unix has survived for so long is
> immediately suspicious; I think the author is either
> inexperienced in the real world, unable to learn something
> difficult, or a crank.
I don't understand what you refer to here, because I don't find anything of this sort in Christopher's blog, or the linked-to article. Could you provide a quote?
> Tacking XML onto any old idea makes it seem new to the
> wide-eyed inexperienced audience Mr. Wilson is writing
> for. Us old relics, hanging on to Unix and vi and command
> line programs, who Mr. Wilson arrogantly sneers at while
> he waits for us to die and retire, need to get out of the
> way of progress. We need to make way for the "next
> generation" of programmers who have new ideas that can't
> be held hostage by text files and command line tools and
> languages that can't be arbitrarily extended into millions
> of personalized Towers of Babel.
You may scoff of this, but I also think this may be the "next big thing". A lot of indicators point in that direction, such as numerous research projects (several links were given in a posting by Christopher), conferences on "generative programming", etc.
I don't think Mr. Wilson thinks this will be "the end of command-line tools way of doing things" - using text as the common medium and piping it from program to program, as that still works fine for data structured as records or tables. However, it will take more than ridicule to counter his arguments of its shortcomings, such as the difficulty of representing data in a tree structure this way. Besides, as someone else pointed out, "text" is not a format in itself - it's more of a medium - so comparing "text" to "XML" (a way to structure text) is like comparing apples to oranges.
What you talk of as "personalized Towers of Babel", others may call a DSL. Similar to the Unix model of small programs doing one task well, you may also have DSLs working well for a specific task or domain, allowing you to write programs in a more natural way in that domain. That's already used to a great extent, today (HTML, SQL, regex, etc.).