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.