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
WHAT IS CLOJURE ?
REALLY NEW!!!
clojurescript
CLR
JVM
INTEROP
JAVA fRAMEWORKS
• 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
BUILD TOOLS
IDE ??
REPL : Read, Evaluate, Print, Loop
SIDE EFFECTS
FUNCTIONS AS DATA, DATA AS FUNCTIONS
IMMUTABLE DATA
CONCURRENCY (STM)
LET’S SEE CODE!!!
HIGHER ORDER FUNCTION
LAZY
SEQS
MAP/FILTER
STRUCTURE
FUTURE
IS IT READY ?
Companies using clojure in production
REFERENCES
• http://clojure.org/
• https://github.com/diegopacheco/dev-clojure
• http://landoflisp.com/
• http://www.4clojure.com/
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