Welcome!

Java Authors: Maureen O'Gara, Bruce Armstrong, Liz McMillan, Walter H. Pinson, III, Yakov Werde

Related Topics: Java

Java: Article

Is the Graphical IDE a Good Thing

Is the Graphical IDE a Good Thing

Welcome to the first installment of JDJ Labs. Our goal is to introduce you to commercial (and open-source) products and technologies that will help you, the Java developer, work more efficiently. We expect our testing to provide you with a starting point for your own testing and analysis. In this column we’ll be looking at common market trends that affect the commercial products and services in the Java space.

Over the past few years we here at JDJ have looked at quite a lot of Interactive Development Environments (IDEs) for Java programming. IDEs provide a sort of one-stop shop for software authoring, compiling, and deployment. Historically speaking, software programs used to be written using a regular OLE text editor. These original editors treated text documents and code the same way – as text. Specialized text editors assisted programmers with the job of writing and editing code.

Even many popular 4G languages make use of a text editor as the primary programmer’s interface. It was the emergence of graphical user interfaces (especially Windows) that fomented the emergence of the full-blown IDE. This new breed of IDE handled all aspects of programming – development, coding, debugging, testing, and deployment. Over the years the graphical IDE has become a de facto standard of sorts. In fact, all the leading tools and database vendors were quick to release their own graphical Java IDEs almost as soon as the Java revolution began.

The question that faces us, however, is whether or not the graphical IDE is a good thing. On the one hand it provides a one-stop shop for programmers to gain access to all the necessary parts of a programming language. On the other, graphical IDEs tend to insulate the programmer from having to understand all the ins and outs of a particular language. Personally, I believe it’s important for a developer to have a firm understanding of the underlying language (especially when that language is more of a platform – like Java).

I don’t mean to imply that a programmer needs to have an intimate understanding of the internals of each and every class that they use. (After all, one of the premises of OO development is the ability to rely on the published interfaces of an object.)

The problem, to my way of thinking, is the degree to which most IDEs insulate developers from their code. For example, graphical IDEs are filled with wizards that take care of the common tasks a programmer faces. You want to build a Swing-based data entry form for a table in a database? Just use the form-builder wizard. The problem with this approach is that the programmer may never understand the logic used to generate this form. Generated forms rarely meet 100% of your needs, and the novice developer winds up trying to modify a complex set of Java code that was created by the wizard.

Wouldn’t it be a better long-term approach for this same developer to build his or her first few data entry forms from scratch and learn the ins and outs of Swing and JDBC? I’ve also heard experienced developers weigh in with the argument that most IDEs just “get in the way” when it comes to Java coding. To be sure, some of this comes from the age-old adage that “real programmers use vi or Emacs, or <insert your favorite text editor here>.” However, there is a nugget of truth here as well. My question to you, dear reader, is where you stand on this issue. To IDE or not to IDE – that is the question!

• • •

Send your comments to jdjlabs@sys-con.com.

More Stories By Jim Milbery

Jim Milbery is a Vice President with William Blair Capital Partners, a venture capital firm based in Chicago. He has over 19 years of experience in application development and relational databases. He is the former applications editor for "Wireless Business and Technology", the past product reviews editor for Java Developer Journal and the author of "Making the Technical Sale". Jim can be reached at jmilbery@williamblair.com, or via the company web site at http://www.wbcapitalpartners.com

Comments (5) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Reuben Cleetus 04/30/02 09:00:00 AM EDT

I wonder if all those so-called hard-core programmers (who proudly proclaim that notepad is better than any IDE), ever bothered to stop and think about what they were justifying.

Basically what they're saying is that its better to continually re-write the basic plumbing, than to use intellisense or some other feature that an IDE provides, which takes care of the banal, and lets you focus on the task at hand. I would much rather focus on the business rules I have to implement, than edit a deployment descriptor by hand, or write the basic Java code for a the GUI of a swing application. What I care for most, is that the meat of my app performs well, and most importantly, adhered to relevant business rules.

Don't get me wrong, I learned Java with Textpad, but I graduated to being much, much more productive with Netbeans, than I ever was in Textpad.

I wonder what those "hard core" code-gurus will say when they see the 10-second job it is to publish a Web Service with Visual Studio.NET, versus the hours of coding it would take to do it by hand in Java. I'm sure Java IDEs will do the same in time.

George Phillips 03/29/02 10:40:00 AM EST

A lot depends on the skill level of the programming staff. We have programmers who couldn't begin to program without an IDE, but with it they are reasonably productive. On the other hand, I haven't found a truly complete IDE on the market yet - they all leave out some important piece or have some critical compliance issues. I wish some forward-looking company would come out with a set of utility modules (debugger, get/setter generator, whatever) which could be used along with any decent programming editor...

Admiral 03/29/02 10:11:00 AM EST

Coming from my personal experience I would prefer a powerful text editor to any IDE, especially in java world. The problem with IDE is you have to learn it, and it has bugs and perks of its own you'll have to overcome. Once you are a beginner, IDE is perfect with all its wizards and graphical buttons and stuff. Becoming more of a professional, you start not using wizards and feel uncomfortable with limited text editing functions and having to do the misc things the IDE doesn't by your own hands and/or shell scripts. Once you are a pro, you throw them away and take emacs/ant and live happily ever after. That is what happened to me and this is something I wish to happen to everyone. Such tools like ant, although there is a steeper learning curve, than those of any graphical IDE, the return on your investment is enormous and I can do more in an order of a magnitude with a single command-line ant task, than any IDE out there. But coding itself hasn't changed for the last 10 years I am into it - text editor remains the main tool. So why do you need all those graphical/wizards crap if you have to format and rewrite the generated code? Why not just write several classes to be starting with in every project and make a project setup task in your ant build.xml? As long as we have to write the code with our own hands only powerful text editor and build tools are our ultimate weapons. Still another concept to prove - the best things in life are free (both as in "freedom" and in "free beer") :-)))

Scott 03/29/02 08:25:00 AM EST

First of all, IDE stands for "INTEGRATED Development Environment", not "Interactive". And so what if there are wizards? Most experienced engineers never use them anyway. The real benefit to and IDE is the productivity--all of your editing, debugging, compiling, etc. are "INTEGRATED" (hence "IDE") into a single environment. This is way more productive than crawling on your hands and knees with a text editor and command line debuggers and the like, jumping around in various utilities, etc.

Ravi V 03/13/02 04:33:00 PM EST

The author seems to have a problem with wizards not IDE's. I haven't found
wizards very useful myself. They may be useful when you are trying to learn
something but they are usually more trouble than they are worth.
A good IDE is one that does all the routine tasks for you(compile,build and
build deployment files,give visual cues) and doesn't get in your way. Yes I
know how to use vi(I like it) & Emacs(I don't like it) but I prefer the
modern day conveniences of Eclipse(from IBM). Also the Visual Basic/Visual
Studio IDE is also one of the best designed IDE's which save you a lot of
effort.