[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Linux development: Command Line, Emacs or IDE?
- To: email@example.com
- Subject: Linux development: Command Line, Emacs or IDE?
- From: "T. V. Raman" <raman@Adobe.COM>
- Date: Mon, 7 Jun 1999 19:42:51 -0700 (PDT)
- Old-Return-Path: <raman@Adobe.COM>
- Reply-To: raman@Adobe.COM
- Resent-Date: Mon, 7 Jun 1999 22:43:30 -0400 (EDT)
- Resent-From: firstname.lastname@example.org
- Resent-Message-ID: <"TQw6c.A.QcC.4MIX3"@hub>
- Resent-Sender: email@example.com
this makes for interesting reading.
Linux development: CLI, Emacs, or IDE?
Joe Barr gets few equivocal answers from leading developers
Summary Joe Barr asks nine leading Linux
developers which development environment they
prefer, and details the reasoning behind his
personal choices. (2,300 words)
The topic on my mind this week is development environments,
namely, which development environment is preferred by the
majority of Linux developers -- CLI, Emacs, or IDE? I want your
feedback on this question, and I have opinions of my own on the
subject, but to get the ball rolling I asked a number of
well-known developers this leading question: Are you a CLI kind
of developer -- using vi, gcc, or gdb -- or do you prefer Emacs
or an IDE or something else altogether?
Looking over the answers, I'm struck by two things. First,
nobody is using IDEs. Second, Linux developers either love Emacs
or hate it.
Emacs? Holy carpal tunnel syndrome, code critters! This Linux
development environment may be a little more hostile than I
Yes, Emacs. It's a popular choice, but not a universal one. Eric
S. Raymond, for example, the author of Fetchmail and well-known
open source evangelist, essayist, and developer, says "Emacs is
But don't worry, not everyone who responded needs to be placed
in a 12-step program for Emacs abuse. Linus Torvalds, for one,
says that "GNU Emacs is just evil."
To see these two responses in full, and all the others as well,
press CTL-ALT-SPACE-SHIFT-F7-PGUP-ENTER MEGA-KEY while the
cursor is over the summary chart. Wait, that's not fair. Emacs
users are going to believe me. Sorry, just my idea of a little
(Actually, there is a table at the end of this week's column
that sums up the responses to my question.)
Who am I to be casting stones, anyway? Not only am I merely an
aspiring Linux developer, people laugh openly when they see the
editor I use in DOS. That's what I do in my day job, by the
way. Tote that C code, and for a DOS environment, no less.
PE II (Personal Editor II) is the editor I've used for the past
15 years to code in half a dozen languages. When I've coded on
PCs, that is.
But hey, don't laugh. If you came up the same way I did, you
might still be using PE II yourself. My first coding assignment
on a PC was to crank out 250,000 lines of COBOL using
EDLIN. That's because EDLIN came bundled with PC-DOS and my
manager at EDS didn't think PCs would ever be important enough
to justify the investment in tools to write software for them.
When I finally raised a big enough stink about using a line
editor to produce volumes of code, my manager sprang for a copy
of PE II. I was pretty sure I had found nirvana.
Is PE II really that good? Frankly, no. It's just that I'm
really that lazy. I've used it for so long that it's like
breathing to me. I don't have to think about where the keys are
or what they do. I just think about what I want to do and it
When I need to edit a C file that is too large for PE II, I use
Brief. Sure, Brief is bigger, better, and faster than PE II. But
its key bindings aren't etched into my skull like the pattern on
an old monochrome monitor that's been displayed for months.
But enough about that. I know what my preferred C/C++
programming environment is in DOS. I want to find my preferred
programming environment in Linux. The reason I bring up my
personal preference -- and the inertia that cements it -- is
that I believe the same sort of inertia is at work among the
developers I queried.
Those who responded with a preference for an editor other than
Emacs chose vi, vim, Micro Emacs, or jed. I'm not familiar with
Micro Emacs or jed, but I do know vi.
I learned to code Informix 4GL and vi at the same time on an SCO
Unix box. Yes, vi is a very powerful tool. I respect it -- but I
also despise it. Maybe it beeped at me one too many times as I
was learning to use it, I don't know. But I've never forgiven
I do use vi these days for writing notes and hacking HTML, but I
would rather not use it for any extended period of time. The
thought of vi (how does that tagline go, "vi, vi, vi -- the
editor of the beast") alone is enough to keep me out of
development work on Linux.
KDE developer and evangelist Kurt Granroth has a different
idea. When I asked him about his preferred development
environment he said "I use vim (not just vi -- only vim will do)
with egcs and gdb." vim may be an improvement over vi, but it's
too closely related for my taste. Friends of my enemies and all
The good news for those who want to start hacking Linux source
code or developing on a Linux box is that all the tools you need
are readily available. And free. Editors, compilers, debuggers,
even IDEs are out there and free for the downloading.
As Linux's popularity soars, so does interest in development on
and for Linux. Not just among code critters like myself, but
among those who produce tools for said code critters. Like
Metrowerks, for example.
Metrowerks has expanded its product line to include the booming
Linux marketplace. This spring, it announced that the
CodeWarrior IDE would be coming to Linux this year. CodeWarrior
has about 75 percent of the Macintosh market and is also
available for Windows.
Actually, Metrowerks's CodeWarrior already has made an
impression on the Unix and Linux community. It was the
inspiration for Code Crusader, a project to build a complete
development IDE based on Code Crusader, Code Medic (debugger),
and Code Fortress (source control). Perhaps the growing
popularity of Code Crusader influenced Metrowerks's decision to
port to Linux.
So, how does a commercial product like CodeWarrior compete
against an establishment that is fundamentally CLI-based, as
well as against free clones of itself? Evidently pretty well.
Jean Belanger, chairman and CEO of Metrowerks, told me last week
that "we have never had such a response from the retail channel
for any product we have ever launched."
I asked for and received a review copy of the currently shipping
GNU edition for Red Hat Linux ($99, SRP). I'm impressed. A
"professional edition" is slated for production later this year.
I like the idea of the IDE building make files for me
automatically. I like the idea of realtime update of source code
from within the debugger. I like the idea of a full-featured,
built-in editor. I like the ability to pick and choose my
compiler and debugger.
Speaking of debuggers, I'm using DDD, which is supplied with the
Metrowerks GNU edition. Pretty nice. It's true that by choosing
an IDE, I will never be mistaken for an 0day Linux
developer. All those guys seem to be averse to getting their
fingers in the GUI stuff.
And that's OK. Linux is changing and the GUI is a big reason for
its continued growth and popularity. I can feel like an
old-timer at work any time I want. As I move into Linux
development, I want to take advantage of all the best tools.
I may be wrong, but I think a lot of developers moving away from
the Windows environment are going to feel the same way.
What about you? How do you answer the question I posed to Linus
Torvalds and the rest of the Linux gang?
The table below summarizes the responses to my question,
specifically, each respondent's choice of editor, debugger,
compiler, IDE, and background or experience. Individual comments
by the respondents follow.
Respondent Editor Compiler Debugger IDE Background
Jonathan Emacs gcc gdb Emacs GNOME Control
Jay Cox XEmacs Pro gdb, dbx XEmacs GIMP
Kurt vim egcs gdb None KDE
Carsten jed gcc None None Enlightenment
Andi vi gcc gdb XEmacs PHP
Eric Emacs gcc gdb Emacs Fetchmail
Linus Micro gcc None None Linux
Marius Emacs gcc gdb Emacs Guile+GTk
Alan Cox None gcc GNOME-terminal None Linux kernel
And now, the full responses to my question: Are you a CLI kind
of developer -- using vi, gcc, or gdb -- or do you prefer Emacs
or an IDE or something else altogether?
Well, like most linux developers, I suppose I am a CLI guy. I
develop almost entirely in Emacs, with many, many buffers open
(I have somewhere around 40 right now). I use a shell in Emacs
to run the application I'm developing, and generally debug using
Emacs's gdb mode. I also compile using compile mode within
Emacs. I use etags pretty extensively, as well as tab completion
and syntax color highlighting and formatting. Pretty standard
stuff, I guess. I also have a few templates written out to
automate some code generation, but they're somewhat specialized.
Right the first time! I use vim (Not just vi -- only vim will
do) with egcs and gdb. I've been known to try different IDEs
(KDevelop, Code Crusader, et al.) ... but I've never stuck with
one for more than a trial period.
We have pretty much moved to developing with Visual
Studio. However, we started with vi plus gcc plus gdb, and
that's what we use when we develop PHP on Linux. I personally
also like using XEmacs when working with other non-PHP Unix
Actually, I develop under IRIX. I am definitely a CLI
guy. Currently I'm using XEmacs plus MIPS/Pro C/C++ plus dbx,
though it wasn't that long ago I was using XEmacs plus egcs/gcc
Does XEmacs qualify as an IDE?
Eric S. Raymond
Emacs is my IDE. Yep, Emacs plus gcc plus gdb plus rcs.
o Tons of xterms
o Micro Emacs (which has nothing at all to do with GNU Emacs,
but is a very simple editor with basically the same
o make plus gcc, of course
I'm not a big believer in IDE's or in debuggers -- I tend to use
debuggers to see where a bug happens, and then I go back into
the source and try to understand the bug rather than try to look
at any specific case that made the bug happen. And IDEs tend to
be too limiting for me (I prefer having five different xterms
open, and to do anything I want in any of them).
And GNU Emacs is just evil. You can tell that it was designed in
a time when you only had one terminal, not many windows. So it
tries to do everything in the same window.
Yes, very much.
I use Emacs running under X11 as my UI, plus the usual
assortment of tools like make, gdb, gprof, autoconf, automake,
TeX. I also use xterms because I find their terminal emulation
to work better than the Emacs shell-mode.
I don't think there is anything special here: GNOME-terminal
windows, make, gcc -- and a second box for crashing with new
kernel images. *
Discuss this article in the LinuxWorld forums (42 postings)
(Read our forums FAQ to learn more.)
Sign up for FREE E-mail Alerts & Enter to WIN a NetWinder
About the author
Joe Barr is a software professional, writer, and self-proclaimed
dweeb. He has been working in the industry since 1974 as a
programmer, analyst, consultant, and manager. In 1994 he began
writing a monthly column called Papa Joe's Dweebspeak Primer in
Austin, TX's Tech Connected magazine. The column exists today as
an e-zine and newsletter at www.pjprimer.com, which has run on
Linux since its inception.
Adobe Systems Tel: 1 408 536 3945 (W14-128)
Advanced Technology Group Fax: 1 408 537 4042
W14-128 345 Park Avenue Email: firstname.lastname@example.org
San Jose , CA 95110 -2704 Email: email@example.com
http://labrador.corp.adobe.com/~raman/ (Adobe Intranet)
Disclaimer: The opinions expressed are my own and in no way should be taken
as representative of my employer, Adobe Systems Inc.
To unsubscribe or change your address send mail to
"firstname.lastname@example.org" with a subject of "unsubscribe" or "help"
Emacspeak Files |