View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Discussion 1 - Hitesh Kanwathirtha

For this discussion, I read a paper titled "A conceptual perspective on the Comparison of Object-Oriented Programming Languages" by Kristensen and Østerbye [Citeseer cache:].

Most people have so far compared languages in a quantitative manner. R. Stephen French cited a comparison done using runtime speeds, code to comment ratios and development time. Emily Ewald also did a comparison on development time, and also on code length. However, there should also be a comparison made on how well a language supports Object-Oriented programming concepts, and keeping this in perspective allows one to make a judgment on how successful the paradigm is. To do such a comparison, it is important to develop a framework which can be used to compare the language features. While the paper I've cited does not try to answer the question of whether OOP is a successful paradigm, it does provide a framework on which the various languages can be compared conceptually. The paper compares Smalltalk-80, Beta, C++, Eiffel, Common Lisp Object System (CLOS), Self, Objective C, Ada, Simula and Objective Pascal. In the end, it gives an interesting illustraion depicting the relative differences between the language (the gist of which being Ada is the language least similar to any other). The paper also makes a distinction between features which a language allows you to use and features that a language forces you to use.
While the paper does not attempt to understand explain why people use certain languages, reading the differences between the languages gives you an idea of why that may be the case. Even though all these languages are somewhat object-oriented, most of them implement it in different ways. The way object-orientation is supported, coupled with its performance is probably a good indication of why a person might use a particular language for a particular class. For example, while C++ allows you to have multiple inheritance, Eiffel allows users to rename inherited features or select them ahead of time and in a language like Java, multiple class inheritence is not allowed (it does allow multiple interface inheritance).
Thus, reading this paper sheds light on the differences between some languages while reading a performance analysis in conjunction with this paper will give an understanding of how these differences affect people's programming

Back to Hitesh Kanwathirta

Links to this Page