Clojure & TextMate on a sugar-high of Cake


Published on

Presentation about a TextMate bundle for Clojure that makes extensive use of the clojure build tool Cake. Still in "early" development...

Presented at the Bay Area Clojure User Group meeting of Sep 2, 2010 in Mountain View.

See "" for bundle code.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

  • Clojure & TextMate on a sugar-high of Cake

    1. 1. Clojure & TextMate on a sugar-high of Cake C l o j u r e d e v e l o p m e n t f o r t h e r e s t o f u s ; - ) F r a n k S i e b e n l i s t g i t h u b . c o m / f r a n k s 4 2 / c l o j u r e . t m b u n d l e
    2. 2. Intro Abundance of Clojure IDEs Emacs, IntelliJ, NetBeans, Eclipse Tried them all... frustrating experiences...too early - all “in flux” TextMate at least I can understand what’s happening... transparency important for understanding Clojure
    3. 3. TextMate Mac-only Programming Editor Highly customizable Plenty of language specific add-ons “Almost” an IDE and it works Popular with the non-Java IDE devs Editor extensions fairly “simple” Also many “warts”... (life is not perfect...)
    4. 4. Cake Cake is a tasty build tool for clojure, designed to be as powerful and fun to use as clojure itself. Cake has the following features: a persistent JVM, eliminating start-up overhead a dependency based task model a large library of built in tasks compatible with most lein project.clj files an enhanced REPL with readline and tab completion
    5. 5. Cake (2) This software is a pre-release... ...and in active development Main developers are Justin Balthrop and Lance Bradley very responsive Brilliant piece of SW! Ruby-based Cake-client that manages&interfaces with persistent JVMs very much like nailgun... but much more flexible Much more than just a “build tool” “Potential” to use clojure as a true command line scripting language, like bash, perl, ruby or python...
    6. 6. TextMate & Cake => clojure.tmbundle Tried to interface TM with Clojure thru nailgun before... like VIM...not easy...kind of ugly Cake discovery enabled “true” TM-Clojure Integration code TM-extensions for Clojure in Clojure! David Nolen and Aria Haghighi seem to have had same idea great job in trying to eval snippets in the right “persistent” namespace thru cake-clj scripts - non-trivial problem!!! liberally “borrowed” from David and Aria’s code and ideas (we will align our efforts in the near future - all very early work...)
    7. 7. Demo... Cake show-off cake client command-line scripting REPL with history and completion clojure.tmbundle new project, lein & cake project mgmt clojure code - online docs, find, macro-expand eval sexp, files, run tests
    8. 8. Conclusion This TM-Clojure marriage is still “young” cake helps the bonding but relationship suffers from occasional miscommunications, unresponsiveness, unexpected stack-traces and lack of docs Cake effort is VERY interesting TextMate has many warts...(need a separate presentation) ...but it kind of works... just like the other dev environments part of Clojure’s coming of age Bundle development has been fun and has been a good learning experience for a recovering “enterprise architect” no means finished - any help appreciated!