Clojure Gazette 103
Data, IDEs, and Om
Issue 103November 23, 2014
The Conj was awesome. Though it pales in comparison to being there, you can still capture a lot of the magic by watching the videos. I thought I'd highlight some of the talks I found significant and why, while the talks are still fresh.
I also want to thank Cognitect, the sponsors, and everyone else who helped make the Conj a wonderful experience. It ran smoothly, the talks were great, the people were smart, and the conversations were enlightening. It's so tiring because it's so intense. Now that I am back home, I've got to process all that happened.
I guess my dream job would be in a small team of developers who really got to establish Clojure at a company. I talked to Robert Crim, Engineering Director at Funding Circle, about their plans for Clojure. He has been advocating Clojure internally for around a year, and they are now starting a core Clojure team to build out new and replacement applications. He's looking for people who are excited about Clojure, even if they don't have professional experience with it. This is a great opportunity to switch your job to Clojure. Read more about what they do and who they're looking for .
Thanks, Funding Circle, for supporting the Clojure Gazette. Robert even said you could contact him directly .
Unlocking data-driven systems Youtube
Paul deGrandis started off the conference with the data-driven theme. Paul and another developer were able to analyze a customer's problem and deliver a data-driven solution for HTTP API descriptions, data schema and import systems, and front-end web apps.
While the data driven approach is interesting by itself, I believe the most significant message of the talk was the leverage two developers can get when they use powerful tools, take the time they need to analyze the problem, and develop abstractions that closely mirror the problem.
Data-driven solutions are often very appropriate, especially when they align with other data-driven systems. In this example, the data-driven service description leveraged the pre-existing Datomic query language and Pedestal route descriptions.
Variants are Not Unions Youtube
Jeanine Adkisson presented a wonderful solution to a common problem. What I especially appreciated about her message was the analytical approach to choosing a representation for variants and how to know when to use it. Her presentation is concrete yet presents an abstract construct that is useful in many situations. This is quite a presentational feat and I hope to see more talks from her.
Glenn Vanderburg talks about his interest in TeX, which was written in the 1970s as a practical typesetting system and also as an educational example of software. A very good talk about the love of software and how far we've come. I've enjoyed his talks in the past and this was no disappointment.
Stewardship: the Sobering Parts Youtube
I was very happy to learn that Brian Goetz was keynoting Clojure/conj. It was the last talk of the day, and, though I was tired after several days of intense talks and conversation, I made sure to be mentally prepared for this one. Underlying the talk was a theme of careful engineering.
The talk was epic. Goetz talked about the challenges of maintaining backward compatibility while advancing the language, and about how well they did it. He talke about recent developements in Java 1.8. And he talked about the upcoming future, including Value Type and Tail Call Elimination. Both of those future features will benefit Clojure.
Cursive: A different type of IDE Youtube
In the 2014 State of Clojure survey , Cursive just surpassed vi for the second most popular Clojure IDE. Its approach is to leverage IntelliJ IDEA's sophisticated IDE capability to edit code using static analysis. Cursive is used by expert Clojurists and beginners alike. Colin Fleming (its creator) explains the philosophy and capabilities of Cursive. It looks tempting.
Bozhidar Batsov is the maintainer of CIDER. He tells the story of Clojure editing in Emacs. The past was rough, but it eventually catches up with the present. CIDER is currently implemented as nREPL middleware and a small amount of Emacs Lisp to make it work in Emacs. The future looks bright.
A funny talk by Zach Oakes about his game development library called Nightmod.
As the demographic of Clojure users changes, so does Clojure/conj. Over half of the attendees this year were beginners, which is a growing percentage. While I did hear some comments that this talk was too introductory, many people told me that it was just what they needed. Julian Gamble's talk is an excellent introduction to Clojure core.async and a great example of the changing audience at the conj.
Om nom nom nom Youtube
Anna Pawlicka brings together many libraries and shows how to compose them to achieve a beautiful, dynamic, and interactive dashboard. She begins with simple guidelines for designing charts. She solves problems like having components communicate with each other, getting up-to-date data from the server, and using vanilla JS libraries from Om. This is one engineer to watch.