Re: Who uses Java?
Mark Space wrote:
I think around 90% of all computing is large companies with database
work. It doesn't matter if you are programming Cobol, BASIC, C, C++,
Java, C# or what. That's where (approximately) 90% of the jobs are. By
comparison, everything else is a niche application, with the possible
exception of Microsoft OS and desktop applications.
True, but there is a saying, "Serve the classes, dine with the masses. Serve
the masses, dine with the classes." Microsoft showed that you can get rich by
turning a million-dollar product, the computer OS, into a one-hundred dollar
product. In fact, they made those of us who work on (multi-)million-dollar
software projects better off - the increase in personal computers led to an
increase in large-scale computing and the sophistication of its deployment.
The number of customers for a million-dollar product will be much smaller than
the number for an equivalent ten-thousand-dollar, or one-thousand-dollar
product, to whit, custom software services. Assuming someone can figure out
how to deliver quality custom software at a price the masses, at least the
business masses, will accept.
This requires a breakthrough of about 100:1 in productivity compared to how
the large companies and government agencies do software and I.T. The trick is
to maintain the level of stability and reliability that a slower approach is
thought to ensure.
Java is certainly a candidate for the kind of robust, secure and stable
systems the big guns crave. Because of its large API and inherent basis in
the network and concurrency, one can do a great deal without inventing a lot,
if one invests the time to learn this massive, overwhelming API. However,
Java has yet to bring enterprise programming to the masses, because heretofore
Java enterprise programming was as clunky and behemoth as its results were
reliable and scalable.
But, lo! The new generation of Java, with yet more to learn, has grown wings,
and learned to mix DNA with scripting and web templating. Some wizards have
incanted, "Dependency injection!", and called forth the Spring of Nimbleness.
JavaEE 5 has polished JSTL, EL and JSF to a high gloss, allowing rapid
development with yet solid architecture. EJB 3 and JPA (Hibernate, OpenJPA)
make back-end and database interaction much slicker, and disguise the worst of
the caching and optimization issues. Glassfish, Geronimo and Glassfish are
capable of managing the application service and PostgreSQL certainly is up to
the database requirements.
Since Java is now integrated with suitable frameworks from the front JSes and
JSPs to the back JDBCs, it bids fair to become the /lingua franca/ of network
and enterprise development down to even small or moderate-size businesses,
i.e., everywhere. If it all doesn't turn out to be too much all at once for
anyone to master.
If the new nimbleness brings Java into manageability, I predict a massive
increase in its use.
Then there's Micro Edition ...
_* References *_
EJB 3 <http://java.sun.com/javaee/5/docs/tutorial/doc/bnblr.html>
PostgreSQL JDBC <http://jdbc.postgresql.org/>