History of Computers - Clojure

From SJS Wiki
Jump to: navigation, search

--Ikamat (talk) 15:18, 18 September 2016 (CDT)

Intro

Clojure is a modern Lisp dialect provided by Cognitect. Introduced in 2007, it aims to bring the Lisp philosophy of code-as-data into modern computing. As such, it is a functional programming language for the post-2000 world.

Overview

Clojure was first created by Rich Hickey. After working for approximately 2.5 years on the language, he released it to the public. The first stable release of the language was in 2009 with version 1.0.[1] As of 2016, development has been supported by Cognitect and the language has reached version 1.8.[2] As a Lisp dialect, the language retains many features from the original 1950's Lisp implementation, such as S-expressions.[3] However, whereas Lisp dialects such as Common Lisp and Scheme are either interpreted or compiled into a platform-dependent executable, Clojure compiles to JVM bytecode and runs on the Java Virtual Machine. This allows Clojure to be more portable than other Lisp dialects, though some speed is sacrificed due to translation between machine instructions and JVM bytecode at runtime. Clojure attempts to make up for this shortcoming, however, by providing interfaces for the massive number of Java libraries available.[4] Running on the JVM also entails that Clojure is garbage collected. This means that elements which are not in use will be discarded in order to ensure that memory use stays at a reasonable level.[5] Another difference between Clojure and other Lisp dialects is the inclusion of native concurrency support. This means that multiple threads can manipulate data at the same time. Clojure accomplishes this by having a history of states of an object. These states cannot be changed, and the history is updated whenever a change is required. Thus, concurrency simply depends on the ability to manage states.[6] clojure-logo-120b.png
Clojure logo[7]

Significance

Clojure has been and will be instrumental in bringing Lisp paradigms to mainstream computing. The language is already in use by such corporate behemoths as Walmart, and more companies are following suit.[8][9] Additionally, by compiling to JVM bytecode and running on the Java Virtual Machine, Clojure brings Lisp-style programming to over 3 billion devices.[10] Clojure is significant because it is a successful attempt to bring the code-as-data philosophy from the 1950s into 2016.

References

  1. http://www.infoworld.com/article/2619641/java/clojure-inventor-hickey-now-aims-for-android.html
  2. https://jafingerhut.github.io/clojure-benchmarks-results/Clojure-version-history.html
  3. http://clojure.org/reference/reader
  4. https://clojure.org/
  5. http://searchstorage.techtarget.com/definition/garbage-collection
  6. http://clojure.org/about/state
  7. [1]
  8. http://blog.cognitect.com/blog/2015/6/30/walmart-runs-clojure-at-scale
  9. https://puppet.com/blog/a-new-era-of-application-services-at-puppet-labs
  10. http://www.zdnet.com/article/three-billion-devices-run-java-yeah-but-do-they-like-it/

Links