[OT] Eliotte Rusty Harold having a quick look at IDEA

Some of you may know him (http://www.cafeaulait.org/)

Here is what he says (http://www.cafeaulait.org/#August_22_2006_35539)

I've been playing with IntelliJ IDEA 5.1 for the last day or so. It seems OK, less buggy than NetBeans and no stranger or buggier than Eclipse. I wouldn't exactly call it a model of good user interface design though. There are lots of little glitches, such as menu bars that disappear when certain windows are open, omitted menu shortcut keys, menu items that bring up dialogs but don't end in ..., a non-native busy cursor, Mac OS 9 file dialogs, application exiting when I close the last window, outdated screen shots in the Help files, a Windows menu that doesn't keep a list of open windows, and for some unexplained reason I have to save a color scheme before changing the default font.

I'm having a devil of a time figuring out basic things like how to stop IDEA from folding my comments, and how to set up the classpath. All of these are far from obvious. The small buttons with weird icons don't help here. I still haven't been able to figure out how to indicate that one project depends on another (e.g. that Jaxen depends on XOM and vice versa). I suspect Eclipse is equally or perhaps more confusing to a new user, but at least I'm used to its idiosyncrasies.

IntelliJ IDEA is famous for its refactorings, but so far I don't see why. To date it's made three suggestions, each of which was flat-out wrong. The latest is a claim that an import is unnecessary when the class it imports is used in the first line of the main() method.

IntelliJ hung on me once. It was a weak hang—the busy cursor spun indefinitely while opening a package, but I could still do other things—but it was still a hang. I had to quit and restart the program.

If I were evaluating IDEs on a level playing field, I might pick IDEA, but I'm not. Eclipse has two big advantages over IDEA:

1. Eclipse is open source, and thus has a much larger active community fixing its problems and adding to its functionality.
2. I'm already used to Eclipse's weirdnesses and UI glitches.

However, the bottom line is that the state of the art in IDEs for Java isn't nearly good enough. I wish someone would invest in some real human factors research on IDE design. What we have now is a confusing mishmash of features baked together without much thought for what the resulting product will look or feel like.

I could swear things didn't used to be this bad. Years ago when I was doing C and C++ development with products like Think C and Borland C++ Builder, the IDEs actually made sense. Maybe my sense of aesthetics has gotten more refined over the years, or maybe my projects are larger and more complex, or maybe Java is just harder to design for than a compiled language. (The classpath is a big part of that.) Whatever the reason(s), IDEs are just too klunky.

22 comments
Comment actions Permalink

Hmm, not sure if this "article" could help anybody searching for a Java IDE.

It looks that somebody really had only a short look, preoccupied by his Eclipse experience.

To me IDEA is a great leap forward in usability when comparing five years old "Windows" IDEs with IDEA. Just today, I had to switch to an old Delphi project, and I was very annoyed to use that development environment again, because in comparison it looked almost unusable. At the time of the project (2000) the Delphi IDE was my favorite.

The classpath setup in IDEA is more comprehensible and easier to find than in other IDEs and the product feels much more thoroughly thought and trimmed for usability than Eclipse with its wide landscape of plugins.

I don't know how someone come to the conclusion that the IDEs of the late 90s, early 2000s where easier to use and comprehend, less clunky and more user friendly. Today's IDEs have productivity features, I would have loved to be available in my good old Delphi.

The exception is the case, where someone wants to develop a quick database front end. Here tools like Delphi seem more productive as they provide this numerous "data aware" components, which are easy put together to an application.

That is where Java lacks mostly: intelligent ready to use GUI components, much more enhanced to the standard ones. The extended SwingLabs components seem to go in this direction.

Thomas Gülden
Munich, Germany

0
Comment actions Permalink

When I started working in a new company, I had some discussions about
IDEs with my collegue (he used Netbeans). Of course those discussions
didn't change anything.
But after a few weeks he switched to Idea too. At first he started to
use both IDEs, now he has completly switched (except for some CVS tasks).

He was simply impressed of my working speed... And now he is really a
fan ;).

So I think it needs more than a simple look on a new IDE to show the
benefits...


Johannes Schneider


Thomas Gülden wrote:

Hmm, not sure if this "article" could help anybody searching for a Java IDE.

It looks that somebody really had only a short look, preoccupied by his Eclipse experience.

To me IDEA is a great leap forward in usability when comparing five years old "Windows" IDEs with IDEA. Just today, I had to switch to an old Delphi project, and I was very annoyed to use that development environment again, because in comparison it looked almost unusable. At the time of the project (2000) the Delphi IDE was my favorite.

The classpath setup in IDEA is more comprehensible and easier to find than in other IDEs and the product feels much more thoroughly thought and trimmed for usability than Eclipse with its wide landscape of plugins.

I don't know how someone come to the conclusion that the IDEs of the late 90s, early 2000s where easier to use and comprehend, less clunky and more user friendly. Today's IDEs have productivity features, I would have loved to be available in my good old Delphi.

The exception is the case, where someone wants to develop a quick database front end. Here tools like Delphi seem more productive as they provide this numerous "data aware" components, which are easy put together to an application.

That is where Java lacks mostly: intelligent ready to use GUI components, much more enhanced to the standard ones. The extended SwingLabs components seem to go in this direction.

Thomas Gülden
Munich, Germany

0
Comment actions Permalink

I stopped reading once I saw:


You see these posts all the time. An Eclipse, Netbeans, or IntelliJ user gets bored one day, and decides to try out another IDE for a day, immediately finds some quirks that are different, then posts about how it's crap in his blog. Been there done that.

I've seen very few reviews (if any?) where a reviewer used one IDE for months, and then tried another one for months to get a real comparison that's more than skin deep.

I'd really like to see an indepth review between IntelliJ 6.0 and MyEclipse 5.0. The problem is that few hard core professional developers have the time to do an indepth review.

0
Comment actions Permalink

I think Eliotte Rusty makes good points and should be heeded.

He's not just some random blogger, but a respected author. Had it been more favorable his post was an opportunity for IDEA to get more mind-share.

Basically, he's speaking to the fact that Eclipse is really catching up with IDEA (and passing in some respects).

Sticking your head in the sand about this won't make IDEA better.

I don't think he's overly biased by Eclipse. He states what thinks are its' strengths:

1. Eclipse is open source, and thus has a much larger active community fixing its problems and adding to its functionality.
2. I'm already used to Eclipse's weirdnesses and UI glitches.

2 really isn't a strength but rather what I'd consider his own misfortune (: > )

but 1 certainly is a strength. As just one example, the shop I currently work in has four IDEA users, one JBuilder user (we won't count him) and an Eclipse user. The Eclipse user started using IDEs, at least on the Mac, for this job and choose to use Eclipse over IDEA for only one reason: he thinks the skill is more marketable. Even if you don't consider this a good reason, it is a reality.

Eliotte's other points are pretty valid too, but I think found memories of tools past are getting the best of him when he compares current IDEs to things like Think C and the good ole days. For its' time Think C was a great environment, but it's feature set was far less than any modern IDE. However, from a UI point of view, I agree that its' UI was great - better than the current IDEs, but I think that's primarily a problem with not coding "to the metal" Using a cross platform UIs will never be as a good a UI designed for a particular platform. But is also a problem with having so many features. Its' hard to wrangle that much functionality. Most people agree that good UI is hard to do, and personally I think even harder to do as an open source project. Think C, in particular, also benefitted from that fact that it was a Macintosh app where UI has always been paramount to the overall application.

Speaking to Eliotte's other points about usability and robustness I have to generally agree (and I am big fan of IDEA - believe it or not).

When I started using IDEA with version 2.5 its' biggest strength was that I able to configure a project and be productive with it in about 10 minutes of fiddling around. Eclipse never passed that test for me, but today IDEA would not either. And it is not just me: when I teach Java I use IDEA in the classroom. With each version (I've been doing this since version 3) it is getting harder and harder to get students up in running with it. It's simply more complicated, but the UI is not as clean as perhaps it could be and definitely as much as used to be.

With the abundance of features being added, it is even more critical to take extra pains with the UI on all the supported platforms. Its also important to make sure that all the features are rock solid - like they seemed to be pre 5.x. It's great to have extra functionality but I think the core values of earlier versions of IDEA need to be brought back to the forefront. Intuitive. Fast. Rock solid.

0
Comment actions Permalink

I should clarify at least one point from my diatribe above.

When I said I agreed with Eliotte's point:

1. Eclipse is open source, and thus has a much larger active community fixing its problems and adding to its functionality.

I should stated that I think the real advantage here is the larger active user community not the fact it is "open source". Its strength is its mindshare reflected in that community, not its' development process. And given its corporate roots, I think calling it "open source" is a bit misnomer anyway.

I do not think open source is somehow inherently better then closed source, or the hybrid model the Intellij uses. In fact, I think the hybrid model of listening to your users (mostly :>) and following their leads as worked well for Intellij.

0
Comment actions Permalink

+
When I started using IDEA with version 2.5 its' biggest strength was that I able to configure a project and be productive with it in about 10 minutes of fiddling around. Eclipse never passed that test for me, but today IDEA would not either. And it is not just me: when I teach Java I use IDEA in the classroom. With each version (I've been doing this since version 3) it is getting harder and harder to get students up in running with it. It's simply more complicated, but the UI is not as clean as perhaps it could be and definitely as much as used to be.+

+1

The project setup wizard definitely needs to be more powerful (auto-detecting Ant files and library jars), the project settings panel clearer, and many project configuration actions available as via Project-panel right-click options or (even better) as intentions. Those have all lagged behind in power as the IDEA project model got more powerful and more complicated.

--Dave Griffith

0
Comment actions Permalink

Spencer,

I think your remark:


When I started using IDEA with version 2.5 its'
biggest strength was that I able to configure a
project and be productive with it in about 10 minutes
of fiddling around. Eclipse never passed that test
for me, but today IDEA would not either. And it is
not just me: when I teach Java I use IDEA in the
classroom. With each version (I've been doing this
since version 3) it is getting harder and harder to
get students up in running with it. It's simply more
complicated, but the UI is not as clean as perhaps it
could be and definitely as much as used to be.

is not neccessarily true. We use IDEA since version 2.5 for the same project, and the time to set the project up has not increased significantly during the past versions, it'll always be around 5 to 10 minutes. It is an enterprise client/server application no J2EE server involved, around 6000 classes, various resource paths. Certainly not overly complex. The addition of global libraries helped to setup various projects considerably.

However, I think that our projects also got larger and more complicated (Web projects are probably inherently more complex). So, naturally, it would take longer to setup such projects. And the project infrastructure has to be flexible enough to cope with "legacy" project structures as well.

Certainly, project setup isn't perfect and I think the documentation could be more elaborate in what to do and which consequences each setting might have. The most difficulties I have, is when I try to learn web development features to adapt the project outline proposed in the tutorial or book, to the stuff IntelliJ expects me to configure during project setup. Here, some additional help and explanations would be great.

Kind regards

Thomas Gülden
Munich, Germany

0
Comment actions Permalink

I agree that in order to support more elaborate development needs IDEA has definitely had to also expand. In general I think they have done an great job too. I do maintain that 2.5 was simpler than more recent versions and that the simpler meant easier to get started with if you where completely new to IDEA.

I also agree that many of the new features are very useful indeed. I would include global libraries as one such example of something really useful.

I've also had trouble trying to adopt Idea to use web development features and think more documentation or some kind of help, would be a real boon.

However, I do think speed and robustness are starting to fall below the high bar set by previous versions of Idea and I am not taking about the beta - I don't think that would be fair to do yet, but my experiences with 5.x.

I appreciate your comments.

Sincerely,

Spencer

0
Comment actions Permalink

The capability of the editor has increased. This is always paid for by
one or more of: cost, performance, complexity.

How do you want it?
Eclipse - no cost, but not very usable
IntelliJ - low cost, fairly usable
JBuilder - astronomical cost, fairly usable, sometimes performs fairly good

Spencer Marks wrote:

However, I do think speed and robustness are starting to fall below the high bar set by previous versions of Idea and I am not taking about the beta - I don't think that would be fair to do yet, but my experiences with 5.x.

>

0
Comment actions Permalink

His entire first section of comments seems to relate to the Microsoft Windows Style Guide. I've found over the the last 11 years working on data entry apps, the MSFT approved style guide for windows/menus etc often isnt the fastest way or most intuitive way.

I agree with the classpath comments - but that's a one off beat your head against the table task, and once you figure it out, you get over it and move on.

While Im also a big Borland fan, dating back to Tubo C++ days, the editors did a heck of a lot less - the CBuilderX IDE isn't anywhere near as simple as Turbo C++ 2.0 - but that's surely to be expected given the increase in complexity of IDEs and languages over the last 10-15 years.

JM2C

Nick

0
Comment actions Permalink

Thomas Gülden wrote:

The exception is the case, where someone wants to develop a quick database front end. Here tools like Delphi seem more productive as they provide this numerous "data aware" components, which are easy put together to an application.

That is where Java lacks mostly: intelligent ready to use GUI components, much more enhanced to the standard ones. The extended SwingLabs components seem to go in this direction.

Thomas Gülden
Munich, Germany


JBuilder provided both data-aware Swing components as well as data-aware
models for standard Swing-components - okay, I never liked them, but I
never wanted to develop DB-frontends in VB/Delphi either ;)
Still, it seemed that with these components, JBuilder could be made to
feel like Delphi, just with Java. I'm not sure about Oracle's
JDeveloper, it was derived from JBuilder and also provided such
components but I'm not sure whether they're only for Oracle.

kind regards,

Messi

0
Comment actions Permalink

Hi Messi,

We used JBuilder up to version 4. It was so buggy and Borland's release / update policy was so insane (no really maintenance releases, always costly upgrades for even obvious bugfixes, everybody knows about it), that we switched to IDEA 2.5 and stayed with it since then.

In my opinion, Sun has neglected Java Desktop for too long, therefore it is comparatively more awkward to write small data-driven applications with Java than with other platforms. Slowly, a component market is emerging, providing enhanced GUI components with a straightforward interface, but this components suites tend to be awfully expensive (often more than double of a comparable Delphi suite and not as feature rich). SwingLabs development of extended Swing components is fairly slow and it is in part not ready for production (date picker seems to be buggy for instance). Try to find out how to make a JTable have multiline cells, you find several solutions, which do not work with 1.4, 1.3 or 1.5 whatsoever. You have to write your own cell renderer, provide a custom editor and so forth. Why no having a JTable method like getColumn(i).setLineWrap(true), which does the rest behind the scenes? The Swing Library lacks convenience features too much.

Well, this is probably not the right place to start a discussion about this, but it might reflect, why some people feel more productive in other development platforms.

Kind regards

Thomas Gülden
Munich, Germany

0
Comment actions Permalink

maybe Java is just harder to design for than a compiled language.[/quote]

what is that supposed to mean?


1. Eclipse is open source, and thus has a much larger active community fixing its problems and adding to its functionality.



i'd say this is a disadvantage. open source means a much larger community, which means the code tends to be a mess, which means all the spareparts eclipse is made of don't really fit together well. i worked with eclipse for a month to be able to compare it to idea, and i have to say:
whatever i do, i need one or two detours until i get what i want. and more ram. and it lacks usabillity: in idea, whereever i can write code, i'm using the same "editor engine" - autocompletition works in debug conditions, in expression evaluation etc. in eclipse, it sometimes work, sometimes i'm writing into a plain textfield.

0
Comment actions Permalink

I should stated that I think the real advantage here
is the larger active user community not the fact it
is "open source". Its strength is its mindshare
reflected in that community, not its' development
process.


I disagree, I think a closed-source development tool just makes no sense. The plugin API for IDEA is cool but it only gets you so far. It doesn't help you to fix that annoying bug in that refactoring, or change the behavior of a refactoring to suit your needs. Also, debugging IDEA plugins is a pain without the source.

And given its corporate roots, I think
calling it "open source" is a bit misnomer anyway.


It is open source, it uses an open source license. Open source doesn't mean everyone can contribute to it, in fact that is orthogonal to open source. OS means everyone has access and can modify and redistribute their changes.

0
Comment actions Permalink

Hello Keith,

>> I should stated that I think the real advantage here is the larger
>> active user community not the fact it is "open source". Its strength
>> is its mindshare reflected in that community, not its' development
>> process.
>>
KL> I disagree, I think a closed-source development tool just makes no
KL> sense. The plugin API for IDEA is cool but it only gets you so far.
KL> It doesn't help you to fix that annoying bug in that refactoring, or
KL> change the behavior of a refactoring to suit your needs.

We've gone through this discussion a number of times already, but I'll repeat
anyway. This doesn't happen. For all the IDEA code which is open-source (17
plugins), we get less than 10 patches a year. The users don't fix those annoying
bugs in the Subversion integration or in InspectionGadgets, for example,
although they have full possibility to do so. They expect us to do the fixing.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

OS means everyone has access and can modify and redistribute their changes.


IMHO for 95% of the users Open Source means to use it for free.

Tom

0
Comment actions Permalink

We've gone through this discussion a number of times
already, but I'll repeat
anyway. This doesn't happen. For all the IDEA code
which is open-source (17
plugins), we get less than 10 patches a year. The
users don't fix those annoying
bugs in the Subversion integration or in
InspectionGadgets, for example,
although they have full possibility to do so. They
expect us to do the fixing.


First, let me say that I have no wet dreams about IDEA becoming open source; It's a fine product and I like it just the way it is, and I agree that opening it wouldn't do any good.

That being said, your comment is a little unfair; not many people know that a good number of bundled plugins are under an open source license; and even fewer people are willing to contribute their time in a product they're actually paying for (the plugin may be open source, but the main product isn't). That's why they expect you to do the fixing.

That's different with, let's say, Eclipse. Users are aware of it's open source nature from the moment they download it, and are more inclined to spend some time working on it, if they have the time and motivation.

That, and the fact that OpenAPI documentation is close no non-existant pretty much tells why we don't see many contributions to to open source plugins. JetBrains could help change this with:

1) Awareness. People need to know that they can contribute to those plugins. Maybe something on IDEA's product page about it being open to contributions.

2) Lowering the entry barrier, by spending some time documenting the OpenAPI throughly. People can't contribute if they don't know how.

3) Rewarding. People love to get something back for their contributions, and ego stroking is usually one of the best rewards. I bet that a contributors' list linked from IDEA about box would motivate a few people into writing code.

0
Comment actions Permalink

Sorry, I don't think an argument regarding contributions to a set of mainly boring, non-publicized, niche plugins for a $500 IDE is an argument at all.

0
Comment actions Permalink

I should stated that I think the real advantage

here

is the larger active user community not the fact

it

is "open source". Its strength is its mindshare
reflected in that community, not its' development
process.


I disagree, I think a closed-source development tool
just makes no sense. The plugin API for IDEA is cool
but it only gets you so far. It doesn't help you to
fix that annoying bug in that refactoring, or change
the behavior of a refactoring to suit your needs.
Also, debugging IDEA plugins is a pain without the
source.



There are several open source IDE's available. And people have probably submitted fixes for plenty of annoying bugs and changed to many refactoring behaviors. They should be great, right? Still I do not think you want to change your IDE, even though there seem to be advantages.
I am not an employee/management/owner of Jetbrains, but as far as I can tell, Jetbrains see no advantages either (for Jetbrains) to open sourcing their product and changing their business model. They do not believe that they will suddenly be receiving all kinds of patches and improvements by making IDEA open source. And they also do not believe they can keep making money. Open sourcing IntelliJ IDEA is most likely not even possible without rewriting large parts that use closed source libraries they have licensed. All they can see is cost. Can you prove them wrong? I certainly can not.

Bas

0
Comment actions Permalink

Hello Keith,

KL> Sorry, I don't think an argument regarding contributions to a set of
KL> mainly boring, non-publicized, niche plugins for a $500 IDE is an
KL> argument at all.

Niche? I can agree that Subversion is niche if you're not using it, but InspectionGadgets?

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink


"Nick Pratt" <no_reply@jetbrains.com> wrote in message
news:15808004.1156522818795.JavaMail.itn@is.intellij.net...

His entire first section of comments seems to relate to

the Microsoft Windows Style Guide. I've found over the the
last 11 years working on data entry apps, the MSFT approved
style guide for windows/menus etc often isnt the fastest way
or most intuitive way.

As a Windows-only user (no Mac experience, very little Linux
experience) I think that MSFT style guide is a good starting
point. If a person cannot make of a program in half an hour
without reading the manual, he would not want to use it,
even less to buy it.

I agree with the classpath comments - but that's a one off

beat your head against the table task, and once you figure
it out, you get over it and move on.
>

While Im also a big Borland fan, dating back to Tubo C++

days, the editors did a heck of a lot less - the CBuilderX
IDE isn't anywhere near as simple as Turbo C++ 2.0 - but
that's surely to be expected given the increase in
complexity of IDEs and languages over the last 10-15 years.

I still think that Delphi is the best IDE I worked with, and
VCL is the best class/component library.

0
Comment actions Permalink

Eliotte Rusty Harold wrote:

a Windows
menu that doesn't keep a list of open windows,


I have created a plugin that adds open projects to the Window menu, for easy switching between windows. Anyone interested may want to check out the "WindowDressing" plugin.

Bas

0

Please sign in to leave a comment.