Category Archives: Functional programming

[Video 263] Dave Thomas: Elixir — The Power of Erlang, the Joy of Ruby

Ruby is a programming language that people love to use: It’s extremely flexible and fluid, and completely object-oriented. But the world is moving — to some degree, at least — away from objects, and in favor of functional programming, with shared, immutable data.  Erlang takes this to the extreme, also allowing us to work with any number of processes, with a rock-solid virtual machine. Elixir is a new programming language that tries to marry these two approaches together. It feels like Ruby, but it sits on top of the Erlang virtual machine, providing all of the advantages that it offers. In this talk, Dave Thomas introduces Elixir, and demonstrates how this combination of flexible coding, immutable state, and high levels of concurrency can work together to provide a powerful coding paradigm.

Note that the slides and demonstrations are hard to read for much of this presentation; they’re available at

[Video 260] Garrett Smith: Why The Cool Kids Don’t Use Erlang

Erlang is not a new programming language; it’s scalable, highly concurrent,  reliable, and executes quickly. Given all of these factors, everyone should be using it, right?  So why aren’t they?  In this talk, Garrett Smith asks why more new applications aren’t being written in Erlang, and explores the issues that Erlang faces when trying to break into the larger world of software development.

[Video 233] Yukihiro ‘Matz’ Matsumoto: Superdry Ruby

Where is the Ruby programming language headed? In this keynote address, Ruby inventor Yukihiro ‘Matz’ Matsumoto describes the past, present, and future of Ruby. What programming models have influenced Ruby to date, and what models are influencing it as the language evolves and improves? If you’re a Ruby developer, or are just interested in understanding how a programming language changes over time, then this talk will likely be of great interest to you.

[Video 229] James Coglan: Practical functional programming — Pick two

Functional programming is increasingly popular — and, some would say, important.  JavaScript offers many functional constructs, but what does that mean?   How does functional programming differ from other styles, and how can we incorporate that into our JavaScript code? How do functional techniques allow us to react more easily to changing requirements in our code?  In this talk, James Coglan offers many examples of functional techniques in JavaScript, as well as the reasons why we might want to use such techniques.

[Video 171] James Powell: Generators Will Free Your Mind

Generators are all the rage. Python has had them for a while, and is now moving rapidly to incorporate them even further, thanks to the Tulip project. JavaScript is getting them in ES6. But why do we care so much about generators? What can do they do for our programs, and for our understanding of how to write and improve those programs? In this talk James Powell shows us just how useful generators can be, and why they’re an important addition to your programming toolbox — in Python, but also in other languages.

[Video 169] Venkat Subramaniam: The Joy of Functional Programming

Functional programming is an old way of thinking about programming — but it is also making a huge comeback, thanks to a combination of expressiveness, readability, and ease of debugging. In this talk, Venkat Subramaniam describes how functional programming can make our lives easier, and the ways in which developers — including Java developers — can include this way of thinking into their work.

[Video 166] Katie Miller: Coder Decoder — Functional Programmer Lingo Explained, with Pictures

Functional programming is hard for many people to understand. It doesn’t help that FP advocates use a vocabulary that’s different from the rest of the programming world. in particular, the word “monad” is known to strike fear in the hearts of many programmers.   In this talk, Katie Miller tries to de-mystify many of the terms associated with functional programming. She uses Haskell for her code examples, but manages to explain and describe these ideas in ways that will (hopefully) help you to understand what people mean.

Jafar Husain: The Evolution of JavaScript

The move toward modern JavaScript continues, with ES6 coming in the near future, with a huge number of new features that make it into a more useful, flexible, and expressive language. In this talk, Jafar Husain describes not only some of these new features, but also the reasons why they have been added — and the ways in which we might want to use them. If you’re unfamiliar with such things as generator functions in ES6, then this talk will help you explain the excitement.

Adam Shook: Hadoop Basics for Big Data Rookies

This talk introduces Hadoop, the open-source system for storing and analyzing big data. How does it work? And (perhaps most importantly) what are some of the tools that are now included in the Hadoop ecosystem, which allow us to analyze data in new and different ways? In this talk, Hadoop expert Adam Shook introduces the entire Hadoop ecosystem, demonstrating simple (but telling) examples of how and where to use Hadoop (and related tools) in your applications.

“Uncle Bob” Martin: Functional Programming; What? Why? When?

Functional programming continues to interest programmers, whether they’re using a functional language (e.g., Haskell or Clojure) or one with some functional capabilities (e.g., Python, Ruby, or JavaScript). But what’s the big idea here? Why should functional programming interest developers? In this talk, Robert (“Uncle Bob”) Martin describes the motivation behind functional programming, and how it aims to make software easier to write, understand, test, and maintain.