Category Archives: Functional programming

[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 408] Pawel Szulc: Monads — Asking the Right Question

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.

[Video 406] John A De Goes: The Next Great Functional Programming Language

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.

[Video 402] Steven Proctor: Introduction to Erlang

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.

[Video 363] Joel Grus: Learning Data Science Using Functional Python

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.

[Video 344] Venkat Subramaniam: Rediscovering JavaScript

JavaScript might be a popular and powerful programming language — but it also has a huge number of inconsistencies and oddities that make it challenging to learn and use. That said, JavaScript is growing in popularity and power, and has capabilities that we can and should respect, and even use, in our production work. In this talk, Venkat Subramaniam demonstrates the power of JavaScript, allowing us to use (and mix) object-oriented and functional styles.


[Video 339] Piotr Solnica: Blending Functional and OO Programming in Ruby

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.

[Video 333] Stefanie Schirmer: Functional programming and curry cooking in JS

Functional programming is making quite a comeback, offering programmers tools that make it easier to describe and express the actions we want to take. However, functional programming can often seem a bit weird to newcomers. In this talk, Stefanie Schirmer introduces a number of functional techniques in JavaScript, including the idea of “currying,” in which functions return functions.  If currying and/or reduce have often seemed like weird, abstract tools that aren’t really relevant to your work, this talk might well change your mind.

[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 283] Evan Czaplicki: User focused design in Elm

Elm is a new, statically typed, functional programming language that lets you create GUIs inside of your browser. It can communicate with JavaScript (a slightly more popular language used inside of browsers), and compiles into JavaScript, CSS, and HTML.  Elm offers a number of new ideas, alongside some old ideas put in a new context.  In this talk, Elm creator Evan Czaplicki describes his language, and how it aims to make software easier to maintain.