1 Punkte von GN⁺ 2024-06-19 | 1 Kommentare | Auf WhatsApp teilen

Warum ich 15 Jahre gebraucht habe, um Haskell zu lernen

Die erste Begegnung mit Haskell

  • Haskell ist eine funktionale Programmiersprache, die von schottischen Logikern des 20. Jahrhunderts entwickelt wurde.
  • Um 2006 kam ich zum ersten Mal mit Haskell in Berührung.
  • Während meines Studiums begann ich durch ein unabhängiges Forschungsprojekt, Haskell zu lernen, aber tatsächlich lernte ich nicht besonders viel.

Haskell in der Praxis

  • 2009 kam ich durch die Nutzung des Tiling-Window-Managers Xmonad etwas intensiver mit Haskell in Kontakt.
  • Da die Konfigurationsdatei von Xmonad in Haskell geschrieben ist, verstand ich Haskell dadurch etwas besser.

Lernen über Elm

  • Elm ist eine Haskell ähnliche Sprache, und über Elm konnte ich die Konzepte der funktionalen Programmierung leichter verstehen.
  • Beim Erstellen einer Dashboard-Seite mit Elm lernte ich die Prinzipien der funktionalen Programmierung.

Zurück zu Haskell

  • Auf Basis des durch Elm Gelernten baute ich mit der Haskell-Bibliothek Shake einen statischen Site-Builder.
  • Anschließend schrieb ich auch in Python besseren Code, indem ich Konzepte aus Haskell anwandte.

Das erste nützliche Haskell-Programm geschrieben

  • 2023 schrieb ich während meiner Arbeit als Freelancer ein Programm zur Zeiterfassung in Haskell.
  • Dieses Programm kann Kommandozeilenoptionen parsen und mit einer Datenbank interagieren.
  • Endlich hatte ich ein nützliches Haskell-Programm geschrieben und empfand dabei ein großes Gefühl der Erfüllung.

Meinung von GN⁺

  • Vorteile funktionaler Programmierung: Funktionale Sprachen wie Haskell betonen Unveränderlichkeit und pure Funktionen, was die Vorhersagbarkeit und Stabilität von Code erhöht.
  • Lernkurve: Haskell ist schwer zu lernen, aber ein schrittweiser Zugang über ähnliche Sprachen wie Elm kann effektiv sein.
  • Einsatz in der Praxis: Wenn man Haskell in realen Projekten einsetzt, lassen sich die Prinzipien funktionaler Programmierung besser verstehen und anwenden.
  • Werkzeugauswahl: Haskell-Bibliotheken wie Shake sind nützlich, um Build-Systeme zu erstellen, und machen die Praxistauglichkeit von Haskell erfahrbar.
  • Community und Materialien: Die Haskell-Community und verschiedene Lernmaterialien können im Lernprozess sehr hilfreich sein.

1 Kommentare

 
GN⁺ 2024-06-19
Hacker-News-Kommentare
  • Es ist sinnvoll, funktionale Programmierung zu lernen, und das dauert keine 15 Jahre. Bei Haskell fühlt es sich natürlich an, Domänendaten deklarativ zu modellieren, mit reinen Funktionen zu arbeiten und an den Grenzen des Programms mit der realen Welt zu interagieren. Für Einsteiger wird F# empfohlen.
  • Prolog vermittelt noch mehr Einsichten in das Verständnis funktionaler Programmierung. Es dauert nur ein paar Tage, die Sprache zu verstehen, aber es braucht Zeit, ihre Ergebnisse zu verstehen.
  • Jemand bittet um Empfehlungen für gute Ressourcen, um Haskell zu lernen. Das Interesse an Haskell besteht schon lange, und durch ein Nebenprojekt mit F# wurden einige Konzepte der funktionalen Programmierung verinnerlicht, aber das Verständnis von Monaden fehlt noch.
  • Link: Ressourcen zum Lernen von Haskell
  • Jemand möchte den Code des Autors sehen. Es besteht Neugier, zu welchen Ergebnissen die Reise des Autors geführt hat.
  • Link: Code des Autors ansehen
  • Frage nach den Vorteilen des Lernens einer rein funktionalen Programmiersprache. Wenn man Code schreibt, der Daten und Ereignisse aus der realen Welt verarbeitet, verschwimmt die Grenze zwischen optimiertem Code und intellektueller Neugier.
  • Der Reiz von Haskell liegt darin, dass es sich natürlich anfühlt, Domänendaten deklarativ zu modellieren, mit reinen Funktionen zu arbeiten und an den Grenzen des Programms mit der realen Welt zu interagieren. Das gilt nicht nur für Haskell, sondern ist auch in anderen Sprachen eine bevorzugte Arbeitsweise.
  • Als Haskell vor 20 Jahren ein heißes Thema war, wurde auch ML häufig diskutiert. Heute bedeutet ML fast immer Machine Learning.
  • 15 Jahre oder gar nichts.