Opinion: Positive feedback process continually makes new tool sets attractive values.
Its often said, and I agree, that "Better is the enemy of good
--but Im not prepared to declare myself the loyal ally of
one or the other.
There are times when Im prepared to hold the line against the
assault of "better," but there are also times when "good enough" really
is not. Developer tools have often been examples of the latter.
"Good enough" is a phrase that ought to be used only when "success"
is clearly defined. For example, President Kennedy in his May 25, 1961, address
didnt say, "I believe we need to take humanity to the
stars." He said, "This nation should commit itself to achieving the
goal, before this decade is out, of landing a man on the moon and
returning him safely to the Earth." The latter statement clearly
defined success in terms of a deadline and a result: It drew a
boundary, outside of which any additional capability at any additional
cost could quickly be dismissed as another challenge for another day.
Would we have had a "better" space program with a different, broader definition
of success that didnt end at the nearest big rock? Perhaps--or we
might still be talking about what to do first, which seems at least as
More recently, though, the Space Shuttle has been demonstrating what
happens when people lie to themselves about what theyre prepared to
accept as "good enough." Without the fully
first stage that was part of the programs first
conception--sacrificed in poorly conceived attempts to reduce program
cost--the Shuttle was saddled with the quick and dirty, ultimately
quite costly shortcuts of flimsy solid rocket boosters and throwaway
external fuel tanks. Between them, those "cost-cutting" measures have
cost us two orbiters and two crews. Not, by any reasonable definition,
Software development tools, at least, can be readily improved, and
in a positive-feedback process to boot: The people in the best position
to notice whats missing are also in the best position to fix it, and with better tools
they can build still better tools
. Thats been most apparent in
cases where a programming language had enough power to tell the
programmer where it was feeling pain, and to build its own environments
that were capable of finding and fixing problems in a productive and
reliable way--instead of merely speeding up the edit/compile/debug
cycle, making it easier for the programmer to throw the match into the
gasoline and sift through the ashes after the explosion.
The languages that I have in mind are Lisp
, which look more different than
they are. With its garbage collection, its basis in symbolic
expressions, and its ease of writing and reading new code at run time, Lisp is arguably the parent
--or even the symbiont personality--of every modern scripting
language. Take Smalltalk and give it a C-syntax makeover, send it to a
spa for compilation to leaner and meaner bytecode, and you arguably
have Java. Exploit fully the object model of Java, and you go back to
the future: You find yourself using Java environments that have the
same kind of introspective power and self-improvement capability that
made me an ardent Lisper, and an aspiring (if never actually expert)
Smalltalker, going on 20 years ago.
Java tool sets during the last several years have truly pleased me
with their blend of simplicity and strength. Oracles
was competitive at $995 for commercial users, but now
for everyone. Suns Java Studio Creator was a little
coming out of the box last year, but the early
access release of Version 2
is a dramatic improvement--and will
be an impressive value at its planned price of $99 upon general release
Unaccountably absent, though, from my archive of Java tool reviews
are the past releases of JetBrains
Inc.s IntelliJ IDEA
, whose Version 5.0 comes out today and which
Ive had an opportunity to examine during the past week. Founded in the
Czech Republic, with R&D conducted in Russia, JetBrains brings
whats literally a different viewpoint on programmer productivity:
Earlier versions of IntelliJ IDEA have earned several industry awards
and inspired at least one "How do I love
thee" Web site
listing its notable and effective innovations.
Version 5.0 of IntelliJ IDEA makes progress in several directions
that Ive previously associated with competing tools. Like Java Studio
Creator, it paves the way for developers to add value on mobile
devices. Like Borlands
, it integrates a developers views of the Web page, the
underlying code, and the infrastructure that ties them together. Like Parasofts
, it assists the developer with intelligent early
identification and resolution of likely defects, detecting likely cases
of NullPointerException and offering simplifications and abstractions
to make code more readable and easier to maintain. At $499, its
certainly not the least expensive tool out there, but five to 10
development hours saved will pay back that initial cost--and
false economies can be fatal.
Developer tools cant possibly be classified yet as "good enough." Security
all demand a continued focus on a relevant
definition of "better."
Tell me when "cost reductions" have cost you too much at firstname.lastname@example.org
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.