Sunday, October 14, 2007

IDE's vs vi

I just told my friend that instant IDE support for new languages is the place to be (I truly believe this can happen). In response he told me, "I love vi."

I know vi, and I can get around in it OK, but I'm not a hardcore vi guy. I know there are some things you can do in vi that are really nice and allow you to do some things very quickly and powerfully. But, I don't know what they are. The real question here is, can vi do things that modern IDE's cant do? Can someone explain to me this?

I do think that vi is ancient technology, and I'm sure thats old news anyway. I don't know very many people who use vi or emacs anymore. I'm sure a lot of people would look at my friend funny for that comment. But I'm a little different. I'm curious.

What features do retired editors have that modern IDE's lack?


  1. Hi JC,

    I use emacs and vi. Emacs is great for serious work and vi is great for small tasks.

    Neither of them is a "retired editor" - both of them knock the socks of the editors that come with IDEs.

    I don't think it's realistic to try to describe what Emacs can do and Eclipse can't in a blog comment. Consider this, though: emacs is implemented on top of a dialect of lisp (elisp or emacs lisp). When you enter a character, you are running a function. As a user, you can modify virtually any behavior. You can write your own programs as modes for a particular buffer - mail readers, news readers, web browsers, ftp clients, whatever you want.

    Maybe you can get an idea by watching the movie linked to from this page: (Emacs SLIME mode - used for common lisp developement) or by checking out the emacs blog or the emacs wiki and seeing what you can find.

    Here's a more inflammatory way of describing the situation, rather the reverse of your "retired editors" thing - the things that Java IDEs are good at are important to Java devs because Java sucks. Someone working in CL, Erlang, Haskell, ... has no use for elaborate tools to save retyping endless boilerplate when they change their mind, because they don't have the elaborate boilerplate to being with. That's about 90% of the "refactoring support" gone right there. It's trivial in any language with a REPL to run a given function with given arguments right from the editor, so goodbye to a whole lot of specialized support for unit test frameworks - emacs can already send your code to whatever compiler or interpreter you want.

    That should be a good start.

  2. “I tried to take what lv handbag had done at replica louis vuitton handbags and then kind of flip it in my head, and make it lv work for Stephen, not Stephen’s work for Vuitton,” Jacobs said. “I just felt it was a funny way to play with it, to pretend to be louis vuitton handbags for a bit, and use the work that he did, and then bring it back to the work that he did before I collaborated with him.” – Marc Jacobs
    The new louis vuitton bags and Rose collection coincided with the Stephen Sprouse retrospective called “Rock on Mars” at Deitch Projects’ 18 Wooster Street gallery from Jan. 8 to Feb. 28, and “The Stephen Sprouse Book,” by Roger Padilha and Mauricio Padilha, due out from louis vuitton New York on February 1.