

Ask HN: why not just use Eclipse? - Tichy

Having been a Java developer for years, I now really can't stand the language anymore. While trying other languages, I also attempted to move away from Eclipse. What I was looking for is something that can be more easily extended than Eclipse.<p>For example, the Rails plugins for Eclipse I have seen were really crap. Basically, they provided a dropdown menu for the rails generator scripts - big deal. I would like to create something that is a little bit more context sensitive, for example it could at least offer command line completion for the rails generator scripts (so if one generates a migration, you don't have to look up the column types in a book).<p>I have now tried vim for a while, but find that I only use the basic functionality because I am too lazy to look up how things work all the time. Right now I lost patience when I couldn't edit two files in two windows, and I simply switched to gedit for the time being. I have been an Emacs user for years, but also never really liked it - mostly because of the way it handles multiple windows and buffers.<p>I would consider switching to gedit, it seems nice and easily scriptable (Python), but I don't like that it is not cross platform (I presume it isn't). If I invest in learning a dev environment, I would like to have it available on Unix, Windows and OS X.<p>Ultimately, I wonder if Eclipse is really so bad? Why waste time configuring those "basic" editors to feature something remotely offering the tools of eclipse? By this I mean among other things integration into versioning tools (subclipse - haven't looked into git yet), bug trackers (Mylin - trac), and also structural navigation of code. For example I was working on a javascript game and really would have liked to be able to jump to functions by clicking on them, and Eclipse provides that. Maybe vim can be made to do it (ctags or whatever they are called?), but to get it to do it would be a major effort involving hours of googling for tutorials. And most likely, it would still not be as nice...<p>What are your thoughts? What would you recommend?
======
neilk
Some IDEs are great. Some text editors are also great.

 _Maybe vim can be made to do it (ctags or whatever they are called?),_

Don't use ctags. Use cscope. And stop being such a pansy about configuring
your tools. If you consider yourself a professional, it is worth learning.

Basically, there's no right answer to the question, but there are wrong
_reasons_ to choose. If you want to go with IDEs because you don't want to
think too hard about your tools, I would say that's a bad reason. Your IDE
skills are going to suck if you go in with that attitude. A better reason
might be: you want to work with your code at a higher level than mere bytes in
a buffer. I know guys who can make Eclipse or IntelliJ do insanely perverted
things to their Java code, automatically. Good for them!

I prefer vim because I generally work in scripting languages where a
refactoring IDE doesn't help much. I like the fact that my editing session can
live in a screen, which can be resumed from anywhere in the world. vim+screen
is the most rock-solid dev environment you can get. And since vim is so
ensconced in the unix way of small tools combined, there are few features of
IDEs that I can't at least emulate.

Meanwhile, my TextMate-using colleague accidentally searched for the letter
'v' in our entire codebase, and his laptop locked up for 10 minutes. The best
part is that he did it AGAIN by accident a few minutes later.

------
gaius
ActiveState Komodo does it for me. Linux, Solaris, Windows and Mac.

------
ErrantX
I generally avoid IDE's fulle stop - and I find eclipse to be a complete pain
to work with :(

I work in Python, PHP, C++, Perl and Html (if that last one counts ;)) so I
find that a text editor (NP++ - win32 only sadly - is my current fav) and a
LAMP/Py server setup work well.

It costs more in setup time but I find it makes working faster in the long run
:D

(although I know for RoR/Rails it would be a bit more difficult to take this
approach)

~~~
Tichy
But what is the pain with Eclipse? My reason for avoiding it was to get out of
the mindset that all coding is complicated and can only be accomplished with
the aid of an IDE. Certainly true for Java development, which would be
impossible to handle without code completion, code generators and special
navigation tools for the massive amount of files required.

However, some things an IDE offer are simply nice and useful, what is the
point in not using them? Maybe IDEs really are a step in the evolution of
software development?

~~~
ErrantX
Well (as an example) using the PHP module importing or creating a project was
a complete pain (it's not simple or logical to me).

I also found it slow (expecially to close down).

I just had a lot of pain with it (quite a while ago now - hence not really
rememebering the specific issues :) sorry).

I like the _concept_ of IDE's - but I've never seen one that works really
well. Eclipse always just felt bloated to me :(

As for advanced features you mentioned: a lot of text editors (I dont know
about for Java but certainly for the languages i use) have code completion
(which IMO would be the most important of the 3 things you mention).

------
jasonkester
Wow. It's amazing to find people who still write code in a text editor. It
really says something about the sad state of IDEs for most languages.

I understand that many people from the PHP, Ruby, Python, and to a certain
extent, Java communities may have never seen a really good IDE such as VS.NET
in action, and are therefore simply ignorant. I would guess that Eclipse has a
lot to do with it too, since so many people use it as their definition of a
benchmark IDE, even when it's at least one generation behind the state of the
art.

At the end of the day, code is not text. It has complex relationships that can
be exploited to aid your productivity. A good IDE that's continually compiling
in the background is truly an amazing thing to behold.

~~~
jm4
> Wow. It's amazing to find people who still write code in a text editor.

Umm... Why? Personally, I find it amazing how much some developers rely so
much on IDEs and are unable to write even the most trivial programs in a text
editor. An IDE can be a crutch that will slow you down in the long run. Sure,
they're great for verbose languages like Java and C#, but they have very
little to offer when developing in some of the other languages you mentioned.

~~~
jasonkester
Do you honestly have the entire class library for your language memorized? And
all the member names of all your classes? And all the public interfaces of all
the 3rd party libraries installed on your machine? And the entire Windows API?

Do you never deal with long member names that would benefit from a quick
ctrl+space?

Are you really that quick at opening code files and scrolling down by hand to
method definitions?

Do you genuinely prefer to use command-line tools to search your codebase? And
replace? And if so, how do you safely rename variables, methods and member
names?

I don't think that language choice has all that much to do with it. I'm
currently working on a medium sized Python project, and spend maybe an hour a
day cursing Eclipse for not knowing the contents of my own classes, let alone
the Python and Django libraries. Honestly, I don't feel sped up!

~~~
rcoder
_...And the entire Windows API?_

Quite simply, you've shown why some of us prefer to work with compact
frameworks in the online space.

The normal web stack, as a vocabulary, is really only a few thousand "words"
in size: HTTP verbs, HTML tags, CSS selectors, JavaScript/jQuery/etc. API, and
your choice of agile web framework interfaces (perhaps with a little SQL mixed
in for good measure).

Once you're relatively literate in the weird pidgin that is the modern web
stack, it's pretty easy to rely on the auto-complete engine already wired into
your head.

If your class member names are too long, or your method defs are buried inside
some 10Kloc monster source file, perhaps you should consider some light
refactoring to clean things up. Similarly, if you find yourself heavily
relying on search-and-replace outside of single files, you may may have a bit
of a coupling problem in your system.

------
dmaclay
I like Vim, so I use Netbeans with the jVi plugin when I need an IDE. I would
use Eclipse because of its more extensive language support, but there are no
decent plugins that offer vi style navigation AND code-completion.

------
nittwerp
I really can't stand using an IDE, but I understand why others would. There is
just too much going on and it just seems to get in my way. Give me a decent
text editor and a couple terminals and I'm ready to go.

------
issactrotts
You can get decent file navigation in Emacs by using Nav (Google for emacs
nav), but it won't help with other Eclipse features that Emacs doesn't have.

About refactoring of scripting languages, Python has Rope, with bindings for
Vim and Emacs. It's not a comprehensive or bug-free solution, but it's a start
and has at least one solid developer. I submitted a report for a tough Rope
bug and one of the Rope developers fixed it in a few days.

------
Hates_
IMHO nothing comes close to IntelliJ. Whether it be Java, Grails, or Rails.
It's a pleasure to use. I did a stint of using Textmate (which is a brilliant
texteditor), but just lacks the refactoring tools that IntelliJ provides.

------
hapless
I'm told NetBeans has considerably better JRuby support and integration than
Eclipse.

~~~
Tichy
I've tried Netbeans recently and couldn't stand it. Don't remember why, but
another comment here makes me think that NetBeans was maybe really doing too
much code completion, helper popups and what not.

Also I think it only did "menu entry for generator script", just like the
Eclipse plugin. Maybe it was better at code completion, but I would really
like some helper for the generator scripts, because I don't know the command
line options by heart (and don't want to memorize them, either).

