emacs Vs Eclipse?

B

blmblm

Hello everyone,
Is there a discussion on emacs vs eclipse? Are there any advantages of
emacs over eclipse?

I'm a grad student and I've been using emacs for over 6 years ( it was
the first thing I ever tried and it worked for me). Recently, I had to
"take over" a project and improve it. I didn't have the
design/documentation. The only thing I had was the code ( about 500
java files, 55 packages and 112kloc) developed over 5 years (yes, it
is a research project).

Using eclipse helped me quickly understand the code. Eclipse helped me
efficiently search/navigate between files and methods. I found the
eclipse ide to be more powerful than the emacs-ide
(http://jdee.sunsite.dk/).

Given that eclipse has plugins for C/Java/Latex and runs on Linux/Win,
I don't see a reason why I should stick with emacs.

I would like to know why emacs-users (who have also tried eclipse) are
still sticking with emacs ?

An Eclipse Convert.

Well, I'm a vi/vim user rather than an emacs user, but for the present
purposes that may be close enough.

I don't have a lot of experience with IDEs in general or Eclipse in
particular, so probably I don't fully appreciate their good points,
but for me the biggest stumbling block has always been the need to
master, or at least use, a text-editing interface different from
the one I've spent so many hours with. All those hours have made me
pretty good at using vim's interface without having to consciously
think about what keys to press to achieve the result I want, which
I like. Like hardcore emacs users, my strong preference is to use
vim for all text-editing jobs (code, LaTeX source, e-mail, newsgroup
postings, etc.). I have been told that with enough practice it's
possible to master more than one text-editing interface and use them
both well, but I'm skeptical, at least in my own case: I once spent
about a year trying to use both MS Word and vi, and all I can say is
that it was not a good experience -- my Word documents were full of
"jjjjkkkk" sequences, and vi beeped at me a lot.

You really found it easy to walk away from six years of emacs? Hm.
Had you invested some time in mastering it, or are we talking
"learned the basics and didn't try to go further"? NTTAWTT, as
they say, just curious.
 
J

Jim Cochrane

Well, I'm a vi/vim user rather than an emacs user, but for the present
purposes that may be close enough.

I have had very few problems using vim as my editor along with an IDE
(using the IDE for browsing, analyzing class relationships, compiling,
.... - everything but editing). One of the IDEs I use is eclipse
(although I admit that I have not used it extensively, but long enough,
I think to find that this process works for me).

Assuming, entering the discussion late, I'm understanding your topic
correctly - being used to vim, wouldn't it be most efficient for you to
do the same?
 
S

Sudsy

Jim said:
I have had very few problems using vim as my editor along with an IDE
(using the IDE for browsing, analyzing class relationships, compiling,
... - everything but editing). One of the IDEs I use is eclipse
(although I admit that I have not used it extensively, but long enough,
I think to find that this process works for me).

Assuming, entering the discussion late, I'm understanding your topic
correctly - being used to vim, wouldn't it be most efficient for you to
do the same?

I see no problem with creating Java source in vi (I even have some
custom code-generation tools) and then just importing to an Eclipse
project.
Okay, so you lose auto-completion and syntax highlighting, but if
you can code like a banshee in another environment then why not use
what works best for you?
 
M

Miles Bader

Darryl L. Pierce said:
Perhaps there are, but if the person to which you're replying doesn't use
them then their existence is meaningless to him.

Someone who _never_ uses another file format, and _never_ wants to?
If there are really such people, perhaps they're better off sticking
with windows & hard-wired editors...

One rather huge advantage of Emacs is that as your interests (or job, or
OS, or ...) changes, Emacs can change with you, and adapt or be adapted.

This is one reason why there are so many very long-term emacs users
(I've used Emacs for over 20 years, and I'm not unusual on this list I
think).

-Miles
 
B

blmblm

I have had very few problems using vim as my editor along with an IDE
(using the IDE for browsing, analyzing class relationships, compiling,
... - everything but editing). One of the IDEs I use is eclipse
(although I admit that I have not used it extensively, but long enough,
I think to find that this process works for me).

Assuming, entering the discussion late, I'm understanding your topic
correctly - being used to vim, wouldn't it be most efficient for you to
do the same?

Well, I was trying to address the OP's question, which I interpreted as
"why would anyone stick with emacs when there's Eclipse?" The point
I was trying to make below (and I'm mildly curious about the placement
of your reply with respect to the other text, but -- no matter) was
that this didn't seem so crazy to me, since once one has invested the
time in really mastering a text editor along the lines of emacs or vim,
putting that aside in favor of a different text-editing environment
isn't such an appealing option.

I personally am not currently doing enough coding to really care,
but I'm mentally filing the tip about vim with Eclipse for possible
future reference. (I had heard a rumor that this was possible
but had not investigated.) I'm skeptical, though -- in my limited
experience with IDEs, it seems like a lot of the usefulness comes in
the editing phase, and if you replace the built-in editor with vim,
you lose that. It sounds like you find the other features useful,
but -- I'm skeptical. Maybe they only really prove their value when
you're working on big projects, which is something I don't do a lot of.
(I teach undergrad CS, in case anyone is curious.) Or maybe I'm just
too attached to the command line to appreciate GUIs. <shrug>

[ leaving the following in for reference ]
 
B

blmblm

I see no problem with creating Java source in vi (I even have some
custom code-generation tools) and then just importing to an Eclipse
project.
Okay, so you lose auto-completion and syntax highlighting, but if
you can code like a banshee in another environment then why not use
what works best for you?

But why bother with importing into Eclipse? Why not just use
command-line tools to compile and execute? I'm sure there's
something about Eclipse that I just don't appreciate -- as I said in
my reply to Mr. Cochrane, I don't do a lot of work with big projects,
and I do like CLIs, so maybe that's it. Those of you who think this
"vi(m) plus Eclipse" approach makes sense -- what is about Eclipse
that makes it worth the resources? in terms of memory/CPU use,
screen real estate, etc.
 
S

Sudsy

But why bother with importing into Eclipse? Why not just use
command-line tools to compile and execute? I'm sure there's
something about Eclipse that I just don't appreciate -- as I said in
my reply to Mr. Cochrane, I don't do a lot of work with big projects,
and I do like CLIs, so maybe that's it. Those of you who think this
"vi(m) plus Eclipse" approach makes sense -- what is about Eclipse
that makes it worth the resources? in terms of memory/CPU use,
screen real estate, etc.

Where Eclipse really pays off for me is in large project building and
deployment. Now, I could just use ant, XDoclet, etc. from the command-
line but Eclipse supports all it so well.
I've even generated boiler-plate XML files for my typical projects
which incorporate servlets, JSPs, custom tag libraries, etc. I just
create a new project, import the initial source and build XML files,
perform any required customization, then proceed to testing and
deployment.
For deployment I use JBoss and JBoss-IDE, a particularly powerful
combination. Speeds deployment/testing considerably. I make a simple
configuration change and then build for the production server, i.e.
WebSphere. But now IBM's come out with a combination which includes
a bare-bones J2EE so I can even skip the JBoss step. Of course it
also costs $$...
For simple apps, or if you've already got a lot of Java experience,
an IDE probably doesn't get you much. I know that they tend to slow
me down when I'm cranking out code, heads-down. But I've come to
appreciate that they can help considerably in later development and
deployment phases.
YMMV
 
S

Sudsy

Sudsy said:
Where Eclipse really pays off for me is in large project building and
deployment. Now, I could just use ant, XDoclet, etc. from the command-
line but Eclipse supports all it so well.
<snip>

After additional contemplation I'd like add to my previous post. When
I was first creating J2EE applications I was developing/testing on IBM's
WebSphere but the production system was running BEA's WebLogic. In
addition to the generic ejb-jar.xml deployment descriptor, each vendor
had additional configuration files generated by their assembly tools.
In order to shorten the debug/test cycle, I sussed-out the file formats
and generated them myself as part of the project build; it made deploy-
ment easier and much faster.
With Eclipse and XDoclet you can create the necessary configuration
files WITHOUT having to dig around "under the covers", so I guess that's
where I see the biggest gains. I don't really need code completion or
class browsers (I've been writing Java since version 1.0.4 and have all
necessary documentation available in my web browser windows), but I can
imagine that those features might be helpful to someone with less
experience or who doesn't have the javadocs for certain classes...
I find myself to be more productive just using vi. I'm certain that
long-term emacs coders feel the same way.
 
K

Kai Grossjohann

Using eclipse helped me quickly understand the code. Eclipse helped me
efficiently search/navigate between files and methods. I found the
eclipse ide to be more powerful than the emacs-ide
(http://jdee.sunsite.dk/).

I agree with Klaus, try ECB. Perhaps it is the missing link that you
were looking for. It allows all the visual navigation things that
Eclipse has, with Class browser and directory browser and so on.

Also note that there are quite a number of ways to navigate the code
even in pure JDEE. For example, there is C-c C-v C-y (I think) which
opens the source code of the class mentioned at point.
I would like to know why emacs-users (who have also tried eclipse) are
still sticking with emacs ?

Well, I've had to do some Perl development for a while, and some C
development. For pure-Java stuff, Eclipse is surely nice.

Kai
 
Y

Yakov

What kind of question is this? It's like asking "why use Java for a
project that has 500-classes if I can do everything in assembler?"

If you want to be productive, use Eclipse or any other Java IDE. If
you want to be one of these proud die-hard vi/emacs gurus who will
rather memorize 50 keystrokes than GUI menus of an IDE - go ahead, but
remember that using an IDE with its helps, debugging, and other bells
and wistles is also a way to learn the language while emacs/vi is
just a text editor.

Regards,
Yakov Fain
 
J

Jacob

But why bother with importing into Eclipse? Why not just use
command-line tools to compile and execute?

It is important to note that you don't *need* to use an IDE.

I work on large (> 1.000.000 LOC) projects and use Emacs and
command line tools (Make/CVS/tcsh etc.) just fine. The projects
includes both web based, J2EE and heavy Swing applications.
Using light weight, powerful, customizable tools put me in
charge of the development process.

That said, it is important to identify the development
environment as *personal*. When setting up a large multi-
programmer project, everyone involved should be able to use
the development tools that suits them and make them most
powerful. Avoid enforcement of a particular "project" IDE.
For Java development this principle also holds for the OS.
 
B

blmblm

<snip>

After additional contemplation I'd like add to my previous post.

[ snip ]

Aha. Okay. As I sort of suspected -- an IDE can pay off for large
projects. Thanks for confirming this.
I find myself to be more productive just using vi. I'm certain that
long-term emacs coders feel the same way.

That's my guess too, and a good answer to the OP's question.
 
W

Will Hartung

Yakov said:
What kind of question is this? It's like asking "why use Java for a
project that has 500-classes if I can do everything in assembler?"

If you want to be productive, use Eclipse or any other Java IDE. If
you want to be one of these proud die-hard vi/emacs gurus who will
rather memorize 50 keystrokes than GUI menus of an IDE - go ahead, but
remember that using an IDE with its helps, debugging, and other bells
and wistles is also a way to learn the language while emacs/vi is
just a text editor.

I'll bite...

emacs has all of those windows and menus and other things. You can mouse
your way to hog heaven.

All of the IDE's have (I would hope) a gazillion keystroke shortcuts, so
that folks can actually be productive in their day to day work with them.

The advantage of using a keyboard dominant interface versus a GUI dominant
interface is simply determination.

If you know what you want to do, then a smart keyboard shortcut or key
sequence will always be more efficicient and consistent than a GUI action.

That's because all of the keys on the keyboard don't move, they're always in
the same places. You have muscle memory telling you where the keys are.

GUIs by their very nature are always relative. You always move the mouse a
different amount for each command, even the same command, over and over.

You have to make sure that the mouse is where you need it to be, then click,
and if it's something like a pulldown menu, you then have to move the mouse
again. Aiming it everytime. Overshooting the object, correcting, coming
back, clicking, hoping the click registered, etc. A routine task that has a
lot of guesswork. Try working your gui quickly and see how much error shows
up in your input.

Any competant typist can type with their eyes closed, that's impossible with
a GUI.

If a colleage walked in right now, I could look up at him, listen to what he
says, and continue typing this memo, and finally send it with a keystroke.

When you know what you want to do, the keyboard lets you execute your
commands more easily, more efficiently.

I walk up to a colleague, ask them to open up SomeFile.java, and they're off
hunting and searching for the thing in an explorer window, a window with
zillions of files in it. It is the most frustrating experience to watch. He
knows the file, he knows it's exact path, but still he has to hunt for it,
search for it, scroll for it. Think about what your eyes are doing when you
hunt for a file that you know the name of.

Just type the damn file name. With auto complete, I could probably type
S-<tab> and have it come up.

^X^F^A^K/e<tab>/Wo<tab>/e<tab>App<tab>c<tab><tab><tab><tab>/So<tab><enter>

That's the full path name, with minimal hunting, no scrolling, and the hands
just do the work subconsciously. Also, that sequence will ALWAYS work, no
matter what directory I'm in, where the emacs window is on the screen, etc.
And when it doesn't work, I'll get an ear full of beeps showing the error of
my ways.

So, simply put, there is madness to our methods. A well intergrated keyboard
interface is far far more efficient than a GUI will ever be. Anything that
make you take your hand off the keyboard is slowing you down. Obviously
we're talking about interface where keyboards are appropriate, not paint
programs for example.

GUIs are fine for exploring unknown areas. They're fine for one off, rarely
used interfaces. But when you know what you want, just type it in.

I mean, if your GUI is so fabulous, why aren't you typing with your mouse?

Regards,

Will Hartung
([email protected])
 
Y

Yakov

Will,

Your response should have a title "Using Keyboard vs. Mouse". In this
case I agree with most of your statements (keep in mind that IDEs also
have keyboard shortcuts for most of the menu items).

But does your editor help in learning Java? IDE certainly does. How
about debugging? I start my app server and the client in the same IDE
and easily debug the client's code first, the move to the servlet,
ejb, etc.
Talking about productivity... But sure thing, you can use
System.out.println() and also find the bug.

Regards,
Yakov Fain
 
S

Sudsy

Yakov wrote:
But does your editor help in learning Java? IDE certainly does. How
about debugging? I start my app server and the client in the same IDE
and easily debug the client's code first, the move to the servlet,
ejb, etc.
Talking about productivity... But sure thing, you can use
System.out.println() and also find the bug.
<snip>

So perhaps you've put your finger on the crux. People who already
KNOW the Java language can find IDEs to be an impediment. Perhaps
they're perceived as a crutch by old-timers. It could also explain
the oft repeated suggestion to learn Java using the command-line
tools at first. Of course this runs counter to the philosophy of
those "programmers" weaned on the VB approach... ;-)
If you require an IDE to assist you "in learning Java" (direct
cite) then your approach might be considered less-than-optimum by
some people (myself included, BTW).
That opinion doesn't carry over to the debugging, packaging and
deployment phases, IMHO. The ability to set breakpoints visually
in an IDE such as Eclipse and walk through the code is far more
productive than using jdb, in my experience. YMMV.
Nothing wrong with different tools for different jobs...
 
G

Galen Boyer

The ability to set breakpoints visually in an IDE such as
Eclipse and walk through the code is far more productive than
using jdb, in my experience. YMMV.

Emacs has the JDEE which has a visual/mouse driven debugger.
 
Y

Yakov

So perhaps you've put your finger on the crux. People who already
KNOW the Java language can find IDEs to be an impediment.

Do you really believe that there are people who KNOW Java? The
language itself, J2SE, J2EE and all the open source libraries are
changing as we speak...

Regards,
Yakov Fain
 
G

Galen Boyer

Will,

Your response should have a title "Using Keyboard
vs. Mouse".

Well, that really is the crux of the argument for/against
productivity when you are arguing Emacs vs IDEs. Which, btw,
Emacs wins, cause it has both. The mouse driven IDE authors
don't put the keyboard as a priority for being an easy to use
interface, and they should. Emacs concentrates on both, and
makes them both easy to use. For example, the ECB, "Emacs code
browser" and JDEE, "Java Development Environment for Emacs" are
both mouse powerful.
In this case I agree with most of your statements (keep in mind
that IDEs also have keyboard shortcuts for most of the menu
items).

Whether you have them or not, how many users of "IDEs" actually
use the keyboard to navigate their windows and tabbed panes and
directory structures? I'd venture a guess of none. I would say
that many times, an Emacs user will use the mouse to "peruse" the
file they are in. They will certainly use it to highlight, as
well as get mode specific menus at point. Emacs has the mouse
driven interface and it is quite good. But Emacs users use the
keyboard because, as Will described nicely, there are just so
many more options at one's fingertips than a single point of
entry called the mouse. Here's a question. How many people use
the mouse to cut-n-paste? Don't most people highlight and then
hit Ctrl-C Ctrl-V? Why would one not use the mouse and find the
menu items to perform those operations? Because the keyboard is
just plain, "way more efficient". Well, the productivity gain
one gets from the Ctrl-C Ctrl-V in windows is found in all
operations in Emacs. Finding files? Go open a window with some
mouse, drill with the mouse, search with eyes... In Emacs, "C-x
d" then use completion to get their really quickly. The
efficiency gains go on and on. And yes, that really is the
argument.
But does your editor help in learning Java? IDE certainly
does.

If you don't know java and you try to use the JDE (Emacs java
IDE) to learn it, Emacs will be a huge detriment. Each Emacs
distribution takes some learning, thats for sure. If you are of
the flavor, notepad and command line? Then Emacs is probably a
very good helper.

A big shout out to eclipse for ease of use. I've used it a bit
and I find it very easy to use, from the get-go. Emacs, most
definitely, cannot boast that. Eclipse actually seems quite
Emacish in some of its functionality, but I do alot of database
programming as well, so I stay with Emacs. If I was a java only
guy, I'd probably be using Eclipse exclusively, but then again, I
do love just working with Emacs. I'm constantly tweaking it,
seeking perfection in use even after 5 years of use.
How about debugging?

The JDE has both the gdb and a visual mouse driven debugger.
 
P

Phillip Lord

Galen> Well, that really is the crux of the argument for/against
Galen> productivity when you are arguing Emacs vs IDEs. Which, btw,
Galen> Emacs wins, cause it has both. The mouse driven IDE authors
Galen> don't put the keyboard as a priority for being an easy to use
Galen> interface, and they should.

Actually this is almost certainly a problem with Eclipse. Its
certainly a problem with Swing applications. Their Windows Emulation
is not perfect, and the keyboard response is a good example of this.

If you use windows native applications its not so bad. You generally
can navigate entirely using the keys. This is, of course, required by
the accessibility legislation. It's hard to use a mouse if you can't
see the pointer.

Unix interfaces in general are even worse than Java. However, as you
can do everything you ever wanted from the command line, its not so
much of a problem.




Galen> Finding files? Go open a window with some mouse, drill with
Galen> the mouse, search with eyes... In Emacs, "C-x d" then use
Galen> completion to get their really quickly. The efficiency gains
Galen> go on and on. And yes, that really is the argument.

This is where Emacs wins heavily. Because the keyboard interface is
not seen as a second class citizen there are many packages written
specially for it. With finding files ido.el for example, is
phenomenally quick, when navigating over deep directory structures
(always a problem with Java). It has no impact at all on the mouse
driven, or GUI interface of Emacs.


Galen> A big shout out to eclipse for ease of use. I've used it a
Galen> bit and I find it very easy to use, from the get-go. Emacs,
Galen> most definitely, cannot boast that. Eclipse actually seems
Galen> quite Emacish in some of its functionality, but I do alot of
Galen> database programming as well, so I stay with Emacs. If I was
Galen> a java only guy, I'd probably be using Eclipse exclusively,
Galen> but then again, I do love just working with Emacs. I'm
Galen> constantly tweaking it, seeking perfection in use even after
Galen> 5 years of use.


Emacs could definitely do with being easier to use. Eclipse does win
here, although it insists on trying to import your java into a
"project structure". Thanks, I already have one of these!

Cheers

Phil
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,185
Members
46,738
Latest member
JinaMacvit

Latest Threads

Top