CECS 424 - Programming Languages

My objective this semester is to compare programming languages using the most interesting languages for examples, namely Ruby and C# primarily. In Beyond Java, subtitled "A Glimpse at the Future of Programming Languages," Bruce Tate make the case that Java has grown too complex in the pursuit of high-end large enterprise application developers. He concludes that Ruby is a very promising alternative for most developers who primarily are building Web applications that use a database. A number of articles have a similar theme. See Ruby the Rival for example.

I agree with Tate and the other noted Java developers who are switching to Ruby (and Ruby on Rails for the Web). I do disagree with his conclusion that C# is just a clone of Java. C# 3.0 shows the influence of top language experts such as Erik Meijer that work for Microsoft. The language integrated query we will study uses the new additions to C# to integrate XML and SQL into the C# programming language. .NET, as well as Java, has some unfavorable comparisons with Ruby on Rails. For example see A Real-Life .NET to Rails rewrite.

Now that multicore computers are becoming the norm the programming challenge is how to use them effectively. Erlang is a language designed for concurrent applications. See What's all this fuss about Erlang? and the blog references at the end. Microsoft has a Parallel FX extension to .NET for parallel programming.

Spring 2008 Syllabus
Language References
Sample Ruby Programs
Sample C# Programs
Sample Erlang Programs
Lab Exercises
Ask a Question
Midterm Study Guide
Final Study Guide
Using Ruby on Rails
Functional Programming
Parallel Programming for .NET