Monday, August 10, 2009

Blog: The A-Z of Programming Languages: Clojure

The A-Z of Programming Languages: Clojure
Computerworld Australia (08/10/09) Edwards, Kathryn

Clojure programming language creator Rick Hickey says Clojure came out of his desire for "a dynamic, expressive, functional language, native on the [Java Virtual Machine/Common Language Runtime (JVM/CLR)]." He says Clojure is designed to support the writing of simple, fast, and robust programs. Hickey says he elected to develop another Lisp dialect rather than extend an existing one because he wanted the language's appeal to reach beyond existing Lisp users, and to support design decisions that would have broken backward compatibility with the existing Scheme and Common Lisp programs. "I originally targeted both the JVM and CLR, but eventually decided I wanted to do twice as much, rather than everything twice," Hickey says. "I chose the JVM because of the much larger open source ecosystem surrounding it, and it has proved to be a good choice." Hickey stresses that solid concurrency support is a key feature of Clojure. "All of the core data structures in Clojure are immutable, so right off the bat you are always working with data that can be freely shared between threads with no locking or other complexity whatsoever, and the core library functions are free of side effects," he says. "But Clojure also recognizes the need to manage values that differ over time."

View Full Article

No comments:

Blog Archive