views:

219

answers:

6

The problem is - I like old goods ;) Having some old laptop which I just LOVE. It runs Xorg of course, and it's fast. But Intellij IDEA is still slow.

Thought about emacs, but never used. Isn't emacs too complicated? Going to work in text mode under X in many windows and make some scripts to automate things.

A: 

When you say "text-based", do you mean "runs in the terminal"? In that case, the choice is obvious (In my opinion) -- vim is the best choice, and available on pretty much every Linux distribution in the world. It has built-in syntax highlighting and indentation for Java, and you can use plugins like Taglist and some others mentioned on SO before, to give it more of a modern-IDE feel.

Adrian Petrescu
Well, yes I acutualy meant to run in terminal. I love linux I love SSH and I'm happy managing 30 remote boxes in text mode from my Linux phone :) This is why I'm text mode fan.
archer
+2  A: 

The big three Java/universal IDEs (IntelliJ IDEA, Eclipse & Netbeans) are all written in Java and are going to be slow-ish on an old (define old?) laptop. I wouldn't want to run any of them on one of my 3-4 year old Thinkpads, but I don't mind running Netbeans on my 2 year old MacBook. I haven't tried IntelliJ on the MacBook but I use it at work on a new Thinkpad and it's not exactly fast there. It's still usable, though.

There's a world of difference between a do-all IDE like IntelliJ and a text editor, even one that is extensible like Emacs is. Emacs will use fewer resources and will feel more responsive, but that's partially because it does less and partially because its core engine is native code and not Java. Plus it has 20 years of tweaking behind it.

I tend to use Emacs as an editor if I just want to crank out code - once I move from writing code to the debugging, refactoring and tweaking stage, I also avail myself of an IDE because they tend to do at least some tasks like debugging better. This shouldn't really come as a surprise given that you are talking about a text editor (on steroids, admittedly) compared to a full-fledged IDE.

Basic Emacs isn't that hard to learn. If you want to write scripts, learning the movement and basic text editing commands should get you up and working quite quickly; the complexity comes when you delve deeper into the editor and start making use of the multitude of add-on packages and the advanced features built directly into the editor. The learning curve is going to be steeper than, say, gedit, but it's perfectly doable if you accept that it's a completely different beast from an IDE (more powerful editor with less handholding) and it does things its own way.

Is it worth learning Emacs? I don't know - if you want to, then yes. If you just want a more responsive but essentially basic text editor, have a look at the alternative programmer's editors out there. A lot of them are easier to learn than Emacs and VIM, but not necessarily as powerful either.

Timo Geusch
A: 

If you are / want to be a professional Java programmer, I would suggest you buy a new laptop and run IntelliJ IDEA/Eclipse on it. Any modern laptop should be able to to run these IDE's.

The productivity gain that you get by using the IDE's - esp with things like re-factoring - makes the money spent on the laptop worth it.

While you could use vim+ctags as a bare minimum java editor (with completions ) they will nowhere come close to the power of the IDE's while building real world applications.

IDE's offer all sorts of tooling from generating build scripts to integration hooks with frameworks ( like Spring / hibernate ) to make your life easier.

Like you, i dont like starting up a big bloated IDE on my machine. But you know what? Once you do start up your big-bloated IDE which eats 300 megs of RAM, you'll find yourself working much faster.

Manish Chakravarty
Thanks for your wishes, but I already have new laptop, new quad core desktop and many other stuff ;) I was about to find some different approach for software development
archer
A: 

Well, after reading some responses I decided to answer my own question and explain the idea.

The main idea behind it is new way of software development. Imagine - you open the browser and load your fast, lightweight IDE. It loads in seconds, compile 300-module project in seconds on powerful server (not on your box) even provide pair-programming when both of you can edit same file in realtime.

This is too complex to implement. But this is the future I believe. However text-based approach is pretty simple to implement. Install emacs to some powerful box and you're ready to go. Of course, few developers won't be able to edit same file at same time. But this is beginning and much simpler to implement. Compilation on multiprocessor-multicore box - will be way faster. I guess that I can assemble that myself in few hours to try. Just suggest me something really cool for text mode. Some kind of (java) development plugins for emacs/vim or at the least articles that describe something similar.

archer
Well, Emacs does have a collaborative editing environment, it's called Rudel. I have 0 experience of it, I don't collaborate.
High Performance Mark
A: 

You should checkout out vim + eclim (http://eclim.org/). Eclim is a vim plugin that communicates with a headless instance of eclipse over a socket. You get the vim text editor + the augmented refactoring, completion, etc. of Eclipse.

Ryan
A: 

Let me add that an Emacs client for eclim is currently under development, but what is already available looks really nice. Check out this link for more details:

http://www.emacswiki.org/emacs/EmacsEclim

Cheers,

--
José A. Romero L.
escherdragon at gmail
"We who cut mere stones must always be envisioning cathedrals."
(Quarry worker's creed)
José A. Romero L.