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.
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.
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.
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.
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.
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.
How does a programming language work? One way to find out is to implement a new one. In this talk, Jeanine Adkisson describes how programming languages work — and then she shows how some of the basic parts could be implemented in Clojure.
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.