Clojure - An Introduction
Clojure is a dynamically typed, functional programming language available on the JVM. A significant benefit of functional programming is the ease with which the languages can be used to program concurrency. It does this through immutable state. Functions are only dependent on the arguments passed into it, and do not modify any global data. As a result, there are no side affects.
Recently, R. Mark Volkmann put together an excellent Clojure tutorial. The tutorial is very thorough, including information on how to download and get started with Clojure. To provide some perspective for Java developers not familiar with Clojure, the first example shows the same simple program implemented using both Java and Clojure code. There is also a great section on Java interoperability, showing the syntax for how Clojure programs can leverage the Java API.
There's been a lot of innovation in the programming language space the past few years, with more to come going forward. With the JVM supporting an ever expanding number of programming languages, the barrier to adoption has been reduced significantly. Development teams can adopt a new language while still leveraging their existing platform investments. In other words, the ops guys don't know it's not Java. Find the time to check out this tutorial. It's worth it!





Comments
J Szy replied on Mon, 2009/05/04 - 2:38pm
...until they hire some Java programmer to do code maintenance and find out the hard way.
More seriously: any sane company won't allow the "developers" to choose freely the programming language to use in a project. Of course, the company may agree that developers use what they find the best choice, if the choice doesn't break the company policy.
I don't think so. Microsoft and Sun may support and fund Ruby implementations targetting their respective VMs, but it doesn't really make Ruby popular. In fact, despite all hype, it's still much less popular than python, perl, let alone Java or C#.
It just isn't that simple. There may be all of the JVM libraries available for free, but still hardly anyone wants to bet the project on Ruby, much less Clojure.
Andrew McVeigh replied on Mon, 2009/05/04 - 5:51pm
Very well put.
The choice of an implementation language should be upfront and involve all stakeholders. Well, it should be at any professional workplace. And if you are big enough to have an ops team, you are big enough to need consensus on this. I speak from experience and painful memories of obscure languages causing major maintenance headaches.
Raghu Semburakk... replied on Wed, 2009/05/06 - 5:03pm
Microsoft already working on Functional & Object oriented language called F#. Hope many of you guys aware of it. Here is the link if you want explore more on that: http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/
I'm not sure how clojure is different. If some one explored on both areas, you may share your input.
Howard Lewis Ship replied on Wed, 2009/05/06 - 6:04pm
Neon21 (not verified) replied on Thu, 2010/11/25 - 2:34am