PurelyFunctional.tv Newsletter 210: CLJS: Externs inference, Why CLJS?, Live editor

Issue 210 - January 30, 2017

Hi Clojurers,

The first time I tried ClojureScript, I gave up. I was under a deadline and it was not as familiar as straight JavaScript. Plus, back then, there were serious differences like not being able to put :use in the ns declaration (we don't use :use anymore even in Clojure). But I eventually picked it back up when I had a chance and fell in love, again (the first time was with Clojure itself. I know I might sound like a fanboy. But I get deep into things that interest me, as we all do). The differences between Clojure and ClojureScript brought focus to the language. The incompatible things put a spotlight on Clojure's design decision to be hosted. It's a brave decision that is still not well-understood.

ClojureScript was still rough, but it worked and you could get around the problems. People were skeptical of ClojureScript, especially compared to the success of CoffeeScript. Then React and Om hit the scene and it seemed like riding a rocket ship. Suddenly, ClojureScript was leading the way in a new direction. ClojureScript certainly wasn't alone, but it popularized Clojure, compiling to JS, React, and functional programming.

It's good to see ClojureScript continuing to push the envelope. This time, with npm modules.

Rock on, ClojureScript!

PS Want to get this in your email? Subscribe!


A new project from Zach Oakes. This one is an online ClojureScript editor. No installation needed to build a web app or a game. I've used Nightlight before for a Clojure training and it was a great experience.

Clojure Remote Opportunity Grants

Clojure Remote is offering admission to members of underrepresented groups.

How we program multicores YouTube

Joe Armstrong explaining how Erlang rocks the multicore world.

Creating a Spec for Destructuring

Alex Miller shows how we can use specs to specify Clojure's destructuring.

Dutch Clojure Days CFP still open

If you're interested in giving a talk, you still have a chance.

ClojureScript: a frontend language designed for efficient state management

I've been using Clojure for a long time now, and when ClojureScript came out, I just thought "Great! That's just Clojure that compiles to JavaScript." The perspective worked for me, but for people who don't know Clojure, it's useless.

And now here comes someone with a better perspective to explain to newcomers: ClojureScript is for efficient state management. I'm not sure this is the optimal message for ClojureScript, but it's a good one.

Alan Kay Interview (1990) YouTube

As an Alan Kay fan, I was surprised to discover this gem of an interview. It's almost three hours long. He talks about the history of computing, education, and some of the research at Xerox PARC.

A Farewell to FRP

Back in May 2016, Elm moved away from FRP. That's interesting not because of what it left behind but because of the new architecture it proposes. What's interesting is that it is very similar to where the React world is going (with Re-frame, Om.next, and Redux). Does this signal that we have found the optimal way to do functional frontends?

ANN: ClojureScript 1.9.456, Externs Inference & Comprehensive JS Modules Support

A recent announcement to the ClojureScript mailing list: ClojureScript can now infer externs (one of the bigger pain points) and consume JavaScript modules, including directly from NPM and compiling using Babel. Congratulations to the ClojureScript team! This is amazing work.

Clojure/West CFP

Clojure/West is back in Portland this year. Their CFP is still open, but closes soon!