|Authored by: Anonymous on Thursday, May 24 2012 @ 08:03 PM EDT|
|More like "Write Once, Test Everyehere".|
Yes, you can write a program that runs on a variety of platforms, but it's
performance is often not acceptable across the board. for example, the rendering
and layout of windows on the screen is an excellent example, depending on the
screen resolution, text can be oversized or undersized for the layout of
controls. There is a mainstream Java-based application we use to use at work
that always managed to size the window so it was undersized such that you had to
vertical scroll to get to the OK button. Was that the programmers fault?
Probably, but I cannot think of another environment where creating this problem
is only possible with considerable effort.
AWT demonstrates the problem. It dumbed down the user interface to create
commonality between the different operating systems to the point of being next
to useless and still managed to get window layouts wrong. Swing was an
imporovement. The real solution is to create OS-specific APIs that make maximum
use of the OS capabilities, but that takes you back to the situation of just
about every other language.
"Write once, test everywhere" is not just a Java problem. It applies
to all languages, but for Sun/Oracle to imply that you can write a program once,
compile it once, and it will run properly everywhere is misleading. Nearly all
non-trivial programs need to be customised and adapted to each environment at
the source code level. The basic difference between Java and C it how on many
systems one must click the compile button.
Don't get me wrong. The goal of Java was admirable. It is a pity that it didn't
work. For Oracle to fight tooth and nail over something that doesn't achieve the
goals they are arguing is just silly. Get over it, guys.
[ Reply to This | Parent | # ]