Richard Wheeldon wrote on 25-Oct-06 11:57:
Ignoring the features and concentrating on the regressions:
1. Thread priorities are broken when using synchronized objects.
2. Under certain window managers under Linux/Unix you'll get a
blank screen instead of your app. Use pack() before setting the
size of the window to fix this.
3. Some of the default fonts have changed - not really much of
a regression but it will mean any screen shots, etc. are now out
of date
Richard
....as well as many AWT/Swing application are broken with JDK1.5!
Just one small example: JWindow does not appear with proper
background, sometimes it will not be repainted. (My custom made
tooltip worked since JDK1.1 with Swing addition without a change.)
This list is long, I have some whopping 85 topics on my list already,
for AWT and Swing alone. I am sticking to jdk1.4 for now, I do
standalone applications and I do not care about the deployment of
the plugin. Good for me, but many of you will have to port and/or
get the stuff fixed.
This new Java is really a symptom of a sickness, pardon me if
you disagree, but this is my take:
Good language is a stable language. Java seems to be growing and
growing toward titanic dimensions, leaving former behemoths like
PL/1, ADA and C++ in shadows. And this causes that teams at Sun
are no more capable of providing iron clad quality of this now so
gigantic product. So far the quadratic growth, or rather explosion
in size, was limited to the public classes. Now it took over the
language itself, and this is bad news, regardless how much you
might like or chose to ignore some of these novelties.
The Pandora's box is open.
Let me reach toward past, as James Gosling presented Java
philosophy in regards of syntax and semantics. His vision was
borne after learning from the case of C++, with its ambiguities,
need for re-parsing, context sensitive cases etc. Maintenance
was a nightmare. Gosling said, (I paraphrase of course) that if
a compiler cannot resolve a language construct, than how a human
can? Java was designed to be better, to stick with LALR(1) type
of grammar and thus to be easy to parse and be easy to read by
humans.
Now the group of experts introduces these unholy generics "boxes"
resembling C++ templates. The problem with this syntax is that
is uses tokens which have the right to not paired. We can always
relay on () or [] or {} pairs, but not on <>, these are components
of expressions. Needless to say, many editors will not be able to
support such syntax, vi for example, I use the "%" key to jump
to paired element all the time. I am not sure at this time if
any visual illusions 'a la C++' can be now created with this
boxing/generics scheme of theirs.
I am asking myself, why this lack of fantasy and imagination
strikes people so often, why this copy-ism of someone else's
solution takes over so often? We have so many completely
different languages, Eiffel, Haskil, Smalltalk... Why not
to go shopping for a while for something more Java'ish and new?
Some of you might recall the PL/1 case: IBM forced a development
of a lingua franca for the future and failed. Designers of
PL/1 were so enticed by Fortran, that they made the language
look like Fortran on steroids. Many syntactic elements were
almost identical, but with devious semantic differences in
some cases... (!) Over the time this has proven a deadly
ingredient to cause some serious havoc. We have had many well
documented cases of severe failures in financial, technical
and military applications alike. Remember the FORMAT case,
which rounded floating point values just a bit different in
some cases on these pesky bills, and the resulting law suits
and fraud charges...
Java goes now officially the same way, "Congratulations"
to the expert group, I mean it sarcastic. Please, please
stop adding things to Java at last. You done, done for good.
Freeze it.
Thomas