Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
Major: Computer Science & Computer Engineering (Yes, 2)
Year: Sophomore but junior in hours
Favorite programming languages:
- SQL (sorta language)
Most hated languages:
- Smalltalk (Squeak)
- Visual Basic
- Binary (OP Codes)
http://coweb.cc.gatech.edu/cs2340/4849 (SUnit Testing EXPLAINED)
http://coweb.cc.gatech.edu/cs2340/4766 (Eclipse Integration)
Programming Language Comparison
The first major point the article attempts to make is that Eiffel, Smalltalk, Ruby, Java, C#, C++, Python, Perl, and Visual Basic differ by their purity in relation to object-orientation. Albeit a subjective definition of an object oriented language that requires the language to have everything as an object, the article does an effective job of showing the object-oriented nature of various programming languages. Their first conclusion is that, “Eiffel, Smalltalk, and Ruby are all pure Object-Oriented languages”. This is simply due to the fact that Java, C++, C#, etc. use primitive structures and have operators that are global, sending no actual message to the object itself. These minor differences are trivial when trying to show whether or not a language is purely object-oriented. There are standard global characters in the “pure Object-Oriented languages” that are not necessarily messages. Ultimately, this does not affect the end user’s programming. Aside from syntactical variances from language to language, all of the object-oriented languages possess the ability to create objects. The features of objects should be considered foremost. C++, Java, and C# excel in this area when compared to Smalltalk, Eiffel, Ruby, and Python. Features like enhanced access control, multiple-inheritance, and method overloading are invaluable features in the world of object-oriented languages. These features have allowed these languages to maintain a great level of scalability and modularity, and allow for a programmer to fine tune object-oriented code and re-use it very efficiently.
Another major concern of the article is static vs. dynamic typing. The article does a good job remaining objective in this part of the article. Dynamic typing can be useful for simplifying programming; however, it is far safer to use static typing in order to insure that a program is moving data around as it should. Dynamic typing can lead to object/class processing of data it was not meant for, a major headache for any programmer. Static definition takes a little bit longer to implement, but will be worth it in the end.
Discussion 1 - G. Stepanov
I find this discussion interesting because it shows how much the perceptions of an object-oriented language vary from person to person. Many authors of articles establish a basis for object-oriented programming and pitch all languages against this basis. Eventually many languages fail and show that author’s favorite language wins. The author of the article in this discussion seems to like Eiffel and SmallTalk because they pass his object-oriented tests. This is a flawed way to look at a language. The best way to define an object-oriented language is by saying that the language has the ability to create objects from classes. That is the fundamental fact of object-orientation. The ultimate usability of a language comes from the understandability of its syntax and features related to objects. Smalltalk, in my opinion, definitely does not have the former or the ladder. Eiffel does not have the ladder. This is why these languages are not highly adopted today.
Link to this Page