Java is for kiddies

Reza B'Far (eBuilt) rbfar@ebuilt.com
Sun, 1 Sep 2002 17:43:23 -0700


This thread kind of surprises me... I started coding with C, then C++, and
moved on to Java... And, I think that:

1.  The people who pay the wages don't give a flyin' heck what programming
language you write things in... they just want it to work.  AND, to my
experience, it's a lot cheaper to make a Java program that works (and if you
think performance, just through hardware at it... it's much cheaper than
labor) than a C program (don't care how good the programmer is, you will
have more bugs in a C program than a Java program given the authors of the
programs are at the same level).

2.  C and C++ forces the developer to solve problems such as memory
management over and over again.  IMHO, Java is superior because the problem
of programming in the future is not about 0's and 1's, making the compiler
2% faster, or making your code take 5% less memory... It's about design
patterns, architecture, high level stuff... I am amazed by the amount of
time wasted by people talking about low level problems that have been solved
10 million times over and over and over again... So long as we stay with the
binary machines and don't venture into different computing models, it's a
total waiste to solve the low level problems unless you're building hardware
drivers...

3.  Java is not just a programming language! It's also a platform... There
is NOTHING like the standard API's in Java in C and C++.  Everyone defines
their own API's, people end up solving the same problems ten different ways
and, to my experience, whether solving scientific problems (worked for NASA
for a while) or business problems (working in consulting, financial sector,
etc.), most large computing project that involve lots of software become big
integration projects... SO, which is easier to integrate: a monolithic set
of API's or a crap load of different API's slicing and dicing the same
problems 50 different ways?

4.  If you have a program of any type of high complexity written in C, you
can't possibly think that you could port it to different platforms within
the same magnitude of cost as Java....

5.  Makes no sense for a scientific or a business project to depend on a
person... Java, IMHO, reduces the dependence of these entities on the
individual developer as it is much easier to reverse engineer Java as it is
to reverse engineer C (large applications).

6.  Hardware is getting so fast that I'm not sure if the performance
difference between Java and C/C++ are relevant any more.

This all is not to say that C is not better for writing web servers, device
drivers, etc.  But, for most applications, software is trying to solve a
non-software problem: business, science, etc.  Software itself is not the
end goal of sotware.  The end goal is the scientific or business problem to
be solved.  And for those problems, languages such as Java, SmallTalk, and
others allow you to think more high level than low level.  Thinking of bits
and bytes takes too much gray matter away from the real important
problems.... Why do most computer scientists insist on solving the same
problems over and over again when there are some many more important and
interesting problems (high level) to be solved ?????

Beats me!

Reza B'Far

-----Original Message-----
From: fork-admin@xent.com [mailto:fork-admin@xent.com]On Behalf Of
Robert Harley
Sent: Wednesday, August 28, 2002 10:00 AM
To: fork@xent.com
Subject: Re: Java is for kiddies


GLM wrote:
>And a Java program, due to the extensive class libraries, will weigh
>in at 10% the number of lines of the equivalent C program.  QED.

Quod erat not demonstrandum at all.

There are massive amounts of libraries for C, Fortran and so on.
To pick an obvious example., if you want to do linear algebra, then
Java isn't a serious candidate at all.

Furthermore, plenty of bugs occur in the libraries too, at a lower
rate due to more users having been bitten by them, but they are much
harder for you to fix than in your own code.

Why do so many people outside of Sun's marketing department consider
Java to be "Write Once, Debug Everywhere" ?

R