Ich bin CTO einer Softwarefirma mit einer großen vorhandenen Codebasis (alles in C #) und einem großen Engineering-Team. Ich kann sehen, wie bestimmte Teile des Codes in F # viel einfacher zu schreiben wären, was zu einer schnelleren Entwicklungszeit, weniger Fehlern, einfacheren parallelen Implementierungen usw. führen würde. Dies ist im Grunde genommen ein Produktivitätsgewinn für mein Team. Bei der Einführung von F # sehe ich jedoch auch einige Produktivitätsprobleme:
1) Jeder muss F # lernen, und es ist nicht so trivial, wie beispielsweise von Java auf C # zu wechseln. Teammitglieder, die F # nicht gelernt haben, können nicht an F # -Teilen der Codebasis arbeiten.
2) Der Pool an anstellbaren F # -Programmierern ist ab sofort (Dezember 2010) nicht mehr vorhanden. Durchsuchen Sie verschiedene Datenbanken für Softwareentwickler-Lebensläufe nach "F #", wobei weniger als 1% der Lebensläufe das Schlüsselwort enthalten.
3) Community-Unterstützung ist ab sofort (Dezember 2010) weniger verfügbar. Sie können fast jedes Problem in C # googeln und jemanden finden, der sich bereits damit befasst hat, nicht so mit F #. Die Unterstützung von Tools von Drittanbietern (NUnit, Resharper usw.) ist ebenfalls lückenhaft.
Mir ist klar, dass dies ein bisschen Catch-22 ist, dh wenn Leute wie ich kein F # verwenden, werden die Community und die Tools niemals zustande kommen usw. Aber ich muss eine Firma leiten, und ich kann auf dem neuesten Stand sein, aber nicht ausblutend.
Irgendwelche anderen Fallstricke, über die ich nicht nachdenke? Oder möchte jemand die erwähnten Fallstricke widerlegen? Ich denke, dies ist eine wichtige Diskussion und würde gerne Ihre Gegenargumente in diesem öffentlichen Forum hören, die viel dazu beitragen könnten, die Akzeptanz von F # in der Industrie zu erhöhen.