|
Re: Programmers Shouldn't Touch the Source
|
Posted: Nov 9, 2005 12:16 PM
|
|
> > > 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? > > My comment was about Mr. Wilson's article, not any of Mr. > Diggins' postings. I'm sure you run across articles and > blog postings that begin by wondering why text files, > Unix, vi, emacs, C, what have you have hung on for so > long, followed by the author proposing a better whiz-bang > solution. What they often miss is that the longevity and > hardiness of the simple formats and tools is the reason > for their continued usefulness and adaptibility. Mr. > Wilson attributes the persistence of text files and vi to > aging stick-in-the-mud programmers like me. I attribute > the persistence (and ongoing adoption by lots of young > programmers every day) to their usefulness. That's why I > predicted that in ten years I (and lots of other > programmers) will still be saving text files of source > code from vi and its like, and XML will find its proper > place as a replacement for proprietary binary EDI > formats.
There may be a lot to that. As the "Pragmatic Programmers" have pointed out (in the chapter "The Power of Plain Text"): A common standard of information storage and exchange, means that tools from anywhere can work together, if they use that common standard. Plain text is one such universally understood standard.
> > 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. > > When any of that moves beyond research projects into > something useful I'll gladly change my mind. The > disconnect between what researchers do and what happens in > the world of real data and real programs is pretty big.
Yes, but remember that things like high-level languages, OO, and generic programming, were once "research projects", as well. :) But, yes, so far, it's mostly research. I didn't say "This is the biggest thing", or something like that. I just find it interesting, and that it _may_ become a big thing.
When I first read about "generative programming" (in the book by the same name - quite a lot to read, but, to me, very rewarding), and in particular the example of "Intentional Programming" (Microsoft's research project), it was an "a-ha!"-moment for me. You see, many years ago (15-20) I played with the idea of a language where you could define your own language (keywords, etc.). I didn't really pursue this idea further, but when I read about IP, it was, like, "They've done it!" :)
One really hard part is how to present a meaningful interface to the user. The AST of even a moderate size program can be very complex, and the structure may easily be lost in a sea of details.
> It was Mr. Wilson who offered XML as an alternative to > text and ridiculed aging programmers and their devotion to > text-based tools. The original posting by Mr. Diggins > offered XML as a structured alternative to plain text. I > don't know what the deal is with "tree structures" that > keeps coming up. An outline (in text) can, for example, > represent hierarchies. What do tree structures have to do > with program source code?
From what I understand, you can more or less represent a program in such a structure (an AST). However, there may of course be links between the nodes, across the tree.
> > What you talk of as "personalized Towers of Babel", > others > > may call a DSL. > > A DSL is great as long as it stays in its specific domain. > What Mr. Wilson and Mr. Diggins describe is DSLs released > into the wild.
What I've read of projects like these, is that they are more of a "meta-language", i.e. a language to define a language (such as a DSL).
Regards,
Terje
|
|