On Jul 20, 2012, at 6:19 PM, Sasha Pachev <[email protected]> wrote:
> In my opinion the association of Java with intelligence and creativity
> is quite an oxymoron. I spend most of the day working on MySQL
> internals in C++ with the restrictions of no exceptions and no
> libstdc++, which makes it not quite the C++ that most people are used
> to, but more like C. That is when my intelligence and creativity are
> fully engaged. Occasionally I get to write code in Perl, Python, and
> PHP. Again, no complaints about intelligence and creativity. However,
> occasionally on a bad day there arises a need to write code in Java.
> That is when I feel that I am being constantly babysat, I feel like a
> bird in a cage. I have an idea of what kind of code will be executed
> on the CPU , and I feel helpless because there is no way to make it
> more efficient. I am being forced to be excessively verbose by the
> long API call names.
I am by no means a huge fan of Java, but this is clearly a case of personal
preference and experience rather than any exceptional fault of Java. You
probably also have a faulty idea of what code is actually executing, because
the modern JVM is very good at dynamically optimizing typical Java code based
on its dynamic runtime profile rather than its static profile. Excessive
verbosity is a matter of opinion, but if it really stifles your intelligence
and creativity, I would look first at your attitude before blaming the
language. It is a pretty straightforward language, but it is not so simple that
there aren't areas to be explored by an intelligent and creative person with an
open mind.
> I can never remember their exact names, and waste a lot of time
> constantly looking up the documentation. When something might possibly
> go wrong I am forced to catch an exception which is quite a bit more
> verbose than checking an error code. I look at the code and I have to
> keep scrolling back and forth to figure out what is going on as the
> verbosity of the API pollutes the screen space and sets the noise to
> signal ratio into the range that I cannot tolerate.
Dealing with errors is one of the most fundamentally broken things in the C
family of languages. Error codes have no consistent interface (they are
sometimes the return value, sometimes an out parameter, and sometimes a global
variable, and often this mix is within one API!) and they force error handling
at the call site even when the code best equipped with the context for handling
it is several stack frames away. If you find exceptions more verbose than
checking return codes, you probably ignore a lot of return codes!
> In short, I feel like I am back in the Soviet Union where you had no
> freedom at the cost of no responsibility.
No, you are just whining because you had to do something you didn't like. I can
sympathize, as I write a lot of code in languages I don't like, but this was
really poor criticism. There is valid criticism to be made of Java, but you
fell far short of the mark.
--Levi
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/