Clojure: an overview

3,412 views

Published on

A very brief overview of the Clojure language. The majority of the presentation is in GIT revision history available from the GitHub link on the last slide:

http://github.com/larrytheliquid/buzzer

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,412
On SlideShare
0
From Embeds
0
Number of Embeds
39
Actions
Shares
0
Downloads
74
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Clojure: an overview

  1. 1. : an overview presentation by Larry Diehl language by Rich Hickey Monday, March 2, 2009
  2. 2. What is Clojure? • A programming language (note the j) • ~1.3 years old (as of 02/26/09) • A dialect of Lisp • JVM-hosted • Concurrency-minded • Expressive • Malleable Monday, March 2, 2009
  3. 3. Why Clojure? • Less code to read • Meta-programming and DSLs • Simpler concurrency model • Lots of Java libraries to reuse • As fast as Java when necessary • Dynamic and JIT, but optionally AOT Monday, March 2, 2009
  4. 4. Concurrency • The age of multiple cores is here • Thread-safety in a Java library is practically a feature • Thread-safety in a Clojure library is practically an assumption • No language-level support for distributed concurrency Monday, March 2, 2009
  5. 5. Examples • Things that don’t change but are used often • Unit testing Java code • Graphing • Rapid prototyping • Lightweight REST APIs Monday, March 2, 2009
  6. 6. Clojure as a Lisp • Functional (not Object Oriented) • Prefix syntax (simple!) • Data type literals (less parentheses) • Lexically scoped (mostly) • Code as data (HOFs and homoiconic) Monday, March 2, 2009
  7. 7. Editors • Emacs + SLIME • not the only option!!! • IntelliJ IDEA (official JetBrains plugin) • Netbeans (Enclojure) • Eclipse (clojure-dev) Monday, March 2, 2009
  8. 8. The End ... just kidding Monday, March 2, 2009
  9. 9. http://clojure.org << left side right side >> Monday, March 2, 2009
  10. 10. Buzzwords http://github.com/larrytheliquid/buzzer • rest of presentation will center around developing a library • the purpose of the library is to detect and report on buzzword usage within text • new concepts will gradually be introduced with new features • TDD will be employed to help the learning process Monday, March 2, 2009

×