Clojure: an overview

  • 3,008 views
Uploaded 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: …

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,008
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
71
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. : an overview presentation by Larry Diehl language by Rich Hickey Monday, March 2, 2009
  • 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. 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. 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. 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. 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. Editors • Emacs + SLIME • not the only option!!! • IntelliJ IDEA (official JetBrains plugin) • Netbeans (Enclojure) • Eclipse (clojure-dev) Monday, March 2, 2009
  • 8. The End ... just kidding Monday, March 2, 2009
  • 9. http://clojure.org << left side right side >> Monday, March 2, 2009
  • 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