質問

バージョン 1.0 から C# 開発者として活動してきた私は、過去数週間の自由時間を F# に費やしてきました。現在、コンピューターは 2、4 で販売されています。コアとマルチスレッドを実現するのは必ずしも簡単ではありません。

現時点では、F# には複雑なワークロードや重いワークロードに対する大きな可能性があることがわかりました。F# は (RTM になったら) エンタープライズ ソフトウェア市場の重要なプレーヤーになると思いますか?

役に立ちましたか?

解決

F# がエンタープライズ ソフトウェアに輸入されるかどうかに関係なく、どの言語でもコードの純粋な機能部分を分離できることが、マルチコア コンピューターの可能性を活用する鍵になると思います。たとえば、Microsoft の Parallel Extensions for .NET は優れていますが、並列実行できないコードを並列化することで間違いを犯す余地がまだたくさんあります。コードが純粋関数型言語または純粋関数型言語のサブセットの形式である場合は、確実に並列実行できます。重要なのは、仕事を割り当てる最も効率的な方法を見つけることです。

この点で F# が果たす役割は、人々がより宣言的な方法で考え始められるようにするための触媒としての役割を果たしていると言えます。

他のヒント

F# には、数学的モデリング (例:銀行/取引アプリケーション用)。関数から副作用を取り除くことは、並列処理とメモ化の大きな機会にもつながります。これらの言語が主流の開発に発展するかどうかを言うのは難しいですが、私の意見では、問題は人間指向である可能性が高いと思います(つまり、スキルが不足しており、技術的な言語ではなく、c#/java/c++ などの一般的な言語に精通している人にとっては学習時間がかかります。

私たちが目にすることになるのは、不変型の使用の増加や関数を純粋なものとしてマークするなど、いくつかの機能的なものが C# に移行されることです。エンタープライズ開発において F# がこれ以上幅広い役割を果たしているとは思えませんが、平均的な開発者にとってはあまりにも不可解すぎます。

C#/VB が常に主要な言語になりますが、複雑な問題には F# の方が優れています。C# はより汎用的ですが、F# は IA、統計、科学 (癌の治療法の発見など) などに優れています。F# が C# に取って代わることはありませんが、.NET がコンピューター サイエンスのより多くの分野で競争できるようになります。データ マイニングや大量のデータの処理については、SQL Server や oracle など、データベース内で直接開発する方が良いでしょう。

F# が学習するのが難しいのは、他のほとんどの言語の命令型の考え方によって私たちが「堕落」したからにすぎません。5年間学んだことを忘れるのは難しいです。また、私の経験上、ocaml と F# は楽しく使えます。F#/Ocaml に関して私が唯一不満を感じているのは、ほとんどの場合、型推論を使いすぎてコードが判読できなくなることです。保守を容易にするために変数の型を宣言したいと思います。

F# は、VB/C#/Java と比較して、常にニッチな言語になると思います。数学やコンピューター サイエンスのバックグラウンドがより必要になるためです。ただし、これが CLR 言語であるという事実自体が、以前の関数型言語よりもはるかに多くの注目を集める可能性があることを意味します。

私は投資銀行で働いており、アドホック スクリプトの目的ですでに F# を使用しています。システムへのより正式な統合を検討できるように、F# のリリース バージョンを非常に切望しています (ただし、基本的にはそのまま残る可能性があります)。 C# ベース)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top