Functional Programming Brno Meetup: Clojure

Last week, I gave a talk about Clojure at Functional Programming Brno meetup.

This was my first meetup talk and my first public Clojure presentation too. I’m very grateful for the experience. It was fun, and I met a couple of interesting people.

Organization

Kiwi.com and especially Jiří Nečas helped a lot with meetup organization. They provided free beers and some food. It was a first-class experience – I truly appreciate everything they did.

Also, all the attendees were very kind and patient with me. Big thank you to everyone, especially Tomáš Janoušek and the former organizer Matej Kollár.

I hope to find more speakers for the next Functional Programming Brno meetups. If you have any experience with FP and would like to share it with us, please, send me a message via Meetup.com.

Presentation

My presentation was based on a wonderful talk Clojure in 10 Big Ideas by Stuart Halloway. I added a brief Clojure introduction at the beginning and some bits about Clojure in the real world at the end. I reduced the number of ideas to seven (leaving out core.async, protocols, and logic programming).

The presentation focused on people unfamiliar with Clojure. I tried to cover quite a few concepts, and that’s why it was so long (1h 45 min). In the future, I certainly need to make my talks shorter.

I divided the talk into four parts:

1. Clojure in Action

A very brief introduction to Clojure syntax using simple hello world covering basic function definition.

2. Clojure Fundamentals

A quick tour of Clojure (dynamic, functional with an emphasis on immutability, LISP, hosted on the JVM, etc.).

I also mentioned important Clojure ideas:

3. Clojure in 7 Big Ideas

The core of the presentation. Seven ideas selected from Stuart’s 10 Big Ideas:

  1. EDN
  2. Persistent Data Structures
  3. Sequences
  4. Transducers
  5. REPL
  6. ClojureScript
  7. Spec

After each section, I demonstrated the examples in REPL. Most of them were very basic. After the Sequences section, I included bit longer demo: Game of Life. I also demonstrated the Game of Life visualization in a browser after the ClojureScript part.

4. Clojure in the Wild

A summary of tooling, “problems” with Clojure (e.g. error reporting), real-world Clojure usage, and community resources.

I used the results of Clojure survey: State of Clojure 2016 Results and Analysis.

Resources

Slides, audio & video recordings are available:

Almost all the stuff presented at the meetup come from one of the following resources:

 

Leave a Reply