Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Will Emacs make me a better programmer? [closed]

People also ask

Is it worth learning Emacs in 2022?

> Is learning emacs worth it? Yes. Especially now that you know vim. Using evil mode, in combination with leader keys (see Doom Emacs or Spacemacs) resolves the RSI issues that have caused emacs users so much trouble in the past.

Does anyone actually use Emacs?

Today, Emacs is just one of many editors designed primarily with programmers in mind, and the best of them are also open source. It's significant that Emacs has been around since 1983, though.

Do developers use Emacs?

Another thing is that Emacs handles all text editing very well, not just programming languages and not just a single or a few programming languages. Emacs is still useful to software developers but not for the same reasons. I am a software developer and I use emacs. I sometimes use vi and I will also use nano at times.

What do people use Emacs for?

Emacs helps you be productive by providing an integrated environment for many different kinds of tasks: All of the basic editing commands (and there are lots of them) are available no matter what you're trying to do: write code, read a manual, use a shell, or compose an email.


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".


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).


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.


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. ;)


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.


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?

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. [I am, and I use and prefer emacs]

Next, let's break the three components of the question down.

Programming enjoyment boils down to primarily liking programming in itself, and secondarily to not have annoyance factors pop up when you do it. Using tools that you struggle with is going to subtract from the enjoyment. So, I would guesstimate, the enjoyment is likely maximized by using tools you like and are familiar with.

Of course, once you do get familiar with a new tool, you may find that you like that tool better, and thus will like programming more if you do it with your new favorite tool. It isn't clear to me that people in general will like VS over emacs (or vice versa) when they know them both well.

Next, programming skill. If there's any connection between skill and choice of VS/emacs, I think it's skill causing choice, not choice causing skill. None of {VS, emacs}, in my experience, seem to make me learn anything about writing better code.

A good tool may make me able to write the same code (and thus same quality of code) in smaller amounts of time; if we assume that productivity = quality of code `times` code per time, then it stands to reason that any editor that'll let you write good code in less time is a productivity boost.

I may be too unfamiliar with VS, but here I think emacs has some strengths that I haven't found in VS. It may sound ridiculous, but something as simple as cursor movement with Ctrl-[fbnp] is a real boon---it means you don't have to move your hands to the arrow keys. Another thing: you can do a search or replace which includes newlines, which I use often enough that I'd hate to miss it.

Another thing I like is the ability to embed a shell in my editor. In my experience, it's much more valuable on non-windows platforms (and my first "programming" experience, IIRC, was writing DOS .bat files, so I'm not just a flaming fanboy), but on those platforms it's a big win. It makes emacs "integrate" with "everything" (file search with find/locate, text search with grep, version control with svn/git/hg/..., you name it).

Final verdict--should you learn emacs or not? And is it all fanboyism? If you got the time, I'd say it's always worth learning new ways of doing the same thing, because the new way just might turn out to work better for you. And I encourage you to not reject it for what it appears to be when you're all new to it. In that sense, it's like switching to the Dvorak keyboard layout: you're slower at first, but once you get up to speed you're likely to be at least as fast as on qwerty, and more comfortable. I recommend the same approach to learning new (programming) languages as well: because you don't know the vocabulary (standard library), saying things is hard, but the reward is still there in the horizon waiting for you.


With the quoted text beginning "All of the greatest engineers in the world use Emacs," I wouldn't take it at face value either. Does he know all of the world's greatest engineers? Is it the same list of world's greatest engineers that you or I have?

Once learned, a powerful editor like EMACS or vi will make you more efficient, or at least more efficient if you happen to be caught without your favorite IDE.

It's the "once learned" part that's the killer. It's a lot of work and practice to use these tools productively, and it's very tough at the beginning.