Clojure Gazette 1.46

Clojure concurrency, a new IDE, and the Future of Programming

Clojure Gazette

Issue 1.46 --- August 07, 2013

Reading

The Amateur Problem

There are a couple of deep ideas lurking in this excellent blog post by Stuart Sierra. One is from his personal experience. He relates that as a professional software developer, he has become wary of software written by amateurs. That resonates with me as well. The other idea is deeper and more fundamental. We don't want our libraries to make simplifying assumptions. Those simplifying assumptions are usually wrong unless you have very specific domain knowledge. And by definition, a library does not have that domain knowledge. Only the application does.

CSP is Responsive Design

David Nolen has been exploring core.async in Clojurescript and has started blogging about his discoveries. Instead of breaking along the traditional Model/View/Controller lines, Nolen breaks UI components into three different subcomponents: event stream processing, event stream coordination, and interface representation. This resonates with my own experience with core.async (and also dealing with MVC in the browser). I appreciate the clarity that Nolen brings to this idea.

The beginners guide to Pedestal

I was working through the official Pedestal tutorial . It is long. While it seems to touch just about everything, after 8 hours, I still did not feel that I had a good overview vision of what all the pieces were and how they worked together. I put the tutorial away, and a couple of days later I found this guide. It's rough, but it does a much better job of explaining the components of Pedestal, why you use them, and their interfaces than the walkthrough tutorial. There are so many pieces you need something to refer to, and this is pretty g ood.

A few words on Doug Engelbart

I somehow missed that Doug Engelbart had died last month. He was one of the giants of computing history. And, sadly, I think Bret Victor has a good point. We do him a disservice by seeing him only as an inventor of this or that. Was Engelbart's research the precursor to Facebook? Probably not.

Software

reloaded

Stuart Sierra released a Leiningen template for setting up a project using his " Reloaded workflow " technique.

Nightcode

Lots of people have been talking about it. It is an IDE with Leiningen built in.

Watching

Concurrency is Not Parallelism

Rob Pike explains the difference between concurrency and parallelism using gophers. We aren't even doing single-threaded concurrency right, let alone full-blown parallel concurrency.

via @swannodette

The Future of Programming

Bret Victor is at it again. He shows himself to be a master presenter, tailoring his presentation format, dress, and internal clock to support the ideas he presents. In this video, Victor presents much the same material that Alan Kay often does. But Victor brings a new perspective that helps illuminate the issues with modern programming in a way that Kay has not. See also the notes .