SlideShare a Scribd company logo
1 of 8
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
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
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...)
Cake
http://github.com/ninjudd/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
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...
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!

github.com/swannodette/textmate-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...)
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
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”

   ...by no means finished - any help appreciated!

More Related Content

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Clojure & TextMate on a sugar-high of Cake

  • 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. 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. 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. Cake http://github.com/ninjudd/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. 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. 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! github.com/swannodette/textmate-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. 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. 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” ...by no means finished - any help appreciated!

Editor's Notes