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 - James "Ben" Mitchell

Discussion 1:
On: Survey of Object-Oriented Programming Languages by Chris Hostetter.

This paper discusses the fundamental principles and inspirations of several common (and not-so-common) object-oriented languages. Instead of comparing things like syntax, it discusses them from the angle of features and design principles. Focus is given to the languages inspiring the creators, fundamental tenets of the design (Does it include a typing system? Is it class-based? What is the inheritance model?), and the environment surrounding the language and its creation. Instead of making an attempt to directly contrast the different languages, this paper establishes a baseline definition of object-orientedness and then approaches each language from that platform, discussing how they achieve different object-oriented properties, and in some cases why. The author contrasts each language against object-orientedness as a whole. It is an interesting approach that gives a unique perspective on the languages when compared with the usual syntactical arguments.

I found the differences in design between several of the languages to be quite interesting. Simula, for instance, did not support dynamic dispatch, which greatly affects design and impedes some "classic" OO solutions like polymorphism. When discussing Smalltalk, the paper mentions that it is untyped – something that can give it great power and flexibility, but a concept foreign to the seasoned C++ programmer. Later, the paper explores the language Self, which is classless and apparently includes no type declarations either – even more foreign than Smalltalk in many ways. The languages discussed here are all "object oriented," but they take vastly differing approaches to the same problem. The paper makes no attempt to ascertain which approach is superior, which I feel to be one of its strengths.

As I was browsing other students' discussion postings, I found a discussion on a paper taking the opposite view in Discussion 1 - Trung Lai. The paper examined here compares languages based directly on their syntax – things like Lisp's use of parentheses, or comment syntax in languages such as TCL and standard assembly formats – exactly what Hostetter's paper explicitly avoids doing. Now, Trung Lai's referenced paper doesn't even discuss object-oriented programming per se, but it does make an interesting contrast because of its syntax-centric focus. In my opinion, a large part of a language is its underlying design, not its syntax. Type systems, inheritance models, support for primitives, and other basic design aspects of a language have a much greater impact on the programmer's design and development processes than pure syntax. It might be argued that changing a language's syntax doesn't really change the language – something I can't see the paper referenced by Trung Lai supporting.

Links to this Page