Clojure presentation

23
Jéferson Machado So#ware Design Social network informa0on http://twitter.com/jefersonm http://facebook.com/jefe.machado https://github.com/jefersonm/ http://slideshare.net/jefersonm Clojure

description

Light talk about clojure

Transcript of Clojure presentation

Page 1: Clojure presentation

Jéferson Machado So#ware  Design  

Social  network  informa0on  

http://twitter.com/jefersonm http://facebook.com/jefe.machado

https://github.com/jefersonm/ http://slideshare.net/jefersonm

Clojure

Page 2: Clojure presentation

WHAT IS CLOJURE ?

Page 3: Clojure presentation

REALLY NEW!!!

Page 4: Clojure presentation

clojurescript

CLR

JVM

Page 5: Clojure presentation

INTEROP

Page 6: Clojure presentation

JAVA fRAMEWORKS

Page 7: Clojure presentation

•  Ring  (H5p  wrapper  that  runs  on  je5y  -­‐  Web  development)    •  h5ps://github.com/mmcgrana/ring    

•  compojure  (Web  Development  Framework  in  Clojure)    •  h5ps://github.com/weavejester/compojure    

•  noir    •  h5p://www.webnoir.org/    

•  ClojureQL  (databse  queries  through  elegant  clojure  expressions)    •  h5p://www.clojureql.org/    

•  Oyako  (Yet  another  thin  layer  between  an  SQL  database  and  Clojur)    •  h5ps://github.com/briancarper/oyako    

•  fountain-­‐jdbc(Clojure  wrapper  for  Spring's  JDBC)    •  h5ps://bitbucket.org/kumarshantanu/fountain-­‐jdbc/src    

•  leiningen  (Build  -­‐  based  on  ANT)    •  h5ps://github.com/stuarthalloway/leiningen    

•  FleetDB  (NOSQL  Database)    •  h5p://fleetdb.org/    

•  moustache(DSL  to  wire  Ring)    •  h5ps://github.com/cgrand/moustache    

•  Conjure  (A  Rails  like  framework  for  Clojure)    •  h5ps://github.com/macourtney/Conjure    

•  Gaka  (A  CSS-­‐genera0ng  library  for  Clojure)    •  h5ps://github.com/briancarper/gaka    

•  clj-­‐json  (Fast  JSON  encoding  and  decoding  for  Clojure  via  the  Jackson  library)    

•  h5ps://github.com/mmcgrana/clj-­‐json    

•  hiccup  (HTML  rander)    •  h5ps://github.com/weavejester/hiccup    

•  Enlive  (HTML  /  XML  templa0ng  )    •  h5ps://github.com/cgrand/enlive/wiki/    

•  Midje  (Tes0ng)    •  h5ps://github.com/marick/Midje    

•  clojurescript  (Clojure  to  JS  compiler  -­‐  Run  Clojure  in  JavaScript)    •  h5ps://github.com/clojure/clojurescript    

•  scripturian  (Template  Engine)    •  h5p://threecrickets.com/scripturian/    

•  clj-­‐webdriver  (Selenium-­‐WebDriver  Support  for  Clojure)    •  h5ps://github.com/semperos/clj-­‐webdriver    

•  incanter  (Clojure-­‐based,  R-­‐like  sta0s0cal  compu0ng  and  graphics  environment  for  the  JVM)    

•  h5ps://github.com/liebke/incanter    

•  clamq  (Clamq  is  a  Clojure  adpater  for  interac0ng  with  message  queues  -­‐  Ac0veMQ)    

•  h5ps://github.com/sbtourist/clamq    

•  borneo  (Neo4J)    •  h5ps://github.com/wagjo/borneo    

•  clj-­‐h5p  (H5p  invoker)    •  h5ps://github.com/dakrone/clj-­‐h5p    

•  Congomongo  (MongoDB)    •  h5ps://github.com/aboekhoff/congomongo    

•  Overtone  (music)    •  h5ps://github.com/overtone/overtone    

CLOJURE fRAMEWORKS

Page 8: Clojure presentation

BUILD TOOLS

Page 9: Clojure presentation

IDE ??

REPL  :  Read,  Evaluate,  Print,  Loop  

Page 10: Clojure presentation

SIDE EFFECTS

Page 11: Clojure presentation

FUNCTIONS AS DATA, DATA AS FUNCTIONS

Page 12: Clojure presentation

IMMUTABLE DATA

Page 13: Clojure presentation

CONCURRENCY (STM)

Page 14: Clojure presentation

LET’S SEE CODE!!!

Page 15: Clojure presentation

HIGHER ORDER FUNCTION

Page 16: Clojure presentation

LAZY

Page 17: Clojure presentation

SEQS

Page 18: Clojure presentation

MAP/FILTER

Page 19: Clojure presentation

STRUCTURE

Page 20: Clojure presentation

FUTURE

Page 21: Clojure presentation

IS IT READY ?

Companies using clojure in production

Page 22: Clojure presentation

REFERENCES

•  http://clojure.org/

•  https://github.com/diegopacheco/dev-clojure

•  http://landoflisp.com/

•  http://www.4clojure.com/

Page 23: Clojure presentation

QUESTIONS ???

Jéferson Machado So#ware  Design  

Social  network  informa0on  

http://twitter.com/jefersonm http://facebook.com/jefe.machado

https://github.com/jefersonm/ http://slideshare.net/jefersonm