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 - Erik Webb

Source: Baas, B. 2002. Ruby in the CS curriculum. J. Comput. Small Coll. 17, 5 (Apr. 2002), 95-103.

This article focuses on the inclusion of Ruby in a CS 1 class at a Texas University, but makes many good points on using Ruby for learning to correctly program, especially in introductory classes. The most obvious difference Baas shows is that Ruby, along with Perl, Python and others, are all scripting language. This is not especially helpful in programming projects due to the performance sacrifice., but does create a very good interactive feel to make small changes that are seen immediately, without recompiling dozens of files. Purely for educational sake, picking a language like Ruby that is less popular eliminates the risk of a language like Java or C++ being passed over because of students that have already been exposed to these more common languages. This fact helps for the sake of teaching, but, in terms of actual programming prowess,

Ruby also has many interesting features that balances its power and usability. Like Smalltalk, Java and plenty of other, Ruby is entirely object-oriented and forces the programmer into a much cleaner and more rigid design. Everything is an object, exactly like Smalltalk and Squeak, but does not require any kind of large virtual machine overhead. Instead, it runs with the simplicity of other interpreted languages like Perl and Python, gaining the ability to be extremely portable to any architecture that the interpreter has been created for. The syntax is easier to approach than Perl, but is not hindered by some of the intricacies, such as whitespace and capitalization, in Python. Ruby is a good balance between the power of compiled languages and the simplicity of scripting languages.

In reading the post by G. Stepanov, I realized that the use of Ruby solves all of the problems that C++, Java, Smalltalk, and Eiffel raised. Ruby is designed to be fully object-oriented and simplified which eliminates the learning curve of C++. The similar syntax problem in Java is also solved, as well as the need to teach full object-oriented techniques from the beginning. Ruby require knowledge of full OO programming, but does not demand it in every program the way in which Java does. Eiffel was not created with learning involved, this is a huge hindrance in starting off with any language. Ruby has a currently very active community and many published books/papers on the topic. Lastly, Smalltalk's strange syntax and virtual machine use makes introduction to the language very discouraging and difficult. Ruby is built on well-established syntax rules similar to Python and runs on a simple interpreter that can be run (and closed) at will.

Links to this Page