haskell vs ocaml 2016


Antwort 1:

Wenn Sie vorhaben, beides zu lernen, ist es meiner Meinung nach nicht wichtig, was Sie zuerst lernen.

Wenn Sie mit OCaml beginnen und zu Haskell gehen, wird es eher ein reibungsloser Übergang von dem, was Sie bereits wissen (vorausgesetzt, Sie kennen bereits die Imperativ- und möglicherweise OO-Programmierung), zur funktionalen Programmierung. OCaml bietet Ihnen grundlegende bis fortgeschrittene Ideen aus der funktionalen Programmierung und der Kategorietheorie, während Haskell Sie mit fortgeschritteneren Konzepten aus diesen Disziplinen interagieren lässt.

Wenn Sie mit Haskell beginnen, werden Sie wahrscheinlich auf viele Konzepte stoßen, mit denen Sie nicht sofort vertraut sind. Der Vorteil ist jedoch, dass Sie (mehr oder weniger) gezwungen sind, die funktionale Programmierung ordnungsgemäß durchzuführen, wenn Sie dies tun Beim Übergang zu OCaml werden Sie bereits diszipliniert mit Effekten umgehen.

Insgesamt würde ich sagen, dass Haskell eher eine Sprache für den Unterricht in funktionaler Programmierung und fortgeschrittener Kategorietheorie ist, die robust genug für industrielle Anwendungen ist, während OCaml eine Sprache für industrielle Anwendungen ist, die von der höchsten Unterstützung für funktionale Programmierung und einem hoch entwickelten Typ profitiert System.

Wenn Sie funktionale Programmierung lernen möchten, ist es sinnvoller, zuerst Haskell zu lernen. Zum Schreiben von Software bevorzuge ich OCaml.


Antwort 2:

Ich habe zuerst Haskell gelernt und später OCaml abgeholt und war ziemlich zufrieden mit dieser Entwicklung.

Haskell bringt Ihnen sofort viel bei und lässt Sie so tief in die funktionale Programmierung eintauchen, wie Sie möchten. Nachdem Sie sich mit Haskell vertraut gemacht haben, ist es nicht schwierig, zu OCaml zu wechseln. Mein Eindruck ist, dass es mehr Arbeit erfordert, in die entgegengesetzte Richtung zu gehen.

Ich habe OCaml abgeholt, nachdem ich Haskell etwas mehr als ein Jahr lang benutzt hatte. Ich machte ein Praktikum und brauchte nur ein paar Tage, um echten OCaml-Code zu schreiben - der größte Teil davon befasste sich mit der schrecklichen OCaml-Build-Infrastruktur. (Das Leben ist jetzt viel besser, da wir den OPAM-Paketmanager für OCaml haben.)

Schauen Sie, OCaml ist großartig und passt gut zu bestimmten Domänen, aber wenn Sie nur Haskell und nicht OCaml lernen, werden Sie nicht viel vermissen. Das ist in der entgegengesetzten Richtung absolut nicht wahr; Haskell bietet ein ganzes Universum funktionaler Programmierideen und Abstraktionen, die Sie in keiner anderen gängigen Sprache finden.

Lerne Haskell, damit du es nicht verpasst. Wenn Sie später einen Grund haben, OCaml zu lernen, werden Sie keine Probleme haben, Haskell zu kennen.


Antwort 3:

OCaml wäre leichter zu verstehen und zu lernen, und es wäre dann ein gutes Sprungbrett, um Haskell zu lernen. Haskells Lernkurve ist steiler und viele Menschen haben Schwierigkeiten, sie zu lernen. Mit OCaml können Sie die meisten Grundlagen der funktionalen Programmierung und sogar einige fortgeschrittene Techniken erlernen und viel (wie E / A, Arbeiten mit Arrays, Zeichnen von Grafiken usw.) mit einfachem Code ausführen, für den keine hoch abstrakten Ideen wie Monaden oder verwendet werden müssen durchquerbare Anwendungsfunktoren. Und nachdem OCaml gelernt hat, wird es viel einfacher sein, Haskell aufzunehmen. Am Ende könnte Haskell natürlich interessanter und voller Ideen und Einsichten sein.