Native, fast starting Clojure interpreter for scripting - babashka/babashka
Practical software engineering guides, including Lean and Agile principles and practices, with a focus on Clojure programming language and Clojure REPL driven development
When I wrote about nREPL 0.7 last week I mentioned that some really exciting things were happening in the broader nREPL/Clojure community and today I want to expand a bit on those. The general theme today is that nREPL is getting more mindshare and broader tool support. The subtheme is that many tools can end up being able to support more programming languages due to nREPL’s language-agnostic nature. The format I’ve adopted for this post is a bit chaotic and unstructured, but I hope you’ll forgive me. So, here we go. iced-vim Adds support for nREPL’s Sideloader We didn’t have to wait long for some editor to adopt the new sideloading functionality in nREPL 0.7 - iced-vim 1.3 did this only a couple of days after nREPL was released. You can check out iced-vim’s sideloader documentation for more details. So, which client will be next? Chlorine Adds Alpha Support for nREPL After the demise of Proto REPL, Chlorine has been the undisputed Clojure ruler of the realm of Atom. Chlorine has historically relied on unrepl to power its functionality, but the recently released version 0.5 added alpha support for nREPL! Chlorine’s author, Mauricio Szabo, wrote a couple of cool blog posts on the topic that I can heartily recommend: nREPL on Chlorine Implementing a nREPL Client I’m pretty sure Chlorine’s support for nREPL will improve a lot in the months to come. Conjure Adds Support for nREPL In other (amazing) news - Oliver Caldwell has been working on a rewrite of Conjure, that’s powered by nREPL and may (will?) support other programming languages besides Clojure! The project is off to a very promising start and I’m very excited about it! Calva’s new Debugger Calva, CIDER’s dear sibling, now has an interactive debugger! It utilizes cider-nrepl and VS Code’s debugger extension API. This work has been done as part of the Clojurists Together Q1 2020 funding period. I’m super excited to finally see another editor reusing CIDER’s debugger, and I’m looking forward to seeing which editor
Clojurists Together is funding clj-kondo/babashka/sci, Datahike, Malli, and Practicalli
This has been a year of Clojure (and DevOps). Since the beginning of the year, I have worked to persuade my team to adopt Clojure instead of (or rather in addition to) to the current mixture of Java and Groovy, argued to rewrite a key batch job in Clojure (thank you, Monica, for providing the business case!), and did all I could to spread Clojure knowledge and skill in the team and surroundings. It has been a success - the job has been rewritten, we have already benefited from it, and we are finishing a new, Clojure-based micro-service. I have learned a lot about Java vs. Clojure, about the value of business-level tests and "living documentation", about leveraging Spec and property-based testing, about core.async (and error handling). On the DevOps front, I have grown to really dislike Terraform (wishing repeatedly to have a proper programming language instead of the frustrating Terraform DSL and the hacks it requires, not mentioning the nightmare of upgrading providers and Tf itself; 🤞for CDK/cdk-clj), have spent more time then I ever wanted with Kubernetes (and am working hard on simplifying our infrastructure and replacing K8s with AWS Fargate and thus spending less time on operations and more on development), and fell more and more in love with Clojure REPL, whether embdded in a Java app, in an actual Clojure code, or opening the door (securely!) to a "serverless" container on Fargate.
A year ago I have moved my blog from Wordpress and its WYSIWYG editor to a static site written using React and GaphQL and generated by Gatsby, with entries in Markdown, hosted on Netlify. My motivation was control and ease of writing. Now I continue the trend by moving from Gatsby to Cryogen, a blog-focused static site generator in Clojure, and AsciiDoctor.
A book with scripting recipes for babashka
A walkthrough of how to import data from a CSV file into a Kafka topic, using a Babashka script
The languages I will use for my hobby projects in 2020. ReasonML, ClojureScript and Go.
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. I already showed you netcat, and how it combines...
A few years back, I wrote Clojonic: Pythonic Clojure, which compares Clojure to Python, and concluded: My exploration of Clojure so far has made me realize that the languages share surprisingly more in common than I originally thought as an outside observer. Indeed, I think Clojure may be the most…