Ich habe Zeit in das Erlernen der funktionalen Programmierung gesteckt und bin zu dem Teil gekommen, an dem ich anfangen möchte, ein Projekt zu schreiben, anstatt nur in Tutorials / Beispielen herumzuspielen.
Während meiner Recherchen stellte ich fest, dass Erlang beim Schreiben von paralleler Software (was mein Ziel ist) ziemlich leistungsfähig zu sein scheint, aber Ressourcen und Tools für die Entwicklung sind nicht so ausgereift wie Microsoft-Entwicklungsprodukte.
F # kann unter Linux (Mono) ausgeführt werden, sodass die Anforderungen erfüllt sind. Beim Stöbern im Internet kann ich jedoch keine Vergleiche zwischen F # und Erlang finden. Im Moment neige ich zu Erlang, nur weil es die meiste Presse zu haben scheint, aber ich bin neugierig, ob es wirklich einen Leistungsunterschied zwischen den beiden Systemen gibt.
Da ich es gewohnt bin, in .NET zu entwickeln, kann ich mit F # wahrscheinlich viel schneller als Erlang auf den neuesten Stand kommen, aber ich kann keine Ressource finden, die mich davon überzeugt, dass F # genauso skalierbar ist wie Erlang.
Am meisten interessiert mich die Simulation, die viele schnell verarbeitete Nachrichten an persistente Knoten senden wird.
Wenn ich mit dem, was ich zu fragen versuche, keine gute Arbeit geleistet habe, bitten Sie um weitere Bestätigung.
Antworten:
Was meinst du mit "lebensfähig"? "Die meiste Presse" ist nicht unbedingt der beste Weg, um eine Sprache zu wählen.
Erlang's Anspruch auf Ruhm ist die Fähigkeit zur massiven Parallelisierung. Aus diesem Grund wird es häufig in Telefonschaltern von Ericsson verwendet. Erlang ist eine Software in Echtzeit, sodass Sie bestimmte Leistungsgarantien dafür abgeben können.
F # profitiert von den Optimierungsmöglichkeiten des .NET-Jitters. Darüber hinaus ist die Sprache selbst als leistungsstarke Funktionssprache konzipiert (es handelt sich um eine Variante von OCaml, die aufgrund ihrer Geschwindigkeit in der Finanzbranche weit verbreitet ist).
Letztendlich sollte F # der Aufgabe gewachsen sein, es sei denn, Sie möchten Millionen winziger Agenten gleichzeitig ausführen (wofür Erlang optimiert ist).
Auf dieser Seite werden die entsprechenden Anwendungsfälle für Erlang erläutert.
quelle
Zu diesem Thema können nur wenige objektive Aussagen getroffen werden, da die Leistung dieser beiden Sprachen stark von der Anwendung und dem Programmierstil abhängt.
Der einzige Rat, den ich geben kann, ist, dass F # den Leistungsvorteil eines statischen Systems hat und die CLR dies gut nutzt, um die Leistung zu verbessern. F # verfügt zwar über asynchrone Agenten und Nachrichtenübermittlung, wurde jedoch nicht optimiert, und der synchrone Code ist häufig mehr als zehnmal schneller.
Erlang ist dynamisch getippt, was einen erheblichen Leistungsnachteil mit sich bringt (erwarten Sie viel mehr Boxing), aber es wurde von Grund auf für die Unterstützung des schnellen Nachrichtenaustauschs zwischen asynchronen Agenten entwickelt, sodass es möglicherweise viel schneller ist als das entsprechende F #. . Ich habe jedoch keine Benchmark-Ergebnisse, um dies zu belegen: Es ist nur meine Erwartung.
Abgesehen davon sind sowohl Erlang als auch F # relativ Randsprachen mit kleinen Communities, und aufgrund ihrer unterschiedlichen Zielmärkte sind Personen, die mit beiden vertraut sind, selten. Die einzige Person, an die ich denken kann, die sich fast qualifiziert hat, ist Jesper Louis Andersen, aber ich bin mir nicht sicher, wie viel F # er getan hat.
quelle
Sie sollten diesen Beitrag von Joe Armstrong lesen: http://erlang.org/pipermail/erlang-questions/2012-February/064277.html
Das kurze daran ist, dass Erlang nicht dafür entwickelt wurde, schnell zu sein! In vielen Fällen ist es relativ schnell, aber das ist zweitrangig bei Problemen wie Fehlertoleranz und Stabilität.
Die Wahrheit ist, dass sowohl Erlang als auch F # nette Sprachen sind, und obwohl ich mir F # nur kurz angesehen habe, habe ich ein Buch über Erlang geschrieben: Erstellen von Webanwendungen mit Erlang und ich kann sagen, dass es eine unterhaltsame Sprache ist, in der man arbeiten kann.
Ich möchte auch darauf hinweisen, dass es einen Boom bei Büchern in funktionalen Sprachen zu geben scheint, die in den nächsten 6 bis 9 Monaten veröffentlicht werden. Ich kenne mindestens 4 auf Erlang (einschließlich meiner), eine auf Haskell sowie Titel auf OCaml, Clojure und F #.
quelle