Computer languages reflect the goals, target audiences, and to some degree the personalities of their creators and their communities. As a result, even languages that are created with similar goals in mind may yield highly disparate final results, depending on how their communities understand those goals. Ruby, Clojure, and Ceylon are three such languages.
Ruby is the oldest of the three. Created in the mid-1990s, it didn't achieve widespread popularity until the 2000s. One reason for Ruby's growth is the work of Charles Nutter, who created jRuby, a port of Ruby to the Java virtual machine (JVM). Ruby is a dynamic, object-oriented language, whereas Clojure and Ceylon use a functional programming approach.
[ InfoWorld's Paul Krill has interviewed the fathers of 9 modern programming languages; read the key excerpts from each. | Follow the latest issues in software development with InfoWorld's Developer World newsletter, and get Java users' tips from JavaWorld.com. ]
Clojure appeared in 2007, created by Rich Hickey. Although Clojure is new, it's a derivative of Lisp, the listy processing language specified in 1958, making it the second-oldest high-level language. Then there's Ceylon (the brainchild of Gavin King, the creator of the Hibernate ORM framework), which is on its second milestone prerelease.
In interviewing Ruby's Nutter, Clojure's Hickey, and Ceylon's King, I was surprised at how -- despite ending up with vastly divergent outcomes -- they share common goals and viewpoints. Each believe their language is designed to simplify the job of the developer, yet the approaches they each take toward achieving that simplicity vary wildly.
A key idea behind Ruby is to "feel as natural as possible, so you can do powerful things with Ruby but it doesn't get in your way," Nutter says. On the other hand, it "does not limit you to programs and development styles that fit into a strict statically typed world."