Who Taught Me What Goodly
Steele argues that the choice comes from how the developer learnt, and their productivity is higher depending where their focus is. If the developer is language focused, then emacs is superior to Visual Studio for jumping between languages. Conversely if the focus is on the tools, then the editor is the commodity, and the IDE becomes more important. Steele writes;
Why can't one be a language maven and a tool maven? It's hard. One reason is that developers have limited time, especially for learning new skills. You can use any given block of time to master language features, or to master development tools. Each of these choices contributes to a positive feedback cycle, but they're competing cycles, so they create divided camps.
I have way too much invested in emacs to make a move to another IDE easy. My .emacs file is littered with major-modes and customization. I even do my diaries in emacs in html-helper-mode. I periodically try new IDEs like Eclipse and Visual Studio (when in C#) but quickly get disoriented when it puts my source files in positions outside of the normal file system structure I am use to. As to compiling, I have sophisticated, lengthy and portable ant and shell scripts built up over time to handle any compilation scenario.
I am probably a language maven according to Steele, which is funny as I don't care about languages much, but like jumping from language to language, which again makes emacs a better environment than say - Visual Studio. I have also invested a fair bit of time into how I work with lots of helper scripts and the like, such as continuous integration: so dumping them for an IDE would make me less productive for a period. Which is the positive feedback loop Steele is talking about.
Steele also sums the pressures of this feedback loop in the "Language Dilemma";
In fact, the most powerful languages may initially have the least powerful tool support. The reason for this is that the language developer, like the language adopter, has to make a choice: whether to dedicate limited development resources towards language features, or towards tool support.
This means that only a language that achieves some kind of mass weight will get the support and tools that will expand its usage to the tool mavens as Steele calls them. Java achieved this through the backing of Sun, as did C# through Microsoft's tool support. There are plenty of languages though that are limited to emacs/vim support. But the ones that achieve that critical weight of usage are used by both the language and tool focused developers
Me, Me, Me, Me
On emacs usage Steele writes;
A sophisticated emacs user, who uses something like psgml-mode or jde for every single language they edit, is arguably in both camps. I haven't met many of those, though. The emacs users I know use it configure it as an HTML-editor or a TEX-editor, say, but use it as a text editor for everything else.
My .emacs is littered with different major-modes for each of the languages I use, as well as the JDEE - which makes me in the blurry part of his diagrams as I am IDE'ing the emacs environment. But even so, I don't use all the tools that are available from the drop down selections. All thought all emacs users first customized their environments like that. Obviously not.
I don't use emacs to IRC, but a grammar checker would be awesome.
cam
| < :-) | BBC White season: 'Rivers of Blood' > |

