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 - Eric Amy

A good article to read for a better understanding of the purpose of taking this class is http://www.cc.gatech.edu/~ericamy/cs2340/squeak2.html but that isn't a good article for this discussion, sadly.
So, here is a link to the boring article comparing Smalltalk. http://www.cc.gatech.edu/~ericamy/cs2340/squeak-final.pdf


Fundamentally, all languages differ on their usefulness to imperative, functional, and object-oriented programming. Smalltalk (Squeak) is hardcore object-oriented(OO). Objective Caml and C++ try to combine all of these approaches. Most other languages are not set in only one of these slots. The application design style should match the language's style for maximum programming efficiency. If OO design is enforced, or desired, then a completely OO language like Smalltalk is the best choice.

Smalltalk and Objective Caml are similar, but differ in these topics: inheritance, type model, meta-programming, and programming paradigm. Objective Caml supports multiple inheritance, while Smalltalk doesn't. Smalltalk is dynamically typed with late-binding, while OCaml is staticly typed with late-binding, but OCaml has automatic type inference so that the user still should not have to worry about declaring types. Smalltalk has a lot more meta information included. Most importantly, Smalltalk is a pure OO language, while OCaml tries to implement other approaches offering a wider choice of solutions to a problem. Since OCaml has its origins in pre-OO programming, OO is less straightforward, but one is not limited to a OO design. The same can be said for C++ and others.

OO programming has become widely accepted as the most intuitive method in recent years. OO designs model real life more closely than others, so in theory someone who knew little about programming design would be able to develop a better design in OO. On the other hand, if someone with experience wants to exercise some power that they like in imperative programming it would be inconvenient (though arguably better design) to translate it into the pure OO language. So Smalltalk, being a pure OO language, is the best choice for pure OO design but forces the assumption of OO design.

Links to this Page