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

Guy Hoskinson Discussion 1

There are many object-oriented languages out today, many of which are largely unheard of. The article A Comparison of Object-oriented Programming in Four Modern Languages undertakes the task of educating readers of the different approaches taken to Object Oriented paradigms through different object oriented languages. Since C++ is the most widely used object oriented programming language today, the author states that many programmers are unfamiliar with alternate approaches to the OO paradigm. The article states that different OO languages support the OO paradigm in different ways. Oberon-2, Modula-3, Sather, and Self are the 4 OO languages being compared.

Oberon-2 is the successor of Oberon, which was evolved from Modula-2, through feature removal and the addition of type extensions, which provide basic support for inheritance. Oberon-2 was influenced by Object-Oberon, and incoroporates type-bound procedures, which is a fancy way of saying "methods". Garbage collection is provided with Oberon to save the programmer the tedius task of memory management.

Modula-3 is a larger language than Oberon-2, providing support for large scale multi-person programming projects. It has separate module interface specification and exception handling, and also concurrency and garbage collection. Modula-3 is a strongly typed programming language with an emphasis on safety. Interestingly enough, the safety features on Modula-3 can be entirely circumvented if efficiency or functionality are deemed necessary by the programmer. It also has object types incorporated into the basic structure of the language.

Sather is a derivative of Eiffel, but has a greater emphasis on simplicity and efficiency. It is centrally an object oriented language, unlike Modula-3 and Oberon-2 which are largely procedural with OO support. Sather provides only classes as a way of grouping related data; there are no modules, and all functions must be methods of some class. It is a lot like Smalltalk, but it is interesting because it emphasises static-typing and performance.

Self is a dynamically-typed, object oriented programming language with message passing. It was designed to support exploratory programming. Self is a deviation in the common OO paradigm. Instead of classes with instance variables and methods, it has prototypes with slots. Prototypes provide templates from which objects are cloned and slots combine instance variables and methods into a single construct.

There are many OO languages out there, and though many, like Lee Crippen and Emily Ewald, chose to compare common programming languages, still many more languages exist to push the boundaries of Object oriented programming. Blake O'Hare mentions Self and Modula-3 in his snyopsis, and in conjunction with my article, I feel that OO support in procedural languages and pure OO languages are gaining drastic favor in computer science, and I think that this trend will continue for decades to come.

Link to this Page