Martin Kühl

Martin Kühl is a senior consultant at innoQ. He is interested in programming languages, styles, and tools, and strives for clarity, simplicity, and generality.


  • The Hidden Nature of Data

    BOB 2017 24. February 2017 Slides available

    Encapsulation is a pillar of object-oriented programming, but how important is it in the context of functional programming? Is it worth clinging to, or should we stay away? This talk will examine the tradeoffs of encapsulating internal representations versus exposing the “nature” of our data.

    Programming with immutable values and algebraic data types usually makes hiding fields behind accessors unnecessary. On the other hand, hiding functions and types is a crucial technique control our API, encouraging correct usage and affording the flexibility to change it.

    In this session we will explore constraints that encourage encapsulation, discuss how it affects our types, their algebras, and their algorithmic properties, and learn about alternatives and their benefits and drawbacks.

    Read more


  • Command Line Tools in Swift: Words

    Blog Post 18. November 2016

    Let’s write a simple command line utility in Swift.

    Read more
  • Error Handling in Go

    Blog Post 15. June 2016

    Two commonly perceived problems of the programming language Go are that

    • handling errors is verbose and repetitive
    • parametric polymorphism is not available

    This post is about the intersection of those problems and Rob Pike’s recommendation on the former.

    Read more
  • Eindrücke des Texteditors Atom

    Blog Post 02. June 2016

    Ich vertrete ja die Meinung, dass es eine Gute Idee™ ist, immer mal wieder seine Werkzeuge zu wechseln. Dabei schließe ich auch Texteditoren ein. Das selbst ist ein Thema für ein anderes Mal, aber es ist auch der Grund, weshalb ich seit März eine Weile (etwa 7 Wochen) lang primär mit Atom gearbeitet habe.

    Read more