Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News


2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
SYS-CON.TV
Top Links You Must Click On


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.

About 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

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

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.

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...

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") :-)))

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.

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.


Your Feedback
Reuben Cleetus wrote: 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" co...
George Phillips wrote: 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 wrote: 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-lin...
Scott wrote: 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 wrote: 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.
Enterprise Open Source Magazine Latest Stories . . .
Apache Deltacloud, the Red Hat-contributed ReSTful API that abstracts differences between clouds so services on any cloud can be managed – provided of course there’s a driver – has graduated from the Apache Foundation’s incubator and is now a full-fledged Top-Level Project (TLP). The...
With Cloud Expo 2012 New York (10th Cloud Expo) just four months away, what better time to start introducing you in greater detail to the distinguished individuals in our incredible Speaker Faculty for the technical and strategy sessions at the conference... We have technical and st...
AMD said late Tuesday that its chief sales officer Emilio Ghilardi had left the company and that CEO and president Rory Read is going to do his job while a replacement is sought. AMD didn’t say why Ghilardi left but it’s assumed Read wants his own people. Read is relatively new to th...
During the lifespan of M3 (Monitis Monitor Manager) there has always been something lacking – timers. M3 execution procedure was outlined in this previous article. The execution mentioned in the latter was a one-time-execution, whereas server monitoring requires periodic invocati...
Red Hat is putting its bought-in Gluster scale-out NAS storage technology, acquired in October, on the Amazon cloud. It’s styled Red Hat Virtual Storage Appliance for Amazon Web Services and other clouds are supposed to follow in short order.
A new episode of the screencast series is now available at the OpenNebula YouTube Channel. This screencast demonstrates the new easily-customizable self-service portal for cloud consumers. Its aim is to offer a simplified access to shared infrastructure for non-IT end users. The scree...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE