IntelliJ IDEA goes open source
blogs.jetbrains.com
blogs.jetbrains.com
But I'm trying it now, and I can't say I'm impressed. There's a forest of plugins, the preference pane is bewildering, it doesn't look as slick as it used to, Mac keybinding don't work, and it's extremely slow.
I'd like to say, hey, what happened to doing one thing (editing Java) and doing it well? But, well, were talking about an IDE here. I guess that's just not in the cards.
Even so, I'd love an editor with realtime code analysis and those fantastic "suggested actions" for dubious code, without all the cruft associated with version control, html/css, javascript debuggers, database viewers, and so on...
http://www.jetbrains.com/idea/nextversion/editions_compariso...
Wow! I've always thought the Lisp machines' environments as being an inspiration for the modern third generations IDEs (Eclipse, IntelliJ). Now this seems to have come full circle.
When i was working in Java world, i could never get any employer to pay for IntelliJ and had to stick to reading how awesome it was.
Now, I would at least get a chance at trying it out.
That might not be the case. One of their other products ReSharper, the .NET equivalent of IntelliJ IDEA, is popular in the .NET world. Perhaps that is doing better in sales and they are shifting their attention on what has greater growth potential.
Maybe it is another sign of C# supplanting Java as the more trendy development language for your average developer?
And that now C# is trendy for the same developer.
Anyway, "trendy for average" is oxymoron.
"trendy" is something new that exceptional people to, contrary to what everybody does. "trendy for average" is wtf.
I use IDEA at work. I could definitely get by writing a small web app without their "enterprise" Java support -- it doesn't help that much in my application -- but leaving out HTML, JS and CSS syntax highlighting would just be annoying.
In response to Eclipse users who haven't tried IDEA, I'd recommend trying it out now that you can do so for free. I used Eclipse for a couple of years prior to getting an IDEA license, and find the IDEA editing and browsing experience to be overall slightly better than Eclipse.
idk depends how large you're talking.
What about refactoring? Eclipse's rename tool for one changes the way you write code as refactoring is so trivial you do it without thinking.
Eclipse's debugger is also top notch, far better than jdb.
I also hate the thought of an IDE refactoring my code. I've seen it before, and I've seen it break stuff.
It's just typing :/
Authors of novels could use auto-complete. They could tab complete characters names. I expect they could use built in sentence constructs, or even re-factor parts of the novel. But they don't.
I'm not sure how you can write any non-trivial Java program without lots of getters, unless you expose your fields everywhere, and end up in maintenance hell.
hashCode/equals/toString are boilerplate code that is best machine generated, because humans make mistakes when writing the same boilerplate code for the 500th time.
The fact that Java is strictly statically typed means the IDE can safely refactor your code without breaking things, though obviously you can still get naming conflicts, which if occur the IDE will not let you continue.
Your comparison with natural language is disingenuous, they are not parsable by machines, and hence are not easily refactorable; a word processor can't determine the context from your cursor location, and hence can't auto-complete words.
Here is Java's complete grammar: http://java.sun.com/docs/books/jls/second_edition/html/synta....
I also haven't seen a character name like SimpleRemoteStatelessSessionProxyFactoryBean (that's a real Spring class name...)
I don't touch any of the Bean / Spring / 'enterprise' madness. Perhaps that's the difference.
Exposing fields everywhere isn't really a maintenance hell, it's simple enough to find everywhere that accesses the field, I'm not sure why adding getters/setters is so much better :/ Sometimes it makes sense when the get/set does more than just modify a field.
Things like SimpleRemoteStatelessSessionProxyFactoryBean are clearly madness, and give Java a bad name. Also reinforce the silly opinion that to write Java you must use an IDE.
IDEA might be great, but so is Eclipse, NB, Vim, and Emacs in the hands of a developer worth their salt.
In my estimation, Eclipse has more momentum over anything else, primarily NetBeans (which is quite good, actually) and IntelliJ. And momentum counts more over the long run.
For example, in GWT, I can command-click (this is on a Mac) on a GWT style-name in a Java class, and it will bring me to the relevant part of the style in the CSS file. Same thing for Spring integration- it can connect all your code to your Spring XML config seamlessly. When you ask it "find all uses of this class/interface/member", it just does the right thing, whereas with Eclipse it often seems to miss things. Refactoring especially, in Eclipse seems to miss a lot of things that IDEA gets right.
I had the "misfortune" of having learned IDEA as my first IDE. So I am forever spoiled now. You could say that I am biased towards IDEA because it's what I learned first, and you'd probably be right to a certain extent. I tried on several occasions to migrate to Eclipse, with the intent of lowering the communication barrier between me and my colleagues. But each time I ended up going back to IDEA because it just works so much better at navigation. If you work in big codebases this becomes really important. Before IDEA I used to use Emacs and the command line exclusively.
Edit: After investigating further, it looks like there is an alpha-quality Python plugin, and eventually there will be full Python support, available in its own IDE or as a plugin for IDEA.
Sounds as if it's just what you are used to, not that one is better than the other. Back then when I worked with Eclipse, it did not seem full of seams, either.
Edit: In case it wasn't obvious, I meant an IDE that you're just used to using, and that you think it's perfectly alright because you're not aware of better options.
I've got some anecdotal evidence to support this, so if you disagree, let's hear yours.
Have you really tried IDEA, and did you really not think it was better than Eclipse?
Yes and yes I did think it was better than Eclipse but I did not think it was better than Netbeans since 6.5 and on. I think the problem with IDEA is they are beginning to have trouble keeping up with the latest trends in the industry given that fact that a lot of those trends are coming out of open source it is natural that the open source IDE's will implement tooling before there closed source competitors.
That being said IDEA always felt more "bolted together" and consistent than Eclipse but the trade-off was always that they did not have tooling for some of the things eclipse did, so personally I would have to jump between the two.
Since Netbeans 6.5 and now 6.7 I have moved away from both as, for me, it has both covered well. It is polished as if it where build less by community and more by a driving vision. It also has a large community following implementing new tooling for the latest and greatest. Take the JavaScript tool-kits for example, Netbeans is the only IDE short of Aptana that I have seen, that implements code completion jsdoc inspection, code navigation, debugging, trace from JavaScript client, through server to database, etc. etc. for all of the major JS frameworks.
Anyway, long story short, IDEA is competing in a space that is becoming increasingly difficult to remain closed source. Especially when some of it's open-source competitors have caught up with it in it's mainstay, efficiency and usability.
- Javascript / HTML / CSS support
- Structural search-and-replace (imagine search and replace that actually understands code)
- Code completion and navigation for XML and properties files
...and more.
I use Eclipse, because I know that having really learned it, I can use it where ever I want, no matter where I work.
Someone please explain.
However, I had my cow orker try it another day, and we've failed to find a way to visually synchronize project with repository, like you do in Eclipse. Therefore, threw it out.
And no, it's not just what people are used to. Earlier this year, me and another guy converted a few developers from Eclipse to IDEA and they were all really happy about discovering it.
I want to see which changes are due, and which changes are to be imported. Like one does in eclipse under Team -> Synchronize with repository.
I fail to find such a mode in IDEA.
Noone is yet to point me to it.
You have a three-column view with the local version on the left, the merge in the middle, and the changes on the server on the right.
Then you can pick and choose which changes to include and which ones to revert, and their locations are all marked with red and green colors on the sides (of the columns).
I assume that's what you meant, and I don't remember ever having to "opt in" for that functionality.
Btw, it's possible that the people on #java were all using Eclipse :)
I'm not asking for a visual merge "when there are conflicts". I'm asking for a visual merge NOW; because I said so. Because if it fails to produce the said visual merge, it gets thrown off the window - exactly what's happened.
And it's more than visual merge; I also want a tree of files that have been changed, on both sides; and I want to look at diffs when clicking on them; and to choose what to update, what to commit. It's very much more than just a dumb commit all/update.
Nope, those people on ##java are really passionate about IDEA.
You can choose specific files to commit or update in IDEA too, but I guess that's no good either if it doesn't happen exactly where you want it to.
Why do you want a visual merge even when there are no conflicts though? You could just edit out everything that shouldn't be committed, and then commit.
Having said that, I'm way less disciplined than I used to be, so I've gotten so I just trust the merge. The mentors who taught me the ropes with version control systems would not be impressed.
Or maybe they've also realized it's not 1992 anymore.
If you're just developing a web application or twitter client, it's probably not worth being so anal-retentive about it.
If it really works (didn't check) then IDEA would be fine. Still I'd prefer these modes to be merged.
and if it doesn't do what you want, I suggest writing a feature request. I have gotten quite a few features this way.