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

Courtland Goodson - Discussion 1

Programming Language Comparison
by Jason Voegele

For the discussion, I read a paper entitled, “Programming Language Comparison” by Jason Voegele. In this paper, Voegele compares and contrast the programming languages Eiffel, Smalltalk, Ruby, Java, C#, C++, Python, Perl, and Visual Basic. After providing the reader with a chart containing several of the features of each language, Voegele discusses several aspects of programming, and breaks down the best languages for each.

Voegele begins by studying the object-oriented capabilities of each language. He states the a true object-oriented language should have encapsulation, inheritance, polymorphism, pre-defined types and objects, all operations defined by send messages to objects, and user defined types as objects. After he breaks down each language, he concludes that only Smalltalk, Ruby, and Eiffel are the only pure object-oriented languages. Java claims to be, but the lack of its basic types as being non-objects prevents it from being purely object-oriented.

The Voegele goes on to discuss static and dynamic typing, generic classes, inheritance, method and operator overloading, higher order functions and lexical closures, garbage collection, and access control in depth, as well as several other programming topics. He also doesn’t have a clear conclusion as to which language is the best; he does provide the rankings from the Caper Jones Language Level study which has Smalltalk, Eiffel, and Perl with the highest rankings, 15, versus Java and C++ at only 6. He does site that the study is flawed since it doesn’t research all of the languages and scores the untested ones based off of its closest counterpart (i.e. Java and C++).

In his discussion, Arcadiy Kantor states that the authors of the paper he read find no clear “best language”, but they do “praise C++ for the flexibility of its function and class template features, but they point out that much of what the other languages accomplish with features C++ is forced to leave to documentation”. Much like the author’s of his paper, Voegele does give praises to languages for their strengths, but also cites their weaknesses and shortcomings.

Links to this Page