Overstock Software Developer Openings
levipearson at gmail.com
Sat Jul 21 16:28:04 MDT 2012
On Jul 20, 2012, at 6:19 PM, Sasha Pachev <sasha at asksasha.com> 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.
More information about the PLUG