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 - Brandon Reynolds

In comparing OO programming languages, there are multiple factors that contribute to efficiency, ease of use, and effectiveness of production that must be accounted for, and I found that Jason Voegele had compiled a rather comprehensive look into these concepts. His article, “Programming Language Comparison” (http://www.jvoegele.com/software/langcomp.html) starts by establishing common ground for OO languages to build on—with requirements such as object inheritance and information hiding—but then moves right on into the differences apparent between every OO language.

One of the first and most noted differences mentioned lies in the “purity” of the object-oriented nature of the language. Smalltalk, for instance, is the veritable father of OO languages, and maintains a purely object-oriented approach—everything is an object, and every object is interacted with through messages. Java and C#, on the other hand, are outlined as hybrids, with OO components, but not entirely composed as such. These differences establish how a programmer must use design in order to most efficiently order inheritance and handle message-sending.

Another significant difference Voegele points out is the manner in which garbage collection is handled. While the automatic garbage collection of Java and Smalltalk allows the programmer to bypass memory issues, the memory allocation requirements of languages like C++ ensure timely execution and complete disposal at the cost of possible human error in allocation.

Discovering William Blatt’s analysis of this very same article, I was introduced to another viewpoint of the OO “purity” subject; he points out the tendency for us, as programmers, is to consider Java and C++ “object-oriented” when they are in fact more hybridized forms. It is our view of OO language that is distorted, and not necessarily the definition of OO. Though this mentality has little effect on programming, it does encourage us to observe the roots of OO programming like Smalltalk, and understand the basics of the style.

Links to this Page