View this PageEdit this Page (locked)Attachments 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 - Stephen Rollyson

Article: Programming Language Comparison.

The article I covered was a very objective summary of many languages that propose to have object-oriented qualities. However, I would like to focus on just two of the languages in my discussion: Ruby and Java.

Ruby and Java both propose to be purely object-oriented, but only Ruby succeeds in its proposal. This article pointed out to me that Java's primitive types and primitive operations are Java's only grip on procedural programming. The primitive types and operations directly correspond with machine language, despite the fact that the user cannot create new types that are not object-oriented. However, this is not the only thing I learned in this article.

One thing that Ruby supports is Uniform Access. What this means is that if you wish to access an attribute of the class Woot called name, you would access it by asking for only, rendering unneccesary. In essence, you can access any attribute in an identical fashion regardless of whether the data is actually stored within the object or is a derived attribute calculated when the object is asked for the attribute. Java does not support this.

Another difference between the two languages is Access Control semantics. For example, a private attribute in Ruby acts as a protected attribute in Java, it can't be accessed by asking for it directly, but a subclass has the ability to read and modify its contents. Also, Java has an extra level of Access Control, called package protected, which allows classes within the same package to access the attribute.

Overall, Ruby seems to be more purely object-oriented and as a result the code is cleaner to write and takes less effort on the programmer's part. However, there are some important features that Java has to offer such as wrapped threading (which allows for blocking system calls to not stall the program if the system call is in an independent thread) that Ruby doesn't. Written as it is, this article seemed very objective with regards to language comparison, leaving the reader with a sense that each language has its strengths in certain applications.

Response to David Eakes' Article:
Both of our articles were objective summaries of many languages using charts to demonstrate which object-oriented qualities each language possesses. His article seems like an older relative to mine, reviewing several languages that were popular more than a decade ago, while mine seems to cover those still in use plus new ones like C#. Regardless, both herald the purely object-oriented languages and label C++ as not a pure object-oriented language. Of course, C++ never proposed to be purely object-oriented, featuring various procedural qualities, and both articles point this out.

Links to this Page