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.
When people start to learn about functional programming, they often encounter the term “monad.” And then they try to understand what monads are, and get frustrated and/or confused. In this talk, Pawel Szulc tries to address this fear and confusion regarding monads by asking what they are — and more importantly, what questions we should ask in order ot understand them more easily. If you’ve ever wondered what monads are, or why you should care about them, then this talk should be quite helpful.
Functional programming continues to grow in popularity — but in many cases, the languages we’re using for our functional programming are quite old. As such, they often use a combination of ideas from different backgrounds, traditions, and older languages. In this talk, John A De Goes describes the problems that he sees with current functional languages, and what he would want to see in newer ones. Even if you’re not interested in functional programming, this wish list and consideration of what should (and shouldn’t) be in modern programming languages is both interesting and a great deal of fun.
Erlang is a functional language, designed for systems that cannot scale and that are highly parallelized. Why has interest in Erlang risen in the last few years, and why are people using a language that explicitly avoids state, objects, and threads in favor of functional techniques and processes? In this talk, Steven Proctor introduces Erlang, describing why it works the way it does, and how you can use it for better, faster, and more reliable software systems.
Functional programming is hot. So are Python and data science. So the combination makes for an almost unbeatable combination — using functional programming techniques in Python for data-science work. In this talk, Joel Grus introduces Python’s basic functional techniques and libraries, and then such methods as k-clusters for grouping data. If you have always been interested in how to use Python to analyze data, and/or have always wanted to push your functional programming knowledge to the limits, this talk will most certainly interest you.
Functional programming and object-oriented programming are two well-known and powerful techniques for organizing code and providing programmers with flexibility and power. Each has its own strengths and weaknesses, and each has supporters who feel that their technique is far superior than the other. But instead of seeing these two techniques as being opposites and incompatible, many programmers see them as complementary. In languages such as Ruby, you can work in both styles at the same time, enjoying the best of both worlds. In this talk, Piotr Solnica describes his experiences mixing these two techniques, and how doing so in Ruby helps him to be more effective and expressive in his programs.
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.