Academics slam Java

Bryan Sant bryan.sant at gmail.com
Mon Jan 14 10:45:59 MST 2008


On Jan 11, 2008 6:14 PM, Levi Pearson <levi at cold.org> wrote:
> Perhaps they know a little bit more about how well Java-centric
> curricula prepare people for that particular industry than you do?

Yet their article blames Java specifically for this problem.  This
problem would be just as true with students taught with any non-low
level language.  Java is too high-level for the type of preparation
these persons are wanting for systems and device driver development.
This is true.  Students should be getting exposer to C, C++, ASM, and
Ada if they plan on doing any low-level development.  However, moving
from Java to <insert your favorite scripting language here> isn't
going to solve that problem.

> You'll notice that they measure the effect of Java based on the
> students' performance in systems and architecture courses, which are
> precisely the ones that are important for the sort of programming
> their industry is involved in.  Presumably the Java-trained students
> will be reasonably good at taking advantage of the Java libraries to
> solve business needs, but will be completely lost if you ask them to
> design a device driver or implement the logic to control an embedded
> controller in an aircraft.

Agreed.  If that is the niche market a student wants to prepare for,
then don't study Java, Lisp, Ruby, PHP, or anything other than C, Ada,
and maybe C++.

> > > In a withering attack on those responsible for setting the curriculum
> > > for computer science courses, doctors Robert Dewar and Edmond
> > > Schonberg of New York University (and principals of Ada language
> > > specialist Adacore) have said the lack of mathematical rigor and
> > > formal techniques is producing "replaceable professionals" more suited
> > > to the outsourcing industry than software development.
> >
>
> This has been significantly rearranged from the original, which says:
>   The resulting set of skills is insufficient for today's software industry
>   (in particular for safety and security purposes) and, unfortunately,
>   matches well what the outsourcing industry can offer. We are training
>   easily replaceable professionals.

See, I never saw where they stated what you have in parenthesis.  For
the safety and security/DoD/avionics industry, yes, high-level
languages may not be the right fit.  However, saying so for "today's
software industry" is too broad.  If I want to be prepared for
"today's software industry", then I had better know high-level
languages very well.

> The thing is, anyone who knows the Java libraries well and can string
> them together adeptly can take one of those jobs.  There are a lot of

Ha.  That's totally wrong.  I have yet to work on system where I could
be easily replaced by a person who has some basic Java know-how.  A
professional using a high-level language is going to be using
components and libraries that improve their efficiency.  That merely
frees them to solve larger and more interesting issues in the guts of
their problem domain.  If you were hired to create yet another
inferior version of a hash map or some generic algorithm for Java,
then yes, you're going to be replaced easily.  However, if you're
building gmail, eBay, Overstock, eTrade, etc, it's a little harder
than you think.

Quick!  Tell all authors to stop writing books in English, because
lots of people know English, and they could be replaced by virtually
anyone!  As we know, all authors are equal because they all use the
same language, and thus they are all drop-in replacements for each
other.

> them in the business software world, which is, frankly, not full of as
> many hard problems as you say.  That's why they choose Java; it's easy
> to replace developers.

No, they choose Java because it is an enabling factor for them to
produce the software they need.  Without high-level languages like
Java, most of these projects would have no chance for success.

> If you want to talk about hard problems, try building optimizing
> compilers, real-time operating systems, inertial navigation systems,
> avionics, etc. for systems that cannot have serious flaws.  Those are
> the kind of problems these guys are dealing with and having a hard
> time finding qualified candidates for.

And Ada works perfectly for these systems.  I like Ada.  It's a fine
language with many useful features that I personally appreciate.  I
wish that Java would adopt more concepts from Ada.  However, it's a
niche language that would be crippling for creating applications at
the scale that Java does.  They each solve different problems well,
and in my opinion, Java has a much broader applicability.  Should
students take a class or two in Ada?  Sure.  Are they all becoming
mindless, replaceable, Java-drones?  No.

-Bryan



More information about the PLUG mailing list