Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Clojure web dev history

3,605 views

Published on

Presentation at Shibuya Java #19 https://shibuya-java.connpass.com/event/57368/

Published in: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Clojure web dev history

  1. 1. Clojure Web Dev History Ikuru K @ Shibuya Java #19
  2. 2. About me: - Web developer Work at Cybozu Startups, Inc - Company Clojure Story: https://clojure.org/stories/cstap - HN: iku000888 - https://github.com/iku000888 - https://twitter.com/iku000888
  3. 3. Clojure web dev history 1. Servlet + Clojure as a library (2007 ~ 2008) 2. Ring (2009) a. Compojure 3. ‘Frameworks’
  4. 4. Year 2007: Clojure = Java Library
  5. 5. Dec 11, 2007 @ mailing list... > I was also wondering what the web programming story is for clojure. Is there a preferred approach? Rich: Not yet. I hope to provide a simple servlet implementation that will route requests to Clojure fns, and a simple HTML macro system like CL-WHO et al. After that I would be interested in input on how best to provide Clojure as a web scripting engine like JSP - https://groups.google.com/forum/#!searchin/clojure/web|sort:date/clojure/YVoxROEaT6M/s9Pu-ZQ2PPgJ
  6. 6. Webjure (Jan 16, 2008) - Servlet - Dispatch to clj functions - Basic HTML templating - Basic sql/jdbc setup - Ajax repl(!) - 〜proof of concept - https://github.com/tatut/Webjure - https://groups.google.com/forum/#!msg/clojure/xC8HpZp5kMU/H-Y84DBXS7cJ
  7. 7. Trend: More with Clojure! Java Clojure Clojure Java(libs)
  8. 8. Break through: Ring (~2009) - Request/response as clojure map - Extensible via middleware - Adapter with existing Java web servers (Jetty etc) - Inspired by Rack(Ruby), WSGI(Python) - Dominant standard for Clojure web dev - https://groups.google.com/d/msg/clojure/D3yXjLWqjyQ/Qq83HDO43BIJ
  9. 9. Compojure 〜2009 - Started off as a servlet Clojure stack - Servlet adapter + HTML templating + routing - Most of the features moved into Ring - Now a routing Library - To be replaced with ataraxy - ‘ant run’ + build.xml - https://github.com/weavejester/compojure/tree/2e01266bcdcaa2565d189205f392c301b7aeca65
  10. 10. Noir - 1.0.0 on 2011 - Built on compojure - Bundles Session, Cookies, Validation etc - Quick Start = Initially extremely popular - Lacked extensibility/flexibility - Deprecated in 2012
  11. 11. Conjure 〜2010 - Aimed to be like Ruby on Rails - Scaffolding - Tasks via dedicated lein plugin - MVC(?) - Did not cross the chasm - Lot to learn - Might as well roll your own
  12. 12. Luminus - Libraries combined for you - Battery included - lein new luminus foo-proj - Customizable via lein template switch - Optional cljs setup - Maintained - Very popular
  13. 13. Pedestal - Ring: Middleware, Pedestal: Interceptor - Backed by Cognitect - Async support
  14. 14. Duct - Stuart Sierra’s Component framework applied to web development - Component? - Manage Lifecycle of app components - DB, web server etc. - System = reified object, not in code
  15. 15. Arachne - Aims to be a full stack framework - Developed by Cognitect Employee - Currently in alpha, promising
  16. 16. Duct (2) - Component lib replaced with Integrant - Evolving into a full stack web framework with inspirations from Arachne - More lightweight compared to Arachne
  17. 17. Extra: asked - @defn podcast https://defn.audio/ - Q: Pedestal? - A: Features are cool, but never had to use it. - Q: Arachne? - A: Data centric approach was good, but using was tedious, so made integrant + duct
  18. 18. Extra: Macchiato - Ring on Node.js!
  19. 19. Summary - , Everywhere - Ecosystem built by community - JVM: Arachne vs Duct - Node.js: Macchiato?
  20. 20. Thanks!

×