Wird es eine funktionale Sprache geben, die für die Java-Community das tut, was F# für die .NET-Community tut?
Welche funktionalen Programmiersprachen sind für die JVM verfügbar bzw. in Entwicklung?
Wird es eine funktionale Sprache geben, die für die Java-Community das tut, was F# für die .NET-Community tut?
Welche funktionalen Programmiersprachen sind für die JVM verfügbar bzw. in Entwicklung?
Es gibt eine gute Liste von Programmiersprachen für JVM, einschließlich des funktionalen Programmierparadigmas und anderer Paradigmensprachen auf:
Meine erste Wahl ist Scala (Multi-Paradigma; OO & FP), ich verbrachte mehr als 5 Monate mit Scala im Jahr 2009 und erstellte ein kurzes Referenzblatt: bchiprog.blogspot.com/2009/05/scala-cheat-sheet.html
Ich habe festgestellt, dass es andere interessante Programmierparadigmen gibt, die sich auf die parallele Verarbeitung konzentrieren, wie X10, Fortress und Chapel. X10 ist auf der Grundlage von Scala implementiert - http://www.scala-lang.org/sites/default/files/odersky/scalaliftoff2009.pdf
Es kommt wirklich darauf an, welches Problem Sie lösen müssen, und dann wählen Sie die Sprache, die es am besten lösen kann. Ich denke, es ist der Wunsch der Entwickler, dass es eine Sprache gibt, die jede Art von Problem leicht und einfach lösen kann.
Das ändert nichts daran... Ich sagte "so mainstream wie die anderen .NET-Sprachen", und ich bleibe dabei. Ich gehe davon aus, dass es in den meisten Unternehmenssystemen für eine beträchtliche Zeit mehr Nicht-FP-Code als FP-Code geben wird.
@Marc: Ich bin mir nicht sicher, was Ihre beiden Vorhersagen bedeuten. Ist IronPython eine Mainstream-.NET-Sprache? Ist nicht der meiste F#-Code in der Praxis nicht-FP? Ich denke, FP ist im Zusammenhang mit F# oft ein Ablenkungsmanöver. Die Leute stürzen sich auf FP, weil sie den Haskell-Hype hören, aber in der Praxis ist es nicht sehr wichtig. Die praktischen Vorteile von F# liegen woanders...
Ich könnte mich zwar irren, aber ich erwarte nicht, dass F# so weit verbreitet sein wird wie die anderen .NET-Sprachen; nützlich in einigen wenigen Kreisen (akademisch, Compiler, ein paar andere Szenarien) - aber vergessen Sie nicht, dass C# bietet FP-Nutzung - und es wird jedes Mal besser: C# 1.2 hat Delegates; C# 2.0 hat anonyme Methoden und Captures/Closures; C# 3.0 hat Lambdas zur Vereinfachung und Expression zur Abstraktion. Anonyme Typen (C# 3.0) teilen algunos Ähnlichkeit mit Tupeln (in Bezug auf die Bequemlichkeit), aber offensichtlich sind sie sehr unterschiedliche Tiere, so dass definitiv nicht ein Gleich-für-gleich-Vergleich.
Vielleicht nicht ganz so optimiert wie F#, aber für die meisten alltäglichen FP-Anwendungsfälle mehr als ausreichend.
Es ist auch ganz klar, dass eine bessere Unterstützung für Unveränderlichkeit (vor allem für Threading) ist sehr viel auf den Köpfen der C # Sprache Team für die Zukunft zu prüfen.
Ich setze darauf, dass C# bei FP besser wird und für die meisten alltäglichen Zwecke das .NET-FP-Angebot ist. Natürlich wird es einige F# Nutzung - aber (rein subjektiv) Ich sehe einfach nicht, dass es eine große Migration.
Er beantwortet die Frage nicht. Selbst wenn F# irrelevant bleibt, könnte die Frage nach der entsprechenden irrelevanten FP-Sprache für die JVM lauten.
@Jon Harrop: Diese Diskussion hatten wir schon einmal ;-p Aber ja, absolut: Ich gehe davon aus, dass die Leute größtenteils bei C# bleiben werden. Es gibt eine Nische, in der F# wünschenswert sein könnte, aber ich persönlich kann mir keine große Migration vorstellen. Möchten Sie dem etwas Konkreteres als nur ein "-1" entgegensetzen?
Downvoters; bitte geben Sie mir einen Hinweis was mit denen Sie nicht einverstanden sind? Das würde ich gerne wissen... sind es verärgerte F#-Fans? Gut: dann sagen Sie mir lieber, was Sie denken, als einfach nur abzustimmen. warum Sie glauben, dass F# eine Auswirkung haben wird auf die allgemein .NET-Gemeinschaft. Ich stimme zu, dass es Verwendungen gibt in sehr spezifisch Szenarien, aber für den meisten allgemeinen Line-of-Business-Code ist es einfach nicht das am besten geeignete Werkzeug. Wenn die Leute wütend sind, habe ich die Frage nicht beantwortet (d.h. FP für die JVM): IMO, die Prämisse der Frage ist falsch, und dazu stehe ich...
Ich würde hinzufügen https://eta-lang.org zu den Vorschlägen - es ist im Grunde ein Haskell für die JVM. Ich denke, die Frage steht im Einklang mit der Tatsache, dass F# eine ML-Sprache ist, während Clojure ein Dialekt von LISP ist.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.