Coding is hard —

Many tools and languages make it easy to add accidental complexity.

Accidental complexity creates unnecessary cognitive load.

If we constantly battle cognitive load, we get exhausted, unhappy and frustrated.

but does it have to be that hard?

There are tools and techniques that manage complexity well.

Using those tools and techniques reduces cognitive load.

So that you can be energetic, happy and joyful while coding.

About

Hi 👋

We're Dirk, Thomas, David and Beat and we thought it would be nice if the wonderful city of Tübingen had a functional programming meetup (again!).

We want to create a space where people interested in functional programming can meet and learn from each other. To achieve this, we will start off with talks, followed by food and an open exchange between the participants.

Looking forward to see you at the next edition of Tü.λ—Functional Programming Night Tübingen!

15.01.25

The next meetup will take place on the 15.01.25 at the itdesign office, Friedrichstraße 12.

18:45 Doors open & Welcome

Talk 1 (maybe you?)

Short break

Talk 2 (maybe you?)

Food, talking, coding, whatever

22.00 End

06.11.24

This meetup took place on the 06.11.24 at the itdesign office, Friedrichstraße 12.

18:45 Doors open & Welcome

Really Functional Data Structures (Marvin)

Last time, David showed us functional data structures in the form of persistent data structures. In this talk, I want to show you data structures that are defined entirely by functions themselves - no classes, structs, bitmaps, etc.! Knowing about such structures not only tickles the brain, but can also lead to a better intuition for solving problems functionally. Furthermore, one of the data structures shown can be used for space-efficient encodings of fractals and fun animations.

Short break

Decoupled by Default – Funktionale Programmierung in der Softwarearchitektur (Markus)

Kopplung – das Maß der Abhängigkeiten zwischen Modulen – ist das zentrale Konzept der Softwarearchitektur. Die herkömmliche Sicht auf Kopplung ist die, dass hohe Kopplung dann entsteht, wenn man nicht aufpasst beim Programmieren: wenn man nicht gegen explizite Schnittstellen programmiert, wenn man kein Visitor-Pattern verwendet, wenn man nicht Dependency Injection verwendet …

Kopplung, so scheint es, ist das Resultat von Unterlassung. Die Kopplung wieder zu senken, erfordert dann ausdrückliche Gegenmaßnahmen.

Dieser Vortrag zeigt eine alternative Sichtweise: Viele Arten von Kopplung entstehen aufgrund von Unzulänglichkeiten der Programmiersprache. In funktionalen Sprachen treten diese Kopplungsarten teilweise gar nicht auf oder zumindest ist die Werkseinstellung dieser Sprachen dergestalt, dass Kopplung vermieden wird. Das zeigen wir im Vortrag insbesondere mit Blick auf den Umgang mit geteiltem Zustand und Plattformabhängigkeiten. Am Ende zeigen wir, dass auch funktionale Programmierer nicht automatisch vor allen Arten unnötiger Kopplung sicher sind. Wir zeigen, wie der Ansatz des Denotational Design dort Abhilfe schaffen kann, indem die Semantik von Schnittstellen in den Vordergrund gerückt wird.

Food, talking, coding, whatever

22.00 End

28.08.24

This meetup took place on the 28.08.24 at the itdesign office, Friedrichstraße 12.

18.45 Doors open & Welcome

Simple development environments with Nix (Beat)

Setting up development environments is more complex than it should be. Nix makes entering development environments as easy as running nix develop, making them simple and reproducible. This talk explores what an ideal workflow could look like and walks through a project setup with Nix, outlining its benefits and deficiencies.

Short break

Persistent Data Structures: From Lists to Hashmaps (David)

Functional programmers cannot use the same data structures and algorithms that imperative programmers are used to. Functional data structures make it easier to reason about what our code does, but have different performance characteristics. This talk will introduce some of the basic and advanced techniques we use when we implement functional data structures efficiently.

Food, talking, coding, whatever

22.00 End

If you want to attend the meetup, please tell us about it so that we can plan accordingly 😊

Contact

Do you want to keep posted about the next event or continue the discussion? Maybe you even want to contribute a talk yourself?

Join our Matrix Room