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 - Tom Filip

What are the differences between OO languages, and how does this affect peopleís programming?

Although there are very many differences among OO languages, which include syntax, memory allocation, definitions of objects, instances, scope, security, etc., I believe that the following are the most relevant:

- allocating memory and garbage collection
- inheritance

First, the number one difference between object oriented languages is the way memory is allocated for the programmerís purposes. For example, C can sometimes be referred to as a super-assembly language, since the programmer has the ability to precisely manipulate memory blocks, from creation to their destruction. While some may look at this as an advantage, others will consider this a burden. As simple as malloc( ), free( ), pointers are, novice programmers may find these concepts tedious and would prefer, for example, Squeak, Java, or another language where the user does not have to worry about allocation and garbage collection.

Second, inheritance is also another important feature in which languages differ. For example, Squeak can extend only one object, or in other words, it has single inheritance. Java can do the same, and additionally, interface with others. C++, however, can extend multiple objects / interfaces, which, depending on the design, can save a lot of work for the programmers.

On a side note, another factor in the way people program is the way the language is implemented, and the code executed. Does the program need a virtual machine or not? Naturally, for power-intensive applications, the designer will most likely choose a program that does not require a virtual machine, so that there is no additional overhead. For example, C would be a better candidate for complex computations than Java. On the other hand, for beginner programmers, who donít care about whatís ďunder the hood,Ē a VM/language such as Squeak or Scheme might suffice for the purpose of simplicity and learning basic programming skills / concepts.

Finally, when it comes to syntax, I disagree with the opinion that some languages are easier to program / learn than others. Although there may be a shorter learning curve for some, in the end, when there is involvement of more complex operations, I believe that Smalltalkís syntax is no easier than other OO languages, for example, C.


Thoughts on Derek DeRapís article:

Just like Amro Mousa said in his reply, I would like to reaffirm the claim, that the author of Derekís article is not always correct. Although Java is slow and insufficient from GUI perspective, compared to C / C++ windowing utilities, but Java has been somehow proven to outperform C on server and VoIP. Plus, no one would ever release a commercial Swing app anyways.

Links to this Page