Will Emacs make me a better programmer?

36,012

Solution 1

First let me say, I am a self professed true believer in the cult of Emacs.

That said, the blogger is nuts. You write in what you find useful. I find that Emacs helps me, mainly because I spent my college years pre-paying the start-up cost of learning how to modify it to suit my needs, and modifying myself to its needs.

But other people do things differently, and as they say "That's OK".

Solution 2

He (Steve Yegge) has elaborated on this, in bits in pieces, in other postings of his. http://steve-yegge.blogspot.com/2008_04_01_archive.html is probably the most comprehensive, but the info is buried in there since it's on a tangent to the main subject.

I guess to summarize: the programmers who are merely good or competent will pick up an IDE and get to know it really well, and maybe do decently enough in it, but they'll restrict themselves to what the IDE provides for them. In other words, they adapt themselves to the IDE. The great programmers, on the other hand, will adapt their environment to suit themselves, in such ways as writing scripts or their own tools, or extending their tools. And to that last point, not only Emacs is the most extensible environment there is, it is also the easiest environment to extend there is, and it is the environment where you reap the most benefit from extending it--your extensions integrate into Emacs like they are stock features, and so your future extensions may build upon your previous ones (positive-feedback-loop kind-of thing).

Solution 3

The best programmers use vi or emacs, because the most experienced programmers are the best, and 20 years ago, there wasn't much choice except vi and emacs.

After having started with vi (ca. 1987) on a machine with a very slow text terminal, I converted to (GNU) Emacs after a few years (on a faster machine), and used it almost exclusively for nearly 10 years.

Emacs was the first truly integrated development environment - the whole edit/link/compile cycle could be controlled in emacs, and you could roll your own for whatever compiler you used.

Nowadays, IDEs such as eclipse are even better integrated (to be honest: emacs sucks at graphics), but Emacs is still one of the best environments for "pure" text editing.

Solution 4

Improving your clear thinking and problem solving will make you a better programmer. No program can do that.

Using a better hammer won't help me build a nicer house unless I know how and why. ;)

Solution 5

Yegge needs to meet Bill Joy. Not only is he one of the great programmers in the world, he also wrote large chunks of vi. In vi.

Short Shameful Confession: After 20 years of using vi (and vim/gvim in recent years) for everything, in the last year or so I've started using Eclipse for java editing (and Thunderbird for email), although at my current job my machine has so little memory that I usually use vi except when I need the debugger.

Share:
36,012
Juliet
Author by

Juliet

Read the F# Wikibook.

Updated on June 15, 2022

Comments

  • Juliet
    Juliet almost 2 years

    Steve Yegge wrote a comment on his blog:

    All of the greatest engineers in the world use Emacs. The world-changer types. Not the great gal in the cube next to you. Not Fred, the amazing guy down the hall. I'm talking about the greatest software developers of our profession, the ones who changed the face of the industry. The James Goslings, the Donald Knuths, the Paul Grahams, the Jamie Zawinskis, the Eric Bensons. Real engineers use Emacs. You have to be way smart to use it well, and it makes you incredibly powerful if you can master it. Go look over Paul Nordstrom's shoulder while he works sometime, if you don't believe me. It's a real eye-opener for someone who's used Visual Blub .NET-like IDEs their whole career.

    Emacs is the 100-year editor.

    The last time I used a text editor for writing code was back when I was still writing HTML in Notepad about 1000 years ago. Since then, I've been more or less IDE dependent, having used Visual Studio, NetBeans, IntelliJ, Borland/Codegear Studio, and Eclipse for my entire career.

    For what it's worth, I have tried Emacs, and my experience was a frustrating one because of its complete lack of out-of-the-box discoverable features. (Apparently there's an Emacs command for discovering other Emacs commands, which I couldn't find by the way -- it's like living your own cruel Zen-like joke.) I tried to make myself like the program for a good month, but eventually decided that I'd rather have drag-and-drop GUI designers, IntelliSense, and interactive debugging instead.

    It's hard to separate fact from fanboyism, so I'm not willing to take Yegge's comments at face value just yet.

    Is there a measurable difference in skill, productivity, or programming enjoyment between people who depend on IDEs and those who don't, or is it all just fanboyism?

  • rmeador
    rmeador over 15 years
    +1 for vi (actually, use vim, but same difference). It's 98% of what emacs can do for less than half the effort.
  • David Thornley
    David Thornley over 15 years
    Is there such a thing as a good IDE, sonny?
  • Brian Postow
    Brian Postow over 15 years
    Emacs DOES have a M-x vi-mode although, I suspect that that was sort of a joke...
  • Elijah
    Elijah over 15 years
    Why is this limited to emacs? I often modify Netbeans (via plugins, api, config) at work for the benefit of the other developers working on the same project. Couldn't what you are saying be applied to any open source IDE?
  • arkap
    arkap over 15 years
    Fanboys dude. IDE is not Editor. IDE need not be the best editor.
  • shsmurfy
    shsmurfy over 15 years
    The difference is the energy it takes to extend the IDE. With emacs, all the configuration files are elisp program files. So essentially, the barrier for entry is ridiculously low (just change your .emacs file)
  • Rob
    Rob over 15 years
    A good analogy for what I wanted to say, too.
  • Rob
    Rob over 15 years
    Whereas Visual Studio would completely miss that opportunity, and instead content itself with rifling through your wallet to see if there was any spare cash.
  • Juliet
    Juliet over 15 years
    As an aside, I might be inclined to try SlickEdit if it weren't for the braindead marketing: "10 reasons not to use SlickEdit -- #1: you like being a bad programmer. #2: you want to spend more to do less. #3: you're an inbred moron. etc etc etc"
  • Bob Cross
    Bob Cross over 15 years
    Sorry, I wouldn't know. I use Netbeans almost all the time and emacs when I need it.
  • Kibbee
    Kibbee over 15 years
    Along the same lines as Angus. A good IDE shouldn't have to be tinkered with endlessly to get the job done. A good IDE should have all the features one needs. Sure you may want to configure the shortcuts and layout, but you shouldn't need to write a bunch of scripts to handle everything.
  • chris
    chris over 15 years
    Kibbee: I started using emacs almost 18 years ago. In that time, I have rarely had to "write a bunch of scripts". If there's something you need to do - to save yourself time, make yourself more productive, or improve quality - it's probably been done before, so it's just a matter of editing .emacs.
  • mjfgates
    mjfgates over 15 years
    I got into Slick before it HAD marketing; it's just that it was the only real editor that ran under OS/2 3.0 at the time. Which is probably about the same reason that all those other guys use emacs...
  • user51568
    user51568 over 15 years
    But a bad hammer would ruin your productivity while trying to build the same house and you'll probably end up with a different house.
  • Jas Panesar
    Jas Panesar over 15 years
    That's fair! An average programmer wouldn't fare much better with the expensive hammer.
  • Sol
    Sol over 15 years
    I'm kind of curious how you would establish that emacs is the most extensible and the easiest to extend. For instance, I've been using TextMate for the last few months -- extending it is dead easy, and filtering your source through arbitrary external programs is as powerful as you can get.
  • Jonathan Arkell
    Jonathan Arkell about 15 years
    Angus: you're right. If you have to screw around with adding things instead of getting your job done, you've missed the point--Emacs or not. Sol: There is more to extending then sending source through external programs. In fact, that isn't all that powerful an extension mechanism at all.
  • OregonGhost
    OregonGhost about 15 years
    +1 for the self-fulfilling prophecy in the first paragraph.
  • AviD
    AviD about 15 years
    "the most experienced programmers are the best" - so very far from the truth, at least by implication. Not saying inexperienced programmers are better, but just because he's been doing the same thing for over 20 years - does NOT mean he's doing it well.
  • aliadly
    aliadly almost 15 years
    the question is why start using it at all? If one is happy, comfortable and productive, why waste time and effort on learning emacs? I would much rather learn a new programming language or research new technology than learn an old editor, albeit a powerful one. There are only 24 hours in a day, use time wisely.
  • aliadly
    aliadly almost 15 years
    another thing i would like to note that it also depends on the technology you are using. Does Emacs have Intellisence? I used it in college on UNIX machines and I am sure it has changed since then. But for .NET Intellisence is a MUST. There is NO way anyone could remember ALL the function names in all classes in all namespaces. And I am sure not going on MSDN every time I need to look up a function name. If Emacs offers Intellisence I would consider it.
  • Justin Tanner
    Justin Tanner almost 15 years
    The difference between extending emacs and extending netbeans, visual studio or eclipse is speed. Adding extensions to eclipse is like writing an entire application. In comparison writing an extension for emacs can be a single line of code.
  • David Thornley
    David Thornley almost 15 years
    There were lots of different editors 20 years ago. Most of them simply haven't survived, generally with good reason. Why is a guy who used vi or emacs in 1989 any better than a guy who used some MS-DOS based editor in 1989, or whatever the heck it was I was using on the Control Data mainframe?
  • aliadly
    aliadly almost 15 years
    Justin, what about Intellisense? Is there one for emacs yet? Or would i have to write one myself
  • kevinthompson
    kevinthompson almost 15 years
    Agreed. I love Emacs, but thinking that Emacs will make you a better programmer is like thinking that using Tiger Woods's golf clubs will make you a better golfer, or using Eddie Van Halen's guitar will make you a better musician.
  • Xiong Chiamiov
    Xiong Chiamiov over 14 years
    "Let's just narrow this down to Visual Studio vs. Emacs---the question is too broad otherwise, and I suspect most people (at least here on StackOverflow) are familiar with those two." -- Really? I thought that there were many more rabid *nix fanboys like myself who wouldn't be forced to use VisualStudio, much less use it voluntarily. Hrm.
  • Xiong Chiamiov
    Xiong Chiamiov over 14 years
    +1 for correlation != causation
  • supercheetah
    supercheetah over 14 years
    gnomixa, yes, cedet.sourceforge.net
  • si618
    si618 over 14 years
    @supercheetah - looks very primitive compared to the intellisense found in Visual Studio, e.g. icons shown next to available members are useful! Personally, without strong refactoring support I've got little interest in Emacs.
  • Egon
    Egon over 14 years
    A great programmer can build a great house using a stone for hammer. (He's slow - but he still can do it. :D)
  • Susheel Javadi
    Susheel Javadi over 14 years
    Disagree strongly with Kristopher's comment above. Using a great sports person's/artist's tools will definitely not make you as great as them. But, using the RIGHT programming tools for the RIGHT job definitely will! You might be forgiven though for equating programming with sport and art. :)
  • vedang
    vedang over 14 years
    What is particular about Emacs with respect to "adapting the environment" is that it is far simpler to do so in Emacs than either in Vim or SlickEdit. (or any other editor I know of)
  • Seth Moore
    Seth Moore about 14 years
    @Bart: His point is that there are multiple "right tools". Tiger Wood's golf clubs are excellent tools and are perfect for the job, but there are also other clubs that can provide the same results. The tool a good programmer uses doesn't define them, their creativity and abilities do.
  • Ernelli
    Ernelli almost 14 years
    I think the whole point with Steves statement is that Great programmers use emacs, good software developers are more productive using an IDE. Great programmer always program, even when producing code they program, they automate tasks, they love make, ant, bash, perl and hudson. They know that manual tasks in any part of the software development cycle is prone to errors. Great programmers also know that if someone else builds your code (e.g the IDE or anyone) then you always depend on that one elses skills when it comes to maintaining the code (e.g the IDE or anyone)
  • Skilldrick
    Skilldrick over 13 years
    Yes, but having an editor that lets the code flow out of you organically (which I think Emacs is better at than most editors) can improve your clear thinking and therefore problem solving.
  • Peter Recore
    Peter Recore over 13 years
    I've written an extension to eclipse. it was shockingly easy. and i could do it in java, which happens to be the language I am coding in, rather than lisp, which is not.
  • Jas Panesar
    Jas Panesar over 13 years
    @Skulldrick - I think there's something to be said for sure for the tools that you do (or don't use). Using the right tool relative to the job at hand, your inclinations will obviously help. If notepad does it for some people, so be it. I still see tools as a magnifier, and not as much of an enabler. Tools that "get out of the way" and leave your thinking to focus on work instead of interacting with the app's complex tapping or clicking seems attractive to me. Coda or Textmate also focus on that for a reason and seem to have their followers. Cheers!
  • SamB
    SamB over 13 years
    Actually, it can make you a better programmer, just the same as any other programming language can.
  • SamB
    SamB over 13 years
    It's a really old style of Lisp (with only dynamic and no lexical scoping), but it certainly does have much to teach. That, and it can be a pretty nice text editor on those days on which it actually works right!
  • SamB
    SamB over 13 years
    The problem comes when you have to write on a different platform than the one you've been on: e.g. you move from *nix to Windows, and your scripts break because they were assuming a bourne shell with '/'-based paths in a FHS-like structure with PostScript-based printing...
  • SamB
    SamB over 13 years
    Man, I really need to learn more of those tricks... Anyway, can't you get your login shell changed, or did you actually mean "the shell for the root user" when you said "root shell"? If so, why are you logging in as root???
  • Susheel Javadi
    Susheel Javadi over 13 years
    Heck, 10 years ago there wasn't a good Java IDE!
  • avendael
    avendael over 13 years
    What java mode are you using?
  • fred-o
    fred-o over 13 years
    I'm using the stock java mode that comes with Emacs23, with some customizations and hacks to run maven builds. I've also started using emacs-eclim, which acts as a bridge between emacs and eclipse. It's nice and usable, but pretty rough at the moment.
  • tster
    tster about 13 years
    Hunting in the menu is for people that don't know the IDE. I don't know whenthe last time I had to "hunt" for a menu option.
  • OscarRyz
    OscarRyz about 13 years
    So you do you think using "File->Save" is better than Ctrl-S? I don't think so. Having to grab the mouse, click on Menu file and then move th mouse down to Save entry seems to much for me when you can do it without taking the hands of the keyboard.
  • tster
    tster about 13 years
    obviously I agree. All the IDEs I've every used have extensive and customizable hotkeys and combinations just like emacs.
  • Tikhon Jelvis
    Tikhon Jelvis almost 13 years
    Steve Yegge is the guy who wrote a complete JavaScript parser in elisp, so there is no question that he is nuts as far as Emacs goes :)
  • Tikhon Jelvis
    Tikhon Jelvis almost 13 years
    I think one of the qualities that really helps somebody to be a "great" engineer is being able to delay gratification and shoulder a larger fixed startup cost to improve efficiency.
  • Greg Hendershott
    Greg Hendershott almost 13 years
    "cursor movement with Ctrl-[fbnp] is a real boon". Although I love Emacs, having returned to it after a long hiatus, I find cursor movement this way the least useful and comfortable aspect of using Emacs again. By contrast I can reach and find the dedicated cursor keys without looking or even thinking. Maybe it helps to be a piano player? :) But who knows, with time, maybe C-scrunch-letter will feel more natural.
  • Greg Hendershott
    Greg Hendershott almost 13 years
    p.s. I totally agree about shells and platforms. If you want to move among Windows, OS X, and Linux, then you want Cygwin on the first and Emacs on all three. Throw your .emacs.d on GitHub and you're golden.
  • user674062
    user674062 over 12 years
    Yegge himself mentions this: [The one noteworthy exception is VIM, which is also very powerful by all accounts, though I have no experience with it. If you have already developed a preference for vi over emacs, then you may experience greater happiness pursuing expertise with VIM. Psh] Source: steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
  • FinnNk
    FinnNk over 12 years
    From what I remember of 20 years ago, vi and emacs were the overwhelmingly dominant editors - just because there were lots of editors then (as now) doesn't mean they were all equally widely used.
  • Plumenator
    Plumenator over 12 years
    Uh.. Bill Joy doesn't use vi anymore.
  • Arne Babenhauserheide
    Arne Babenhauserheide about 12 years
    I have been working with emacs for quite some time, now, and just the cursor movement is enough for me to resent writing in anything else - even if it’s an email in KMail.
  • darjab
    darjab about 12 years
    +1 for the start of the second sentence ...
  • Axarydax
    Axarydax over 11 years
    also, you can do search that includes newlines in Visual Studio using regexes
  • porglezomp
    porglezomp over 9 years
    @ArneBabenhauserheide this is one reason I love Mac OS X, almost all textfields support C-[npfbaed]. (But sadly not M-)