June 18, 2017

Clojure and the Esoteric Mysteries of Vars

I recently had the drive/opportunity to deep-dive on how Clojure’s namespaces function and how they provide a simple abstraction using the concept of Clojure’s “Vars”. Here is a deep-dive on how they work. This is a two-part series. The next part of the series is available at Clojure and the Esoteric Mysteries of Namespaces. Vars: A Simplified Model of Variables One of Clojure’s essential motivations is to provide a hosted runtime for easily concurrent programs, wherein most of the challenges of locking and thread-safety are provided “for free” (at least in the sense of the programmer not having to worry about these low-level concepts). ...
Read more

June 4, 2017

Bearish on Clojure in 2017

There was a recent brouhaha in the Clojure community about the recent blog post by a Clojure dabbler to the effect that Clojure may be a clean and beautiful language but that it fails in a few pragmatic and ergonomic senses which hurts its adoption and limits its appeal. Although the author admits that he probably made a mistake in jumping to adopt Clojure, a foreign technological concept to him, for a startup in a space that was also completely foreign to him, he does bring up some worthwhile points that are worth chewing over. ...
Read more

October 2, 2016

Switching to Spacemacs As My Default Editor

I recently began to use Emacs as my default text editor for most things, having switched from Sublime Text. Specifically, I’m using the brilliant Spacemacs project, which can best be described as a fairly comprehensive set of sensible defaults and plugins for Emacs with a clever plugin architecture. I used to be a casual VIM user for remote file editing and a Sublime Text user for local editing (with plugins). ...
Read more

January 17, 2016

Lisp Finally Clicked

I’ve been meaning to write this post for a couple of weeks now. There is a story told among programming language enthusiasts that programming as an art only “clicks” once a programmer understands the Lisp programming language. I finally feel like I’ve reached that point. Although I don’t think I’m an amazing programmer, I finally feel like I understand the difference between languages (like Python and Lisp), and why Lisp is often considered so much more flexible and powerful (at least in theory) than a language like Python or C. ...
Read more

January 9, 2016

How Programming is Like Cooking

Peter Naur, famous in the programming world for his contributions to ALGOL and the Backus-Naur Form (BNF) notation for expressing grammars, passed away last week. (For those who are not in the programming world, ALGOL’s grammatical syntax inspired most of today’s most popular programming languages, like C, C++, Java, and Python). As a very young millennial programmer, I’d of course heard Naur’s name from the BNF notation, but didn’t really get to appreciate just how prescient his work was at the time. ...
Read more

© Jeff Rabinowitz, 2019