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

Disussion 1 - Kevin Legette

The Smalltalk Programming Language - A Comparison With Java by Colin Whitehouse

A comparison between BETA, C++, Eiffel, Java, Object Pascal, Ruby and Smalltalk by Michael Neumann

Colin Whitehouse takes a look at the similarities and differences between the Smalltalk and Java programming languages. By linking the points brought up in the Whitehouse paper and comparing to the chart given my Michael Neumann, I was able to broaden Whitehouse's arguments to include characteristics of other object-oriented programming languages.

For the most part, the interpreted languages such as Java, Ruby, and Smalltalk that use virtual machines are extremely portable across various platforms, however their speed suffers for this luxury of portability. On the contrast, compiler languages like C++, Eiffel, and Object Pascal are much faster languages than the interpreted languages, but are more difficult to make compatible for cross-platform applications.

Another point of comparison in ojbect oriented programming languages is simplicity and learnability. While C++ is a language that makes use of method overloading, Java and Smalltalk do not utilize method overloading, eliminating some of the redundancy and confusion associated with having multiple methods with the same name that perform different tasks. Strict type checking and is also a factor in the simplicity of a language. With this being absent from Ruby and Smalltalk (most checking is done at runtime), it can be argued that these languages may be a little easier to write for, however strict (and early) type checking does help to eliminate runtime errors.

In most cases, these languages must sacrifice one positive feature in order to benefit from another. For this reason, people must choose to program in the language that is best suited for the purpose of the intended applications. In some cases speed is the main concern, in which case a compiler language like C++, Eiffel, or Pascal may be the best option. In other cases the application just needs to be available to users of many different operating systems. And in some cases, certain programming languages are just better suited to the development of certain types of applications, such as using Java for web applications.

In reading through other discussions, I noticed a lot of them looked at the suitability of these languages for learning. William Lee's jumped out to me the most because he pointed out a few things about the Java language that make it both a gift and a curse. It's extremely portable, but not an extremely fast language. Java is also considered programmer friendly in its automatic garbage collection and memory management, but doesn't always make the most efficient use of resources. With these obvious performance tradeoffs, Java is still a top language in real-world development and learning environments, backing the argument that there is no "best" language and the language suitability varies with intended uses of that language.

Links to this Page