A comparison of the object-oriented features of Ada 95 and Java
Benjamin M. Brosgol · 1997
Ada and Java offer comparable Object-Oriented Programming ("OOP") support, but through quite different approaches in both their general philosophies and their specitic features.Each language allows the programmer to define class inheritance hierarchies and to exploit encapsulation, polymorphism, and dynamic binding.Whereas OOP forms the foundation of Java's semantic model, OOP in Ada is largely orthogonal to the rest of the language.In Java it is difficult to avoid using COP, in Ada OOP is brought in only when explicitly indicated in the program.Java is a "pure" 00 language in the style of Simula and Smalltalk.with implicit pointers and implementation-supplied garbage collection.Ada is a methodology-neutral 00 language in the manner of C++, with explicit pointers and, in general, programmer-controlled versus implementation-supplied storage reclamation.Java uses OOP to cauture the functionalitv of generics ("'templates"), exception handling.multi-threading and other facilities that are not necessarily related to object orientation.Ada supplies specific features for generics, exceptions, and tasking, independent of its 00 model.Java tends to provide greater flexibility with dynamic data structures and a more traditional notation for OOP.Ada tends to offer more opportunities for optimization and run-time efficiency, and greater flexibility in the choice of programming styles.