next up previous print clean
Next: Fortran Up: Why Java? Previous: Efficiency

What about ...

In the past years we encountered other programming languages, such as C, C++, Fortran, but none offered the combination of dramatic new capabilities and practical usability available in Java. Some of these languages we used for years or months (Basic, Fortran, C, C++, Pascal, Mathematica, Matlab) others we read about and may have considered learning (Eiffel, Ada). How do these languages compare to Java and why do we prefer Java?


 
Table 1: Comparison of common scientific programming languages. Ease-of-use includes the learning curve, the library support, and the portability and availability of a language. Expressiveness is a language's capability to express complex entities such as Jest's composite operators. Efficiency is a language's comparative execution speed.
  Ease of Use Expressiveness Efficiency
Java + +  
C++ - +  
Fortran + - +
Matlab + - -

Fortran, C, and Pascale are all practical but their approach to programming is to concrete. The structural improvements of C and the type checking improvements of Pascal are not sufficient to dislodge Fortran as the most useful scientific programming language. Fortran90 has a limited object concept but lacks inheritance and the abstraction of polymorphism (). Ada provides limited form of objects but again no inheritance nor polymorphism. Ada does support concurrency and synchronization. Smalltalk is inefficient. We read that Eiffel is a fine alternative to Java or C++. Unfortunately, Eifel has not achieved Java's or C++'s availability and popularity. In comparison to Java, C++ is difficult to learn and to use.

Mathematica, Matlab do not enable a the user to define problem specific data structures (object orientation) which limits their usefulness for large, complex software projects. None of these languages except Java integrates the World-Wide-Web as a computing environment.


next up previous print clean
Next: Fortran Up: Why Java? Previous: Efficiency
Stanford Exploration Project
3/8/1999