Montag, 19. Mai 2025

"A Language A Day" von Andrew Shitow - Buchbesprechung

Der Buchtitel "A Language A Day" kann relativ viel bedeuten, im IT Kontext kann man aber davon ausgehen, dass es im Buch um Programmiersprache(n) geht. Mit dem Untertitel des Buchs wird das dann ziemlich klar: "A brief introduction to 21 programming languages". Auf deutsch: eine kurze Einführung in 21 Programmiersprachen.

In dem vorliegenden, englischsprachigen Buch stellt der Autor Andrew Shitow 21 Programmiersprachen vor. Und, um das schon mal vorwegzunehmen, auf eine sehr gute Art und Weise.

Die 21 Sprachen sind, in alphabetischer Reihenfolge (in der sie auch im Buch vorkommen):
C++, Clojure, Crystal, D, Dart, Elixir, Factor, Go, Hack, Hy, Io, Julia, Kotlin, Lua, Mercury, Nim, OCaml, Raku, Rust, Scala und TypeScript.
Nach welchen Kriterien der Autor die Sprache ausgewählt hat, wird nicht erwähnt - ist für das Buch aber letztendlich auch nicht weiter relevant. Jedenfalls ist die Spannbreite der Sprachen ziemlich weit, es werden eigentlich alle Arten von Sprache behandelt, sowohl was das Paradigma als auch deren Bekanntheitsgrad angeht. Für mich kann ich jedenfalls sagen, dass ich bis zum Lesen des Buchs von vier der 21 Sprachen noch nie etwas gehört hatte und vier weitere Sprachen nur dem Namen nach kannte, ohne jemals irgendwelchen Code gesehen zu haben.

Jeder Sprache ist ein eigenes Kapitel gewidmet, welches ca. ein Dutzend Seiten umfasst. In diesen Kapiteln werden für jede der Programmiersprache, nach einer kurzen Einführung zur Sprache selbst, dieselben Aufgaben programmtechnisch umgesetzt: Ausgabe von "Hallo Welt", Berechnung der Fakultät einer zu übergebenden, natürlichen Zahl, Erstellen eines polymorphen Arrays von Objekten sowie Implementierung eines Sleep Sort Algorithmus, mit dem dann 10 Integerwerte sortiert werden. Im Rahmen der Beispiele wird dann auf relevante Themen wie Variablendefinition (inklusive Typisierung, wo notwendig / zutreffen), Definition von Funktion, objektorientiert Programmierung bzw. das, was die Programmiersprache als vergleichbaren Ansatz anbietet, Fehlerbehandlung sowie nebenläufige Programmierung eingegangen. Den Abschluss jedes Kapitels bilden ein paar Links zur weiterführenden Einführung und Lernressourcen für die jeweilige Programmiersprache.

Was der Autor wirklich gut macht, ist, zwar dem Schema zu folgen, aber trotzdem auf die individuellen Ansätze der jeweiligen Sprache eingeht. Dabei wird auch, wenn immer notwendig bzw. sinnvolle, kurze Exkurse in die jeweiligen Spezifika gemacht, um eine der Aufgaben besser umsetzen zu können. Z.B. gibt es bei Rust ein kurzes Unterkapitel zu Macros oder bei Lua ein kurzes Unterkapitel zu Metatables.

Insgesamt ist das Buch gut geschrieben und liest sich sehr flüssig. Jedes Kapitel zu jeder Sprache ist in sich abgeschlossen und lässt sich aufgrund der Länge gut in 15-20min Lesen, wenn man sich die jeweiligen Codebeispiel mit anschaut. Damit sich das Buch bzw. die Kapitel auch für die kurze Lektüre zwischendurch oder am Abend geeignet.

Lernt man mit dem Buch eine der 21 Programmiersprachen? Nein, sicher nicht, dazu sind die Kapitel viel zu kurz. Hilft das Buch, einen kompakten Einblick in die jeweilige Sprache zu bekommen, der eventuell Lust auf mehr macht? Ja, absolut. Ich denke, dass das auch die Intention des Autors ist, den Leser dazu zu motivieren, sich auch einmal - zumindest kurz - mit anderen Programmiersprachen zu beschäftigen, außerhalb derer, die man vielleicht schon kann. Man muss meiner Meinung nach auch nicht wirklich Ahnung von verschiedenen Programmierparadigmen und -sprachen haben, um das Buch zu lesen. Es reicht, wenn man ein bisschen Programmieren kann - in welcher Sprache auch immer - und natürlich ein generelles Interesse an Programmierung und Programmiersprachen hat.

Jedenfalls ist das Buch eines der interessantesten und kurzweiligsten IT-Büchern, die ich in den letzten Jahren zu Programmiersprachen gelesen habe. Für alle, die sich auch nur ansatzweise für verschieden Programmiersprachen interessieren und auch Lust haben, mal in vielen verschieden Richtungen über den Tellerrand zu blicken, ist das Buch eine absolute Empfehlung. Zumal es sich auch ganz hervorragend kapitelweise lässt und es auch egal ist, in welcher Reihenfolge man die Kapitel liegt und ob eventuell auch mal ein paar Tage mehr zwischen der Lektüre von Kapiteln liegen.

Buchdaten:

  • Titel: A Language A Day - A brief introduction to 21 programming languages
  • Autor: Andrew Shitow
  • Verlage: Deep Text
  • Buchart: Taschenbuch
  • ISBN: 979-8344731834
  • Erscheinungsdatum: 28.10.2024 (1. Auflage)
  • Preis: ca. 16 Euro (bei Amazon)