My mother bought a computer
for her birthday, the usual affair – Windows, printer, scanner, speakers,
etc. She’s a complete novice and needless to say, she’s having a hard time
working the thing. Her main complaint (I think in relation to word processing)
is that it does far too many things that she doesn’t want it to do and the
terminology is confusing.
I can empathize – as a Java programmer, Integrated
Development Environments (IDEs) have, in the past, confounded me in the exact same way, getting
in the way of completing the task. These days I’m using a simple text editor
with text highlighting for Java programs and Ant, Apache’s Java-based build
I find it much quicker to develop but having said
that, I realize there are those who take the time to learn how to “drive”
one of these IDEs and swear by them. Maybe I’m just lazy, but I never invested
the time and effort into learning the ways of an IDE.
James Gosling recently recognized the fact that
there are indeed various levels of developers: people who are not experts
at writing code and, presumably, those who are. This is a true observation
and IDEs are no doubt a godsend to those who are not experts.
What do the expert code writers think? Do they use
these beasts? Often I hear the mumblings, mockings, and dismissals of hard-core
engineers as they berate the way of the wizard and gasp in horror at the
underlying code it produces. There’s a certain machismo in using a plain
text editor to develop software.
Perhaps IDEs are just another step in the journey
from the machine languages that Alan Turin (or perhaps Mr. Babbage himself)
would have rattled out, and the so-called ease of use of 4G languages and
the world of wizards. We don’t have any programming languages that use natural
language yet, and if it were possible, would it be desirable?
It seems the entire progress of computer languages
is based on the assumption that they should become more like everyday languages
(usually English, as fate would have it) and yet it is developers who complain
the most about the wizard approach to programming.
Who’s driving this progress? If “hard-core” developers
don’t approve of this approach, then who’s behind the demand for tools such
as IDEs? Where does Java fit into all of this? Wasn’t Java designed to be
easier to learn than its predecessors by extracting a lot of the nuts and
bolts away from the developer and utilizing an object-based system?
Industry drives the demand. Industry has a commercial
need to utilize the latest in information technology. If this can be made
easier and allow more people to become practitioners of languages such as
Java, then so much the better – they can have that internal reporting tool
up and running in no time at all.
There’s an unnerving contradiction going on here
somewhere but I can’t quite put my finger on it. If computer languages are
to progress in the same way as they have been, with the honorable goal of
expanding the number of programmers, then this could be a problem for developers.
If universities are to continue to churn out conversion
course graduates with nine months of experience, will they be as able as
the computer scientists? Probably not, but then isn’t that what high-level
languages are all about? Making it quicker and easier to learn how to build
I seem to have asked more questions than I’ve answered!
Oh well! Like I said, I can’t quite put my finger on it.
I’m glad I didn’t get an IDE for my birthday because
I would probably be pulling my hair out just like my mother is. How many
menus can one piece of software have!
Keith Brown has been involved with Java for many years. When he’s not coding
up client solutions for a European Java company, he can be found lurking in the corridors of conferences all around the world.