Welcome to another issue of Clojure Weekly! Here I collect a few links, normally 4/5 urls, pointing at articles, docs, screencasts, podcasts and anything else that attracts my attention in the clojure-sphere. I add a small comment so you can decide if you want to look at the whole thing or not. That’s it, enjoy!
Learn Datalog Today! Notable initiative. Despite being some 30 years old, Datalog is not as known as the distant cousin SQL. It has a steep learning curve if you never touched any Prolog or being exposed to rule engines and there is a lack of modern approaches on how to learn it, especially step by step guides. These days Datomic is proposing Datalog as the main query language. This website seems that missing resource including nice exercises at the bottom. Thanks to Jonas Enlund and the summer rain of 2013 for putting this together.
Amazon.com: Clojure Bookshelf I knew about the Clojure bookshelf but never bookmarked here. This is Rich Hickey’s collection of recommended books, including the indispensable hammock for a more comfortable reading experience. They are recommended in the sense that they were in Rich’s reading list starting before the first Clojure work and somehow contributed to this successful language. Definitely have a look here for some background on some the most advanced Clojure features.
There’s a Spectrum Involved Here (Brandon Bloom) I was a long time listener of GiantRobots podcast back when I was into Rails and then stopped listening at some point. I rediscovered recently many interesting interviews are going on there, including people from the Clojure and functional community. Like this episode with Brandon Bloom that I know by fame on IRC and the mailing list. He likes to get things out quickly and this approach reflects in his language toolset. He likes to start playing with an idea with rule based languages like Mathematica. He prefers more structure with dynamic functional languages (Clojure) and only add typing later on (if needed). OO is also considered but not design the entire system. In this sense OO is very good ad describing closed systems (what happens inside an object) but it gets difficult to manage when too many interactions happen (the entire system). The spectrum in the title is any dogmatic approach to development where a language or framework is used out of context.
Ants: Clojure vs. Common Lisp - Google Groups From the oldie but goodie series, this is a juicy discussion on comp.lang.lisp about advantages and potential pitfalls of software transactional memory implementations. It all start with Pascal Costanza (of Lisp fame) reproducing the ant colony example in Lisp using locks and the claim that is not that complicated to reproduce Clojure features. Of course Rich chimes in right after. What the ant colony example can achieve is not clear at first sight, but the fact that it doesn’t deadlock or waste system resources is something that is not easy to achieve.
PDF Links #Clojure IRC Crowd sourced PDFs from the very special people in the Clojure IRC channel. Some of them are not relevant (see Object Oriented Cobol book!) but on average the CS papers mentioned here constitute the theoretical basis of many of the Clojure features. There are also papers from other languages for feature comparison, interesting slides from talks and much more. I’d really love to do something similar using the clojure-ml as a source if such an archive existed somewhere!
palletops/lein-uberimage Interesting stuff. This creates a Docker image to run your Clojure app. Useful to distribute a JVM with the app, something that is not always a given for all platforms. I assume you can also customise the created docker image to get other stuff on board, like Redis or ElasticSearch. That is much easier to distribute than install every time!
[PDF] Inside Channels - EuroClojure 2014 - Rich Hickey I was there watching the talk live, but this talk Rich gave at EuroClojure is very dense and deserve a few more passes. Also because there were technical problems synching the slides, the only way you have to watch Rich giving the talk and also look at the slides is to use this pdf that Alex Miller made available on the clojure ML.
Matthew Flatt - Cognicast Episode 061 — Cognitect Blog This Cognicast with Matthew Flatt is full of goodies. I’ve used Dr.Racket and Racket a bit for my SICP studies and I’ve been impressed by what IDE can achieve (and what I’d really love to use daily for my Clojure dev). Racket is a Scheme dialect and it doesn’t run on top of the JVM. This means 20+ years of complete freedom to evolve the language in any possible direction, including things that Clojure can’t support (like TCO or continuations). I like to think that Racket is what Clojure could evolve into (in terms of features) if there were no JVM constrains. Matthew is concentrating lately on the macro system that he’s got idea how to re-implement from scratch. Something they’ve done already is the complete access to the compiler view of the scope at macro-expansion time, something that resemble an compiler-API that is used both at compile time and runtime.1 day ago