Tired of Java IDEs, Need simple and basic alternative
I am really happy that I got my work in Java programming, and I am doing it since last 3 yrs.
And I am netbeans user, and worked on eclipse for sometime (4 months).. Now I am tired on IDE's and its issues..few issues are:
- Doesn't work on slow computers - sometimes i have to work on slow computer..
- You can't work without them, like I am trying to work on javascript, but it was hard for me because of no code-completion support
- Many times does not support all the features, but other IDE does, which will make you to try other IDE and results in spending lots of time behind tooling... like I started using AspectJ but there is not much aspectJ support on netbeans.. so decided to try eclipse.. but changing IDE is another pain point..
I heard that many programmers does not use IDE's they just need text-editors (code-coloring/navigation), And i think its cool, and productive (overall), as their need of tooling is not much, so able to adopt new technologies/frameworks fast..
So, what should i do to shift from Java IDE开发者_运维技巧's to text-editor only world.. ? And what are famous advanced text-editor (free/open-source) available ??
Few steps towards console-world I have already taken..
- Now using Maven, and running from console always..
- Doing SVN checkin/checkout from console.. But still it hard to resolve conflict
EDIT: I am using Linux & (sometimes Windows).
Cheers,
Emacs. You can take a look at JDEE to get started.
Look no further, embrace vi
( you can start using gvim - graphic vi improved - )
I took the Pragmatic Programmer's advice of learning one editor well (Tip 22: Use a Single Editor Well. The editor should be an extension of your hand; make sure your editor is configurable, extensible, and programmable.) an applied it to IDEs. I'm very happy with sticking to Eclipse, in particular since it's very extensible, so whenever I need tooling for something new, it's mostly available in Eclipse, and my keyboard shortcuts etc. work.
If you are using Linux, then have a look:
- Vim + eclim (see Tips for using vim as a Java IDE?, Vim Java code completion?)
- Emacs + JDEE (see Is Emacs useful compared to Eclipse programming Java?)
- Geany (see Fast, powerful Geany editor offers IDE features)
- Gedit (see Java compile and run, HOWTO: Set gedit to compile and run Java source code and also Pimp my Gedit (Was: Textmate for Linux) to get some Textmate features)
- JEdit (see Configuring Jedit for Java development by newbe)
But I can't suggest one in particular, this is subjective and a matter of personal preference/taste. And, to be honest, I still think that you should use an IDE when doing Java development, text-editors won't solve all your issues and you'll loose very important features (e.g. refactoring). Seriously, when working with a given technology, get the right tool (and computer). With Java, this means using an IDE. And if you want AspectJ support, use Eclipse; if you want good Grails + Groovy support, NetBeans is a good choice; etc etc. Using several IDE is actually the norm for me.
Just for the record, check out what James Gosling says in Don't use Emacs, says Java's father (which applies to all text-editors IMO, not only Emacs).
Notepad++ is another good alternative for windows. It is a very light-weight editor which has syntax highlighting for a variety of programming languages (including java). Notepad++ also supports multiple tabs.
I can appreciate you concerns and I felt similar until I found IntelliJ Idea. I realize you were asking about text editor alternatives but you didn't mention whether or not you'd tried Idea so I thought I'd mention it. I found it to be a breath of fresh air. Its fast, easy to use, and easy to configure. I love using it and it really felt like they had me personally in mind when they designed it. Unfortuantly, its not free, but you can do a trial and see if you like it at http://www.jetbrains.com/idea/download/
If you really must use text editors, I can second recomendations for Notepad++ and Textpad, both of which I've enjoyed at one time or another.
I am now using Flex Builder 3 for some flex work and I hope you are never subjected to that abomination or you may give up IDEs forever :)
Anyway, best of luck!
some update: take a look at http://www.sublimetext.com/2 it's commercial, but this one supports all platforms, not java based, uses own interface. I know at least 4 vim guys who already migrated to this one probably because you can write plugin in almost any language! =) there's repository for plugins. I think this is really something new and worth to have. If you develop for a company money is not a problem in here =)
I would vouch for Netbeans. It has been my favourite IDE since the last 5 years. It has excellent code completion support for almost all the languages. It also has added extensive support for Javascript and Maven in its latest releases.
I would definately recommend it to everyone. It can be found at www.netbeans.org. Do check out the site to see list of all the features.
Available for both linux and windows. And is much ligther on system resources then eclipse.
Maven and SVN are a good start. Other than that, you will probably just want to master the shortcuts of a good text editor. There are the two holy choices: vim and emacs. I prefer neither, and usually go with textmate for mac.
Even though IDE's can be a pain in some regards there is a lot of stuff you give up without them. For example, I am not a gifted enough Java developer to have memorized the Java and Spring API's, so code complete is huge for me. Also, having the IDE flag compiler errors on the spot is a huge time saver. Adding TODO's to my code and coming back to them is handy. Do you think your overall time will be saved without these features? If so, then definitely give the vim/emacs approach a try.
I would suggest either Emacs or vim (in GUI mode) as an editor, as they are de-facto standards on Unix in general. Then use ant to build your code using javac.
The Text-editor of choice for many developers is Emacs. It's amazingly powerful, sophisticated and extensible but it's also entirely keystroke oriented and once you get used to the keystroke combinations they are great but for a while you feel a bit lost trying to work out how to do everything. Also by default the keystrokes it uses are different from the ones you may be familliar with elsewhere, which is fine once you have learned them but sometimes you end up using the wrong key combinations for the program you are using and doing different things. For example in Emacs "Save file" is CTRL-x CTRL-s which means then when I open up Visual Studio I tend to cut whatever I have currently selected out of the file before saving it. Of course, that is configurable, I just have never got around to configuring it...
Because it has been around for a while and is the choice of a lot of elite developers, Emacs has different plugins available for most languages and development tasks, making it very flexible and well equipped to do more or less anything you ask of it. You can also get hold of it for most platforms and it will run fine on older or more limited systems or on a terminal if you're logging in to remote machines.
Like @darren said, you give up a lot of comfort especially with code completion when switching to a pure text editor.
Perhaps you give Java-Editor a try. It's a java IDE, but it's very light, running even on slow computers.
From the description of Java-Editor:
Integrated Java development environments set high requirements on the computer equipment. These requirements are not always met in schools. If the students shall work at home with these development systems, only freely available systems come into question. There are hardly any systems left which actually can be used for teaching. This was the reason for me to develop the Java-Editor which is described below.
I know someone who uses vim + cscope and he says it works pretty well.
Textpad is a good choice if you're running on Windows.
Just for interest: Why do you develop on a slow machine? Usually developers get decent developing-machines.
For scripts or some configuration files I love to use text-style editor vim. But I cannot imagine to go for java-developing without an IDE. Main reason: Better support of automated refactorings, which are a killing feature to me.
Maybe have a try on Intellij. At some point I also got annoyed with eclipse and switched IDE. Some while ago I posted a blog-entry, it shows you a direction of eclipse vs. intellij. Some details though are a bit outdated (it discusses IntelliJ 7, current IntelliJ 9 in my view now has better maven support as eclipse). The Ultimate edition costs money, but this is OK (if I compare the costs saved on better productivity).
You can use Visual Studio Code + Language Support for Java | Java Language Support as a lightweight cross-platform alternative to Java IDEs.
I would recommend BlueJ, its a very nice simple Java IDE. It is interactive and innovative, available for Windows, Mac and Ubuntu/Debian. Features include:
- Code Scope Highlighting
- Code Auto Indent
- Object Inspection & Method Invokation
There's also a Tutorial in English and Tutorial in Japanese
And the bird "bluejay"
Other Recommendations: jEdit & Geany
gedit (gnome) or kate(kde) + ant.
People who suggest emacs forget that, while it is a great OS, it really needs a decent text editor. Learning vi, while useful if you actually have to use a cli editor, is about as much a pain in the ass as learning an IDE. Both kate and gedit are about as hard to learn as notepad.exe except they support syntax highlighting.
Ant is easier to learn than make IMO (probably due to the way c/c++ compiling works), but takes longer to write (it's xml). I guess you could use make to compile java. I've been told that maven2 replaces ant, but have never used it. If it does, you could use it instead of ant.
As for svn merging, there are a variety of tools ranging from diff
(cli, produces difference files) to meld
python gui that gives you side-by-side diff. On windows, tortoisesvn ships with tortoisemerge, which does 2 and 3-way diffs graphically.
Try gedit or the powerful jEdit.
if you using mac then Coda IDE or TextMate is your friend. Coda supports svn and sftp, have great syntax completion and highlighting. Such things as code sharing, snippets collection and some other nifty stuff really gives of IDE feeling, although many eclipse guys says that this is just a simple text editor.
Gurus sticks to VIM or EMACS which requires lots of learning in fact (two different religions, vim is command based, and emacs is shortcut based). personally I like emacs more because of funcionality and faster learning process (mac have more complicated shortcuts then windows, it's kind of more easier to use emacs for me)
on windows notepad++ already have intergrated sftp, that's would be enough for me. for svn mostly tortoiseSVN is used..
Maybe few software instead of one, seems to messy for developing - but it's not. Infact because software usability is high, workflow is really faster then with eclipse or netbeans.
Personally I stick to Coda IDE a lot. Because of text editor inverted colors, minimalism of interface, speed of actions you need to do, not-aliased fonts (like monaco 10px)... best software I've used in my life.. but it's for mac only =) I feel so comfortable with it, that I decided to buy a macbook finally (migrated from hackintosh). I'm happy more then ever was =) I wanna code so hard when I just opening this software and see my code on black background - magic feeling! =)
Cheers
Use VS Code and install Java extension
精彩评论