Frage

Als ein C # -Entwickler seit Version 1.0, hat F # meine freie Zeit für die letzten Wochen gefangen. Computer sind jetzt mit 2, 4 .. Cores verkauft und Multi-Threading ist nicht immer einfach zu bewerkstelligen.

Im Moment sehe ich, dass F # großes Potenzial für die komplizierte hat und oder hohe Arbeitsbelastung. Glauben Sie, dass F # wird (einmal RTM) ein wichtiger Akteur in dem Enterprise-Software-Markt werden?

War es hilfreich?

Lösung

Ich denke, unabhängig davon, ob F # wird Import für Enterprise Software rein funktionale Teile des Codes in jeder Sprache wird zu isolieren, in der Lage sein, um das Potenzial von Multi-Core-Computern zu verwenden. Zum Beispiel Microsofts Parallel Extensions for .NET sind groß, aber es gibt noch viel Raum, Fehler zu machen, indem Code parallelisieren, die nicht parallel ausgeführt werden können. Wenn der Code in Form einer reinen funktionalen Sprache oder eine Teilmenge der Sprache ist, die rein funktional ist, dann sind Sie sicher sein, dass Sie es parallel ausführen können. Der Trick ist, dann heraus herauszufinden, den effizienteste Weg, um die Arbeit zu vergeben.

Die Rolle, die F # spielt in dieser würde ich sagen mehr als Katalysator Menschen wäre zu bekommen nasse Füße und beginnen in einer deklarativen Weise zu denken.

Andere Tipps

ich denke, F # große Chance hat Einbrüche einige der Nischenbereiche von Enterprise-Applikationen zu machen wie mathematische Modellierung (zum Beispiel für Banken / Handel-Anwendungen). Entfernen von Nebenwirkungen von Funktionen führt auch zu große Chancen für die Parallelität und memoization. Es ist schwer zu sagen, ob diese Sprachen jemals für Mainstream-Entwicklung ausziehen ist schwer zu sagen, aber meiner Meinung nach sind die Probleme eher menschlich orientiert sein (dh Mangel an Fähigkeiten und eine hohe Lernkurve für die Menschen mit typischeren Sprachen wie C # / java / c ++) eher als technisches.

Was ich denke, wir werden ist sein zu sehen, dass einige funktionelle Sachen in C # wie die Erhöhung Verwendung von unveränderlichen Typen und die Markierungsfunktionen als reine usw. wandern kann ich nicht F #, die eine umfassendere Rolle in der Unternehmensentwicklung sehen ihre einfach zu mystifizieren auf den durchschnittlichen Entwickler.

C # / VB wird immer die wichtigsten Sprachen, aber F # ist besser bei komplexen Problemen. C # ist allgemeiner Zweck, während F # ist besser auf IA, Statistiken, Wissenschaft (Suche nach der Heilung von Krebs, zum Beispiel), usw. F # wird nie C # ersetzen, aber es wird .NET ermöglichen, in mehr Bereichen der Informatik zu konkurrieren. Wie für Data Mining und die Verarbeitung großer ammounts von Daten, sind Sie besser dran, direkt in der Datenbank developping -. Wie SQL Server oder Oracle

Wie bei F # hart sein zu lernen, ist es nur, weil wir durch den Imperativ Weg „beschädigt“ wurden in den meisten anderen Sprachen zu denken. Es ist schwer, etwas, das Sie für 5 Jahre tun verlernen! Auch in meinem exprience, ocaml und F # ist eine Freude zu bedienen. Die beschweren nur ich habe für F # / Ocaml ist, dass die meisten der Zeit, die Menschen, die Typinferenz Übernutzung, die der Code unleserlich macht. Ich würde eher Variablentypen erklären, um es einfacher zu halten.

ich denke, F # immer eine Nische Sprache, im Vergleich zu VB / C # / Java, weil es eher einem mathematischen oder Informatik Hintergrund erforderlich macht. Doch die Tatsache, dass es sich um eine CLR-Sprache bedeutet, ist, dass es viel größer Exposition als früher funktionale Sprachen hat.

ich in einer Investmentbank arbeiten und wir sind bereits mit F # für einige Ad-hoc-Scripting-Zwecke, sind wir ziemlich daran interessiert, eine freigegebene Version von F #, um zu sehen, so dass wir mehr formale Integration in unsere Systeme berücksichtigen können (obwohl sie wahrscheinlich grundsätzlich C # bleiben basiert).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top