| By Jim Milbery | Article Rating: |
|
| March 1, 2002 12:00 AM EST | Reads: |
14,608 |
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.
Published March 1, 2002 Reads 14,608
Copyright © 2002 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
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
![]() |
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 |
||||
- Kindle 2 vs Nook
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- Confessions of a Ulitzer Addict
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- It's the Java vs. C++ Shootout Revisited!
- Cloud Computing Can Revitalize Your Career as Software Developer
- IBM Could "Reinvent" Java: Mills
- Oracle & Cloud Computing: Exclusive Q&A with SVP Richard Sarwal
- A Brief History of Cloud Computing
- Kindle 2 vs Nook
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Confessions of a Ulitzer Addict
- My Thoughts on Ulitzer
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- JavaServer Faces (JSF) vs Struts
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- What's New in Eclipse?
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- i-Technology Predictions for 2007: Where's It All Headed?







































