It always seems that developers are more willing to agree on music, one of the most diverse forms of self-expression available, than they are to agree on their development environments
Its all been said before but I have never seen as much fanaticism in the development world (well apart from the My language is better than yours arguments) than in the land of IDEs.
My current poison I dont say favourite is Eclipse 3.0 M8. It does what I want it to, and Im happy with it, it has faults, show me an IDE that hasnt.Sometimes it's slow as hell, but sometimes so am I. The important thing is that Ive learnt to understand these faults, and get around them. This is not to say that Ive not used other IDEs IntelliJ IDEA, JBuilder (from back when it was still half Delphi!), Netbeans, JDevloper, VAJ, Visual Café (then again you could say that Ive missed out on a whole load of other IDEs like Kawa, and Emacs/JDE (Yes I do consider anything that makes the general development environment more integrated, an IDE).
Before I get inundated with Why didnt you stick with [whichever]? posts, the only other IDE that I got on with, was IDEA, but because I couldnt see multiple project trees at once without opening multiple windows, I moved to Eclipse. But this being said, many of these IDEs have great features that are to be praised, from IDEAs almost total embrace of refactoring as a Good Thing that developers actually want, to JBuilders two-way, non-invasive, visual development (some might call constantly having a jbinit() method as invasive Im not one of them); from Netbeans build on plugins philosophy to JDevelopers visual support for Struts.
Competition is good, but familiarity breeds contempt. Many developers advocate their own IDE whilst both disparaging the choices of others, and ignoring the failings of their own environments. Sadly, this scenario can be applied to many more things than just IDEs.
We do it with frameworks, Persistency solutions, etc, etc.
I think in many ways it is this blind loyalty to one particular brand (and not just IDEs) and futile infighting that could harm Java. And its not just infighting between developers, there are the Open Source and Dont Open Source camps, and the JCP cant even agree because theyve all got their own agenda see JSR 243 JDO 2.0
Just because your problem domain fits well with one particular problem dont just assume that it will fit everyones, discuss it properly and objectively.
As the Beatles song goes, But though they may be parted, there is still a chance that they will see, there will be an answer, let it be.
There doesnt have to be one answer, just dont assume that everyone will find the same answer as you, moreover, dont think that everyone is inferior because they have a different answer to you.
Another thing that breeds contempt for other IDE's is a perfectly valid fear of learning a new IDE's quirks and how to do things in it. I originally used IDEA, then used Eclipse for a couple of years, then used IDEA again. What a pain - not because one is better, but I know where everything is in Eclipse, whereas I don't in IDEA. And I came to rely on features Eclipse had that IDEA doesn't, while not noticing the new features IDEA had partially because I didn't know about them. Finally, there were a couple of similar things in IDEA and Eclipse that I thought would work the same way...but didn't, and cost me a lot of time.
I suppose I have a certain amount of contempt for JBuilder, a product I've never used. But I just don't want to have to learn how to use it, when I don't hear from anyone that it's "way better". That's it, no real other reason.
There is one other important factor that can determine the choice of IDE; money. I've been using IntelliJ's Idea for some years at home by means of their early access programme (free in return for highlighting bugs or problems when they occurr). At work, however, I've been using Eclipse.
Functionally there's really little to choose between them (the majority of the differences lie in implementation detail and secondary functionality). However, an Idea license costs a couple of hundred quid whilst Idea is free. Not surprisingly, my company has chosen to provide and support Eclipse as its approved IDE. Unusually, it hasn't ruled out people using other tools - it just won't pay for them.
Given that Eclipse's development is basically underwritten by IBM, it does appear that some kind of distortion of the market is going on. But hey, it's not Microsoft that's doing it and the code does bow to the god of open source, so I guess that it's OK.
> Unusually, it hasn't ruled out people using other tools - > it just won't pay for them.
This is a step though, many companies won't advocate the use of other tools, even if they are free.
> But hey, it's not Microsoft that's > doing it and the code does bow to the god of open source, > so I guess that it's OK.
One thing about Microsoft is that you only really have one tool, VS.net, and if you don't like it then tough, but it does mean that developers vent their frustration at MS rather than on each other, so the infighting tends to end there. With Java it can go on for months, even years, and all the time that this is happening, whether they are valid points or not, MS draws ever closer, and at least with MS you either deal with the iussues of your IDE or you don't work - you don't spend countless hours evaluating and re-evalutaing, when you could have otherwise been doing work
> > Given that Eclipse's development is basically underwritten > by IBM, it does appear that some kind of distortion of the > market is going on. But hey, it's not Microsoft that's > doing it and the code does bow to the god of open source, > so I guess that it's OK. >
If Microsoft wants to put their code in the open source world where we can do with it as we please, then I'd feel the same about them but Microsoft doesn't do that. Microsoft adopts a "we know best" attitude that has been shown to be sickeningly wrong so often that Microsoft themselves can't keep their stories straight on any single technology.
If something is wrong with Eclipse, Netbeans, Emacs, or other open source tools, or even if I just don't like the way some one thing is done, I always have the option to change it myself. (The amount of elisp code I've written over the years says something about how much I've valued being able to customize Emacs, for instance.) I can't do that with MSDev Studio, at least not easily and with many functions I can't do it at all.
I don't care if it's IBM, Sun, or Microsoft contributing to open source because once it is contributed, they can't take away my right to do with it as I please.
And that's the core difference - Microsoft doesn't respect you enough to trust you with that right.
Your remarks above indicate that you may not even realize this. Well here it is in black and white: Microsoft doesn't trust you as a collaborator while IBM does. That's a difference that most people I know can understand quite clearly and which continues to be true regardless of the number of snide remarks made by Microsoft lovers.
I do like IntelliJ a lot. After switching from NetBeans 3.6 and prior to that Eclipse, I just find IDEA 4 to be very intuitive. But, unfortunately, (IMO) the title for slick IDE's has to go to Visual Studio .NET.
>> I do like IntelliJ a lot. After switching from NetBeans 3.6 and prior to that Eclipse, I just find IDEA 4 to be very intuitive. But, unfortunately, (IMO) the title for slick IDE's has to go to Visual Studio .NET. <<
Wow, I personally couldn't disagree more about VS.NET! I've used VS.NET all day every day at work for the last 18 months, doing C# development, and it's a huge relief when I get to work in IDEA 4. Before the days of refactoring IDE's, it might've been the state of the art, but it feels pretty "dumb" (just meaning, it doesn't seem to understand code) by today's standards.
The three features I miss most in VS.NET that are present in IntelliJ are Ctrl-N "Go to Class", Ctrl-B "Go to Declaration" (VS.NET has something similar but it often takes a really long time and very often doesn't actually take you to the right place), and Ctrl-W selection expansion. Oh, and the type and call hierarchy windows. After getting used to these, VS.NET feels downright clumsy. (Luckily there's a ReSharper plugin for VS.NET that IntelliJ is working on that narrows the gap.)
I'll grant you that the GUI builder capabilities of VS.NET are maybe the best in the business... is that what you meant?
Regarding the original post, most developers I talk to are rather ambivalent between Eclipse and IDEA. I personally haven't seen any real IDE "holy wars" since IDEA hit the scene.
Points of clarification > One thing about Microsoft is that you only really have one > tool, VS.net, and if you don't like it then tough, but it > does mean that developers vent their frustration at MS > rather than on each other, so the infighting tends to end > there.
Although this doesn't mean that people are necessarily happy with VS.net or that the workarounds actually work, but just that there are few alternatives for .NET, and many are therefore stuck with VS
> you don't spend countless hours > evaluating and re-evalutaing, when you could have > otherwise been doing work
Again, I am not saying here that everyone spends hours re-evaluating IDE's, but for myslef, I tend to keep on eye on major releases of at least four IDE's - Eclipse, Idea, Netbeans and JDeveloper.
The fact that there is space for all these IDE's and frameworks, I believe is a validation of the relative maturity of the Java language, and variety is the spice of life.
> >> I do like IntelliJ a lot. After switching from > NetBeans 3.6 and prior to that Eclipse, I just find IDEA 4 > to be very intuitive. But, unfortunately, (IMO) the title > for slick IDE's has to go to Visual Studio .NET. << > > Wow, I personally couldn't disagree more about VS.NET! > I've used VS.NET all day every day at work for the last > t 18 months, doing C# development, and it's a huge relief > when I get to work in IDEA 4. Before the days of > refactoring IDE's, it might've been the state of the art, > but it feels pretty "dumb" (just meaning, it doesn't seem > to understand code) by today's standards.
It has to be said that built in support for refactoring has to be one of the greatest things in Java IDE's. IDEA was a definite leader in this, and I doubt eclipse would get much groundswell if it didn't have it.
> I'll grant you that the GUI builder capabilities of VS.NET > are maybe the best in the business... is that what you > meant?
Microsoft has special divisions dedicated to HCI, and there is no doubt in my mind that since VB6 (perhaps even VB5) that their overall design of an IDE has moulded many others (their initial multi-IDE design using J++ and Interdev was another sign of things to come in VS.net). However, I think the world has moved on significantly from IntelliSense and superfluous wizards - it's okay when you have special resources files or need to generate ATL stubs, because nobody likes really messing around with those kinds of things so wizards are okay - but when you're looking at the ground-zero grunt coding wizards are just a waste of resources, you want things that make you more productive. But I have to agree about GUI designers, they do know how to do it properly, but then again I prefer C++Builder!
> Regarding the original post, most developers I talk to are > rather ambivalent between Eclipse and IDEA. I personally > haven't seen any real IDE "holy wars" since IDEA hit the > scene.
Yes, but they are still going on. I think a lot of the Eclipse Vs Idea wars died down after many features between both Idea and Eclipse started to converge, even cosmetic ones like 'gutter hints'
But I do take your point, yet IDE choice is still a very contentious issue. But the original post was more about being objective in the face of choices, primarily using IDE's as an example, but the same can be said for frameworks (PicoContainer vs Spring), and persistency (EJB 3 vs JDO 2) for example.
I agree with most of what Joe said. I'm relatively new to Java/J2EE (5 months now). I found IDEA 4.0 to be an exceptional tool when it comes to source editing. Its code-savvy editor actually helped me learn Java faster. I also like the refactoring functionality, live templates, and the integration with Ant and CVS.
What I don't like about IDEA, compared to VS.NET, is that is't a memory and processor hog. I have a pretty fast macine (a dual Xeon 2.4 GHz with HT enabled, 2GB RAM, hardware RAID0 UltraSCSI 160 drives with 10000 RPM, and GForce FX 5700), and it takes IDEA 4.0.3 more than 30 seconds to start for the first time (without re-indexing, even on an empty project), and it just gobbles up memory.
In comparison, VS.NET starts in 4 seconds for the first time and it's much snappier. I know that it's unfair to compare optimized native code with bytecode, but I still believe that IDEA takes way too much resources for what it does.
Some people argue that IDEA 4.x was unnecessary bloated from 3.x, but I can't really tell since I haven't used any version before 4.x.
By the way, the VisualBasic.NET editor in VS.NET is more language-savvy and friendlier than the C# editor.
I toyed around a bit with Eclipse, JDeveloper, and NetBeans, but IDEA appealed to me more and I felt right at home with it as a beginner.
Anyway, I think both VS.NET and IDEA are awesome IDE's.
> Anyway, I think both VS.NET and IDEA are awesome IDE's.
I've not tried VS.Net since the VS.Net Beta2 before .NET 1.0 was even finalised, so I can't comment too much on it, but from my experience with VB years back, they [Microsoft] do know how to design a very good IDE, but there are things missing.
IDEA is a very good IDE, and to be honest, other than memory consumption and inabaility to see multiple projects (does IDEA refactor across projects or do you have to mark in the source in module definitions?) got me a little irritated, so it doesnt get a thumbs down from me at all. But as I said my current poison is Eclipse. I think the bloat mainly extends from their initial forays into a GUI designer, which when I used the EAP versions of Aurora, I wasn't overly impressed with - but then again many people who use IDEA, use it because they neither wanted nor needed a GUI designer in their IDE.
> Another thing that breeds contempt for other IDE's is a > perfectly valid fear of learning a new IDE's quirks and > how to do things in it...
> I came to rely on features Eclipse had that IDEA doesn't, > while not noticing the new features IDEA had partially > because I didn't know about them.
Switching so many times between different IDEs, and having done the unlearn/relearn/don't learn dance so often, I had gotten to the point where I couldn't rely on almost *any* features, and learned effectively none of the new ones in the tools I was using.
No doubt I miss out on some potential productivity improvements, but at this point I just use a simple text editor with a few basic features (search/replace, multiple buffers, syntax highlighting), and rely on external tools for everything else. And no, it's not even Emacs or VI... those have too many features to learn!
> Its all been said before but I have never seen as much > fanaticism in the development world (well apart from the > My language is better than yours arguments) than in the > land of IDEs
One of the things that still continues to bother me is the absolute, outright focus on J2EE that many IDEs have. I have several other gripes about various IDEs. My main desire for an IDE to be out of my face about things. I will generally know more about what I want to do than the IDE.
My biggest gripe about IDEs right now is that too many of the new ones were designed by people who seem to thing that the Java language mandates that package names and source file directory names must match.
Neither javac, nor javadoc demand such things as some people argue. But, alas, many people seem to think that this is a great necessity and that it somehow makes it easier to find classes etc. I guess I just work differently, and the file system structure is a necessary evil for me, and I really don't like to spend time on creating and navigating directory hierarchies.
But, I've blogged about this before, and I didn't get anything out of that complaining either :-)
And again the discussion has moved away from the topic and into people heatedly brandishing the swords of righteousness to get all to submit to the one true god of their chosen IDEA.
I too have used many IDEs and editors over the years, and I don't really care which I use anymore as long as it's not VisualAge (which is too cumbersome to use and way too unstable to be considered production code). Each has strengths and weaknesses and will get the job done.
I DO have my personal preferences which I won't mention here (both products have been mentioned at least once in the preceding discussion, that's all the hint I'll give) but I won't flinch from using something else if I am not given free choice (I DO know people who'd rather refuse a job than use anything but their favoured editor).
An IDE is a tool is a tool is a tool and nothing more. If the customer wants me to not install any software on his systems, has no IDE and won't let me plug in my laptop I use Notepad (or VI if it's a Unix box). He'll just have to pay more as the project will take longer and I'll make sure to tell him so in advance.