NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi John, > Recently an article in EE Times (8/31/98 and forwarded to me) entitled > "Java cited as weak brew for tech apps" poured cold water on the future > of java for technical computing. The article is well written and > informative. The issues were non-issues to me, but my client is > concerned. The claim is that "Java falls short in its handling of > floating-point calculations, arrays and complex numbers." James Gosling > said they take these issues seriously and intend to address them. They > will initially permint use of extended floating point, but none of the > other issues will recieve immediate attention from Sun. > > Anybody care to comment? There are other critical issues that Sun is > addressing that make a world of difference to me. The article you refer to is available from http://www.eet.com/news/98/1024news/java.html It refers to proposals from the Java Grande Forum http://www.npac.syr.edu/projects/javaforcse/javagrande/ including Jack Dongarra's criticisms that Java lacks a built-in complex type, criticisms of the multidimensional array facilities in Java, and comments from William Kahan criticizing Java's floating point. James Gosling addresses these and other issues at http://java.sun.com/people/jag/FP.html In particular, he points out that the obvious implementation of a complex class can be optimized to give the same performance and ease of use as for Fortran, if operator overloading is added. He then discusses the issues around operator overloading and proposes that it be added to a future version of the language. We have corresponded with some participants in the Java Grande Forum on their desire for better multidimensional array facilities in Java, and have recommended that they consider the ucar.multiarray approach before calling for changes to the Java language. The design has the following advantages: - a well-designed set of interfaces for multidimensional array data access; - composable "index maps" that make it easy to clip, decimate, flatten, flip, slice, and transpose multiarrays using index mapping functions, without copying the array values; - several concrete implementations of the MultiArray interface that wrap ordinary Java arrays or that provide more efficient storage. For more information, see the ucar.multiarray javadoc documentation, available from http://www.unidata.ucar.edu/packages/netcdf/java/ As for Kahan's remarks, he has made a career of criticizing the floating point facilities and implementations of computer languages and hardware floating-point implementations for the last twenty years. He's acknowledged to be the leading expert on floating-point (he won ACM's prestigious Turing award in 1989), but he definitely has an agenda: to make sure none of the features of the IEEE 754 standard fall into disuse, which might lead to their atrophy and omission from future languages, hardware, or floating-point standards. His paper "How Java's Floating-Point Hurts Everyone Everywhere" (available from http://http.cs.berkeley.edu/~wkahan/JAVAhurt.pdf) proposes a new language, "Borneo", that adds full support for IEEE 754 and operator overloading. The current (130 page) specification is available online, from http://www.cs.berkeley.edu/~darcy/Borneo/. --Russ _____________________________________________________________________ Russ Rew UCAR Unidata Program russ@xxxxxxxxxxxxxxxx http://www.unidata.ucar.edu
visad
archives: