3 Stimmen

F# und Unternehmenssoftware

Als C#-Entwickler seit Version 1.0 hat F# in den letzten Wochen meine Freizeit in Beschlag genommen. Computer werden jetzt mit 2, 4 Kernen verkauft und Multi-Threading ist nicht immer einfach zu bewerkstelligen.

Im Moment sehe ich, dass F# ein großes Potenzial für komplizierte und oder schwere Arbeitslasten hat. Glauben Sie, dass F# (sobald RTM) ein wichtiger Akteur auf dem Markt für Unternehmenssoftware werden wird?

3voto

Chris Punkte 583

Ich denke, dass F# eine große Chance hat, in einige Nischenbereiche von Unternehmensanwendungen vorzudringen, wie z. B. mathematische Modellierung (z. B. für Bank-/Handelsanwendungen). Die Entfernung von Seiteneffekten aus Funktionen führt auch zu großartigen Möglichkeiten für Parallelität und Memoisierung. Es ist schwer zu sagen, ob sich diese Sprachen jemals für die Mainstream-Entwicklung durchsetzen werden, aber meiner Meinung nach sind die Probleme eher menschlicher Natur (d.h. fehlende Fähigkeiten und hohe Lernkurve für Leute, die mit typischeren Sprachen wie c#/java/c++ vertraut sind) als technischer Natur.

2voto

fryguybob Punkte 4280

Unabhängig davon, ob F# für Unternehmenssoftware wichtig wird, denke ich, dass die Möglichkeit, rein funktionale Teile des Codes in jeder Sprache zu isolieren, der Schlüssel zur Nutzung des Potenzials von Multicore-Computern sein wird. Microsofts Parallelerweiterungen für .NET sind zum Beispiel großartig, aber es gibt immer noch viel Raum für Fehler, wenn man Code parallelisiert, der nicht parallel ausgeführt werden kann. Wenn der Code in Form einer rein funktionalen Sprache oder einer Teilmenge Ihrer Sprache vorliegt, die rein funktional ist, dann können Sie sicher sein, dass Sie ihn parallel ausführen können. Der Trick besteht dann darin, den effizientesten Weg zu finden, die Arbeit zu verteilen.

Die Rolle, die F# dabei spielt, würde ich eher als Katalysator sehen, um den Leuten die Füße nass zu machen und sie dazu zu bringen, in einer deklarativen Weise zu denken.

1voto

AnthonyWJones Punkte 182582

Ich denke, wir werden sehen, dass einige funktionale Dinge in C# migriert werden, wie z. B. die zunehmende Verwendung von unveränderlichen Typen und die Kennzeichnung von Funktionen als rein usw. Ich kann mir nicht vorstellen, dass F# eine größere Rolle in der Unternehmensentwicklung spielen wird, da es für den durchschnittlichen Entwickler einfach zu rätselhaft ist.

1voto

Pascal Punkte 11

C#/VB werden immer die Hauptsprachen sein, aber F# ist besser für komplexe Probleme. C# ist vielseitiger, während F# besser für IA, Statistik, Wissenschaft (z. B. die Heilung von Krebs) usw. geeignet ist. F# wird C# nie ersetzen, aber es wird .NET ermöglichen, in mehr Bereichen der Informatik zu konkurrieren. Für Data Mining und die Verarbeitung großer Datenmengen ist es besser, direkt in der Datenbank zu entwickeln - wie SQL Server oder Oracle.

Dass F# schwer zu lernen ist, liegt nur daran, dass wir von der imperativen Denkweise der meisten anderen Sprachen "verdorben" wurden. Es ist schwer, etwas zu verlernen, was man 5 Jahre lang macht! Außerdem ist es meiner Erfahrung nach eine Freude, Ocaml und F# zu benutzen. Das einzige, was ich an F#/Ocaml zu bemängeln habe, ist, dass die meisten Leute die Typinferenz überstrapazieren, was den Code unleserlich macht. Ich würde lieber Variablentypen deklarieren, um die Wartung zu vereinfachen.

0voto

Chris Ballard Punkte 3731

Ich denke, dass F# im Vergleich zu VB/C#/Java immer eine Nischensprache bleiben wird, da es mehr einen mathematischen oder computerwissenschaftlichen Hintergrund erfordert. Allein die Tatsache, dass es sich um eine CLR-Sprache handelt, bedeutet jedoch, dass sie eine viel größere Verbreitung haben wird als frühere funktionale Sprachen.

Ich arbeite in einer Investmentbank und wir verwenden F# bereits für einige Ad-hoc-Skripte. Wir sind sehr daran interessiert, eine freigegebene Version von F# zu sehen, damit wir eine formellere Integration in unsere Systeme in Betracht ziehen können (obwohl sie wahrscheinlich grundsätzlich auf C# basieren werden).

CodeJaeger.com

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.

Powered by:

X