[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


At 01:35 PM 11/29/01, Don Blaheta wrote:
>Quoth Scott McKay:
> > At 05:58 PM 11/28/01, Paul Graham wrote:
> > >I agree with you about development enviroments.  My personal
> > >favorite is vi + load.
> >
> > OK, now I'll bait you ;-)

Hey, I said it was bait.  This is the only other mail I'll send on the
subject, because I don't want to waste other people's time.

> >
> > I think that we as a professional should be collectively embarrassed that
> > anybody can make this claim without being stripped of all honors and rank.
>I for one use vim and {load,javac,g++}, and I'm perfectly happy with it;
>I have yet to see an IDE with an editor that even approached the power
>of vim or emacs, not to mention that most of them have their own set of
>editor commands to learn (some use emacs commands; virtually none use vi
>commands).  That's ridiculous!  Why should every IDE out there have to
>code up its own editor?  Furthermore, why should I have to learn a new
>editor just to code in a different IDE?  Fortunately, most IDEs have
>some way---often unintentional---of using an outside editor.  (DrScheme,
>for instance, has a "revert" menu item that works nicely to load an
>updated version of the file.  Too bad it's not considered useful enough
>for a keyboard shortcut!)

Many environments are more than just their editor, though.  I think that
programming environments should make an effort to themselves be
programmable, and should be glued to the most popular editors (OK,
vi and emacs), but that's just a start.

A competent programming environment will provide such basic tools as:
  - who calls/calls who
  - ways to dig around in class hierarchies
  - a source level debugger that includes source stepping
  - a way to do "edit definition" from anywhere
  - simple profiling tools
  - etc

Most reasonable environments at least have these things, although
some make even these operations less than crystal clear.  "vi + load"
(or "emacs + load") provides not even these basic features, and I
think the fact that many of us think it's reasonable to hobble ourselves
should be a source of embarrassment to all of us.  (FWIW, emacs
+ javac/java is what I'm pretty much reduced to when hacking Java,
so my finger points at me, too.)

(As an aside, the Dylan environment I worked on... has its own editor.
Why?  Well, we looked at all sorts of off-the-shelf editing technology,
and it fell into four categories:
  - too crappy
  - too expensive
  - not extensible
  - infected your product with overly restrictive licensing agreements
We spent a year of calendar time trying to find something before we finally
gave up in disgust and wrote our own.)

>Regarding the vi/emacs divide (which I don't think you were talking
>about, but someone will inevitably bring up): it's all about what you're
>used to; you get annoyed having to deal with modes, I get annoyed having
>to twist my hand into pressing Control-Shift-Meta-Alt-Foo-Bar-Baz-X
>every time I want to exectue a command.  Tomato, tomato.  At this point,
>vim and emacs are equivalently powerful in the text-editing domain, and
>it's silly to a priori advocate one over the other; but I'd advocate
>either over any of the IDE editors.

Does vi have "tags tables", just out of curiosity?  That's one of the things
I find I can't live without...