Category Archives: Clojure

[Video 413] Chandu Tennety: A Bird’s Eye View of ClojureScript

ClojureScript is getting lots of attention as an elegant way to write client-side programs. But what sorts of things can you really do? What sorts of applications are made possible by ClojureScript? In this talk, Chandu Tennety describes an application he wrote to analyze and visualize bird migration. He describes how they read the data, interfaced with other libraries (e.g., D3), and even stored the data using Datomic.

Time: 58m

[Video 410] David Greenberg: Dynamic vs Static — Having a Discussion without Sounding Like a Lunatic

Which is better, dynamic or static typing?  For many years, this question has divided programmers, often bitterly. What are the advantages (and disadvantages) of the different approaches of typing, and how can we advocate for an approach without being blind to the trade-offs associated with that approach? In this talk, David Greenberg surveys a number of languages, approaches, and trade-offs,  and how we can think about static vs. dynamic typing without getting into crazy arguments. Moreover, he describes how static typing can be seen as a benefit, rather than a straitjacket, as many dynamic-language aficionados might believe.

[Video 390] Philipp Meier: I did the API wrong — Tales of a Library Maintainer

If you create a piece of software, you need to worry about the users. But if you create an API, then your users are people you’ve never met, who will be using your software on a regular basis — and who will create applications and services based on the API you created. This means that if you  make mistakes when creating the API, you’ll be forced to live with those mistakes, and support them, for some time. How can you create, and then maintain, an API with a minimum of of fuss, and in a way that you can fix mistakes? In this talk, Philipp Meier describes the mistakes that he has made when writing APIs in Clojure. His lessons are appropriate not only for Clojure developers, but for people using other languages, too.

[Video 386] Stuart Halloway: Debugging with the Scientific Method

All developers have to debug their code at some point. But there are particular practices that, when used, can make debugging significantly easier, faster, and most efficient. One overall perspective that can help is that of the scientific method. In this talk, Stuart Halloway describes how he approaches debugging using a scientific approach, and how doing so makes debugging less of a depressing and tedious chore, and more one that helps to move a project forward and provide the developer with greater understanding. His examples all employ the Clojure language, but the lessons learned can be generalized to many languages.

[Video 376] Derek Slager: ClojureScript for Skeptics

ClojureScript is a version of the Clojure language that compiles into JavaScript, and thus runs inside of your browser. Given the improvements in the newest version of JavaScript (aka ES6), people are starting to wonder about the need for, or viability of, languages that compile into JavaScript. In this talk, Derek Slager describes his experiences with the language — and how ClojureScript can help to solve many of the problems that JavaScript developers experience.

[Video 372] Maria Geller: The ClojureScript Compiler – A Look Behind the Curtains

ClojureScript is a version of the Clojure language that compiles into JavaScript — and thus can be run inside of a Web browser. How does ClojureScript work? How does the compiler turn one language into another, and then work around the limitations inherent in a browser environment? In this talk, Maria Geller demonstrates these processes, giving us insights into Clojure, ClojureScript, JavaScript, and compilers in general.

[Video 304] Robert Virding: Wherefore art thou LFE?

Does the world need yet another Lisp? And in particular, does the world need a Lisp that sits on top of the Erlang VM?  In this talk, Robert Virding introduces us to LFE, or “Lisp-flavored Erlang,” a new version of Lisp built on the Erlang VM.  It’s thus functional and concurrent, but with many of the aspects of Lisp that developers have grown to love over the years. How is it different from other Lisps, including Clojure? And what advantages does it bring over Lisp and/or Erlang itself?  Even if you never use LFE, this talk will introduce you to the ideas of language design, and the use cases for a new language.

[Video 246] Soren Macbeth: Data Science in Clojure

Data science is a growing field, in size and importance. Data scientists use a variety of tools and languages to accomplish their goals — including, according to Soren Macbeth, Clojure. In this talk, Macbeth describes how Clojure can be used for data science, what libraries are available for Clojure developers, and why Clojure is a good choice for developers looking to join the ranks of data scientists.


[Video 218] Elena Machkasova: Adapting Clojure to an Intro CS Classroom

For more than 25 years, versions of Lisp have been used in introductory computer-science classrooms — most notably by the famous Structure and Interpretation of Computer Programs (aka 6.001, to those of us who went to MIT in those days). Clojure is a modern Lisp, and this begs the question of whether it’s appropriate for use in modern classrooms with current computer-science students. In this talk, Elena Machkasova describes the reasons why Clojure both is and isn’t appropriate, and considers what can and should be done in order to make it a reasonable and even preferred option for CS instructors.