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.
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.
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:
A quick tour of Clojure (dynamic, functional with an emphasis on immutability, LISP, hosted on the JVM, etc.).
I also mentioned important Clojure ideas:
- Separation of identity and state
The core of the presentation. Seven ideas selected from Stuart’s 10 Big Ideas:
- Persistent Data Structures
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.
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.
Slides, audio & video recordings are available:
- Video (screen) recording: https://youtu.be/YeUOWaM_Gk8
- Slides: https://www.slideshare.net/FPBrno/fpbrno-20171024-clojure-a-functional-lisp-on-the-jvm/
- Audio recording: https://soundcloud.com/fpbrno/fpbrno-clojure-presentation-oct-24-1809
- Clojure samples from the presentation: https://github.com/jumarko/presentations/tree/master/clojure-presentation/src/clojure_presentation
- Game of Life in ClojureScript: https://github.com/jumarko/presentations/tree/master/game-of-life
Almost all the stuff presented at the meetup come from one of the following resources:
- Stuart Halloway on Clojure in 10 Big Ideas
- Rich Hickey: Simple Made Easy
- Alex Miller: Cracking Clojure
- Game of Life in Clojure [in Czech]
- Transducers workshop – uSwitch
- Clojure Pills Screencast: 017 the life and death of an s-expression
- Bruce Hauman – Developing ClojureScript with Figwheel
- State of Clojure 2016 Results and Analysis