John Joyce wrote: > > On Apr 14, 2007, at 10:05 AM, Tim X wrote: > >> Todd Werth <twerth / infinitered.com> writes: >>> >> >> I think one of the real potential benefits of a more sophisticated >> IDE is the >> ability to move from basic syntax highlighting of code to something >> more like >> semantic highlighting of code. While syntax highlighting is nice, >> syntax is >> usually only an issue when first learning a language. Once you have >> experience, >> help with semantic issues is probably more beneficial. >> >> Tim >> >>> > If you need semantic highlighting in Ruby code, then you're doing > something wrong semantically. Ruby code should generally be short and > sweet and well organized into lots of files. The code blocks should be > pretty self descriptive. Semantic highlighting defeats the point of > syntax highlighting: the ability to see mistakes by color! I think we're starting to get into language design and language processor implementation issues here, and I'm all in favor of debating that. :) First of all, how many programmers *really* program in only one language? And how many programmers *really* program on a "team of one?" I'd venture to guess that the answer to both questions is "almost none". I've been programming a long time, and there were in fact a number of times when I was on what were essentially one-person one-language couple-of-month projects. But the last time I can remember was a FORTRAN port of a finite element code I did in the late 1980s. Since then, nearly every programming project I've been part of has involved multiple programmers and multiple languages. And FORTRAN (77) is probably the last language I ever used where I could claim with a straight face that I knew *all* the syntax and semantics. So that's why there *must* be IDEs. Nobody works *alone* and nobody knows it *all*. As I've said before, I think I can make a case for the Linux desktop as an IDE. I have my choice of two mainstream programmers' editors, vim and emacs, all of the languages (except Visual Basic), compilers, debuggers, Acroread, "info" and "man" to read the manuals (since I don't know all the syntax and semantics), SVN, CVS and a few other version control systems, and many other intra-team communications tools. So ... syntactic highlighting? Aside from the two languages with more or less trivial syntax, Lisp/Scheme and Forth, I find it impossible to live without syntactic highlighting. I program in at least Perl, Ruby, R and "bash", plus a couple of obscure things I can't mention here. None of them have the same syntax. Code completion? Saves me a trip to the on-line manual! And I'd dearly love to have semantic highlighting! Since I still tend to think in assembler, I need something to get me up to a higher level. For example, I'd love an IDE that draws diagrams of my data structures for me. I'd love to be able to, for example, see a hash with keys and values right there on the screen. But what I'd *really* like is a language and an implementation of that language that *was* an IDE! The closest thing to that I've ever seen is the intricate entwining of Lisp and Emacs, and that, in a kind of linear, one-dimensional, "auditory" way, is the core concept. But expand that -- data structures other than the linked list, two-dimensional and three-dimensional diagrams, color, stereo sound, animation. And, of course, it needs to be open source. :) -- M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P) http://borasky-research.net/ If God had meant for carrots to be eaten cooked, He would have given rabbits fire.