Programming Language Choices

Here is my response to a recent inquiry (included below) that raises some very good points.

In the web services course, we will be exploring functional languages (Scala, Erlang, possibly Clojure) mostly for pedagogical reasons: they will enable us to study these concepts in a foundationally clean and deep manner. If you do this, it will be easy for you to pick up Rails and/or Python on your own. In addition, I might set up the course in such a way that you can choose your favorite implementation stack as long as all other nonfunctional requirements are met. 

You do realize that Scala (as well as Clojure) compile to Java byte code, so they can take full advantage of the Java platform and ecosystem (existing tools and frameworks). Most of the course examples are currently in Java, and I plan to add examples in these other language (without replacing the existing ones).


As an aside, you may want to read up a bit on the way these languages are used in the "real world". Ruby gets a lot of attention because the community is very active, but some of our graduates have reported that there is much less Ruby out there than they had expected. Furthermore, Ruby has performance issues that have forced some shops to switch to more scalable platforms.


Finally, the barrier of entry into languages like PHP and Ruby is fairly low, so you have a lot of people competing for the available jobs. If you set yourself apart through additional expertise in advanced languages, such as Scala, Clojure, Erlang, or F#, your chances can only improve. Look around a bit and you will see that there seems to be a growing interest in functional languages, for example, in the financial sector.

I hope this response addresses your concerns.


I have already enrolled in your web services course for next semester. I am interested in e-commerce applications/services, so I am assuming that this course will be a good one to take for that purpose. However, I am a bit concerned about the languages we will be exploring -- Scala and Erlang. I have heard of them before, but I am not sure how prominently they are used in the industry today. I know that Python/Ruby on Rails are currently quite popular in web services, is it the same with Scala and Erlang? Also, would it be possible to also work with/cover Python/Ruby on Rails if enough students in the class would be interested in doing so?
Comments