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 - Priyanka Mahalanabis

Principles of Object-Oriented Languages: Smalltalk vs. Objective Caml
Article by Niels Joncheere: http://www.joncheere.be/LI1/pool/PaperPOOL.pdf


Smalltalk was created out of the need for a simpler programming language. It is considered one of the only pure programming languages. In contrast, Objective Caml is a child of the ML (Meta Language) family and combines functional, imperative and object-oriented programming approaches. Joncheere chooses to compare these two languages as Smalltalk is somewhat of a benchmark for object-oriented programming.

Joncheere breaks down his comparison into six parts: inheritance model, type model, method lookup, metaprogramming, concurrency and multiple paradigms. With regards to inheritance, Smalltalk does not support multiple inheritance and Objective Caml does. Smalltalk is also dynamically typed making it a lot more flexible compared to Objective Caml and other languages such as Java and C++ which are staticly typed. Objective Caml does not have any meta object protocol available where Smalltalk can ask each object its class or superclass. Both of these languages have different manners of concurrent programming. Smalltalk does this through the implementation of the Semaphores class while Objective Caml incorporates the thread library. The last point of comparison that Joncheere makes is multiple paradigms. Smalltalk is an single-paradigm processing language and Objective Caml is a multipe-paradigm processing language.

While Objective Caml offers a number of advanced features that are mentioned within the article, it seems that Smalltalk may be easier to program in. Other than the fact that it was created for simplicity there are other matters that may make it seem easier including that it is dynamically typed and does not support multiple inheritance.

I read Jason McGarr's discussion which also discusses a lot of the same points of comparison as my article. After reading his discussion, it seems as though Smalltalk has made itself what may be considered an "easier" or "better" programming language because it follows pure object-oriented programming principles. He states that there are some annoyances to Java and C++ including static types and C++'s explicit casting.

Links to this Page