Die Haskell-Kernsprache ist wirklich einfach. Ausgehend von einem OO-Hintergrund besteht die Hauptschwierigkeit darin, sich an das reine Funktionsparadigma anzupassen.
Während ich "grundlegendes" Haskell lernte, habe ich Spracherweiterungen immer als Spielzeug für CS-Leute oder als Experimente für zukünftige Versionen der Sprache (wie from future import ???
in Python) betrachtet.
Als ich mich jedoch mit Web-Frameworks wie Yesod befasste, stellte ich fest, dass für viele Quelldateien zwischen 3 und 4 Erweiterungen erforderlich sind. Einige sehen recht einfach aus (StringOverload). Andere sind wirklich einschüchternd (GADT, Type Famillies, Template Haskell). Ihre Dokumentation enthält Links zu Forschungsarbeiten, was für jemanden, der erwartet, "nur" eine neue Bibliothek zu lernen, beängstigend ist.
Ist es notwendig, GHC-Spracherweiterungen zu lernen, um in Haskell produktiv zu sein? Wenn Sie einen Haskell-Entwickler für eine Produktionsanwendung einstellen würden, würden Sie nach diesem Wissen fragen?
Antworten:
Ja. Und das gilt für jede Sprache / jedes Werkzeug. Mit dem Kern- / Grundwissen können Sie die Online-Wettbewerbsprobleme lösen, möglicherweise ein kleines Universitätsprojekt, aber definitiv keine reale Anwendung.
Das hängt jetzt davon ab, ob Sie eine Person bei sich haben, die dieses Wissen teilen kann. Wenn ja, kann diese Person den neuen Mitarbeiter hochfahren. Wenn nicht, müssen Sie diese Person zuerst mit Wissen versorgen. Dies gilt auch für neue Technologien.
Natürlich könnten Sie auch versuchen, Leute einzustellen, die so tiefes Wissen in Haskell haben. Da Haskell jedoch relativ neu in der Industrie ist und nur sehr wenige kommerzielle Projekte durchgeführt wurden, wird es schwierig sein, eine solche Person zu finden. Der effektive Weg, um ein Team von Fachleuten in Haskell aufzubauen, besteht darin, Leute einzustellen, die sich mit Grundkenntnissen auskennen und bereit sind, in Haskell zu arbeiten, und sie dann auszubilden.
quelle