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 - Joaquin Estrada

For discussion 1, I read an article called "Comparing OOP Languages". The link to the article is: http://www.geocities.com/Paris/5675/paradigma/tarea2.html

Here are my observations:

When it comes to compile time type checking C++ is a little less efficient than Java because C++ has been written to be compatible with C (a non OOP language). Smalltalk and CLOS tend to do more of the type checking at runtime. Thus, this can have an effect on coding time required depending on how soon the coder becomes aware of faults in the code.

OOP “pure” languages, like Java, are easier for newcomers to learn than OOP hybrids such as C++ and Object Pascal (OP) because Java only deals with one paradigm (OOP) where as C++ and OP incorporate traditional C and Pascal programming approaches (which tend to be procedural) which can sometimes contradict concepts as you combine two paradigms.

Smalltalk is technically more OOP oriented than Java because the primitive types in Java, while not classes themselves, can be in wrapper classes. This has the effect of making Smalktalk less efficient because less shortcuts have been made prior to coding.

Memory allocation: When it comes time for memory allocation, C++ condenses commands and makes it easier to create and do something with an object than Java or OP. Also, C++ and OP give a more direct access than Java does to “pointers” (partially because has no official pointers) because of security reasons.
Trash collection can make a programmers life more difficult in order to clear up unused memory, but Java is more programmer friendly because it’s already automatically done.

Also, switching languages is also made more difficult with specialized unique characteristics to a language. For instance, C++ has a scope operator, something which OP and Java do not have. New concepts from language to language might not take too much time to learn, but there's still a transition period required.

My conclusion to the article and to the question "how do the differences in the languages affect peoples' programming" is that each OOP language was created with a particular solution to some problem in mind. Smalltalk, for example, was the first complete OOP language and having everything as a object seemed to work for the ideal OOP language; however, Java's primitive types helped to abstract (one of the key concepts to learning a new language) some basic features so as to give some "free-bies" to inexperienced/unfamiliar with the OOP concepts coders.

Derek DeRaps' article compared some non-OOP languages in the mix as well and even took everything one step further with research on a programming assignment carried out in each of the languages. There were differences in runtime, memory usage, code length, and coding time required but the reliability came out to about the same. Therefore, my conclusion still stands that the OOP languages (and all languages) were constructed to solve certain problems. However, since not all of the problems have been solved under one language the existence of other languages is necessary until such a time. Depending on the characteristic you wish to optimize, a certain language could work better than others.

Links to this Page