Re: What's bad in Java
- From: Lew <conrad@xxxxxxxxxxxxxxxxxxxxx>
- Date: Sat, 31 May 2008 16:46:32 -0400
Jack wrote:
. Java programs are slower (Swing and JVM)
Urban legend, imprecisely stated in flame-bait fashion.
. Swing layouts are not efficient to get desired result
Assertion requiring evidence.
. There is a memory footprint overhead (compared to primitive sizes)
What doest hat mean?
. The GC freezes the application from time to time
This happens sometimes. Of course, the application only freezes for a moment, then resumes, and noticeable pauses in every case I've seen have been curable with deployment policies; no recoding necessary. Lack of GC, OTOH, often causes non-Java applications to freeze also, and those neither start up again, nor get fixed without code changes.
. It's impossible to add a method to a JDK class
That's considered a bad thing?
Anyway, it has zero impact. The normal and best-practice idiom in any platform for API code is to use the class, not extend it, unless, as in the Java API, you are using one of the classes designed to be extended.
The truth is that the Java standard API contains a mix of classes intended for subclassing and classes not intended for subclassing. The choice of which was made by the API designer, and not necessarily for bad reasons. If there is a valid criticism, it would be directed at specific library classes, along with a rational explanation of why the API designer's decision was wrong, and why it's easier and preferable to change the Java standard API than to write code oneself.
. The difference between checked and unchecked exception
What about it? Are you saying that the fact that there is such a difference is bad? Are you saying that something about how they differentiate the two is bad? Should they be more different? Less? In what ways? Why?
Are you even clear what the difference is and what the different purposes of the two are? What would you do instead, and how would you avoid failing those purposes? Or would you abandon their purposes altogether? If so, what advantage would that bring?
. Collections class are badly designed, they try to do too much
Rrrr? (Scooby-Doo noise.)
On the face of it, that's a singularly poorly-framed thesis. Are you expecting a chorus of partisans to plaintively wail, "No, no! The collections classes are works of beauty! We worship them!"?
. Starting thread is easy but synchronizing results in the GUI is harder
Luckily Java makes that situation easier than in most languages.
Concurrency is hard, folks. Inherently. Synchronization in any GUI is harder. People who whine that it's hard probably aren't interesting in putting in the effort to get it right.
This is not a Java problem. This is a concurrency-is-hard-vs.-the-lazy-programmer problem, extant in every platform.
. Having to code methods to access fields is dumb, it should be "transparent"
Very funny.
"Having to code methods to access fields" is not a feature of the Java language. If people are doing that, it's because there are practical advantages that they see to the idiom, not because the language requires it.
Whether they are correct or not is a separate question, and not anything for which one can blame or praise the language.
"dumb" is not an engineering evaluation. Calling a variable "getFeature()" instead of "feature" is only a few extra characters. Writing "setFeature( value )" isn't all that much harder than writing "feature = value". Both these idioms buy maintainability and flexibility at negligible cost.
Five or six extra characters typing to save hours of some hapless future maintainer's or enhancer's time is hardly "dumb". That's assuming your IDE, unlike mine, doesn't save you those keystrokes right back with auto-completion.
Anyway, it's up to you to use or not use the idiom. Most programmers use it, simply because in their not-"dumb" thinking, it's worth it.
. The JDK gives access to a ridiculously small part of an OS features
Words like "ridiculously" are clearly designed to inflame rather than assert. Put this in engineering terms, please.
In practice, Java and its API have caught on because many people find that they provide enough to do what they need, and enough more than competing platforms that they chose Java.
Free marketplaces of languages are more effective than religious wars to determine "goodness" of a language. Many people choose LAMP with PHP over Java as a web platform.
. It's not possible to free memory when i'm [sic] sure i [sic] wont use it again
That's not factual. It's not only possible, the JVM generously does that for you.
I hope the next release will address these concerns.
It won't. First of all, it's clear your goal is to flame, and I doubt anyone inventing Java cares much about that. Secondly, you haven't really expressed anything concrete that can be addressed. Things that are changing in Java, such as speed (at which Java has for some time been roughly even with other languages like C or C++) and GC, are being handled in ways that seem quite effective. A couple of your comments, like "[t]he difference between checked and unchecked exception[s]", don't even express a criticism, so there's nothing for the Java mavens to address.
Java is far from a perfect language or platform, but the valid criticisms are pretty specific and technical. Words like "dumb" and "ridiculously" don't give much handle for productive resolution. Recast in technical terms, with precise terminology, and for Goddess's sake study the reasons why things are the way they are before you start taking shots at them. Be careful when presenting a laundry list like this; get one thing stupidly wrong and you will cast aspersion on the validity of all your points, even if some of them are worthy. If you convince people that you are a trollish putz, they will ignore even your best advice.
--
Lew
.
- Follow-Ups:
- Re: What's bad in Java
- From: Jack
- Re: What's bad in Java
- From: Evans
- Re: What's bad in Java
- References:
- What's bad in Java
- From: Jack
- What's bad in Java
- Prev by Date: Re: Using POST to send bitmap image with Java
- Next by Date: Re: What's bad in Java
- Previous by thread: Re: What's bad in Java
- Next by thread: Re: What's bad in Java
- Index(es):
Relevant Pages
|