2011-01-04 10 views
5

Powershellは一般的にWindowsのIT管理言語と見なされていますが、代わりにF#を選択するのはなぜですか?これは強く型付けされ、「Intellisensed」ですか?ITタスク:F#スクリプトとPowershellスクリプト

+0

スクリプトとプログラミングを繰り返すことはできません。 –

+5

@Filip私はそれが実際にスクリプティングとスクリプティングだと思います。私は個人的にこのような質問を解決するのは難しいですが。 –

+1

@Conrad、F#スクリプトはafaikではありません。 –

答えて

5

私が働いていた会社、それを使用するチーム、そして手近な仕事に適したF#を選ぶことにしました。そうでなければ私は別のものを選ぶだろう。

私はより多くの詳細がなくてより具体的にすることはできませんが、私はあなたが尋ねるべきいくつかの質問を提案することができます:

  1. をあなたが解決しようとしている問題は何ですか?
  2. どの言語で問題を解決するのが簡単ですか?
  3. 既存のスタッフF#開発者はいますか(つまり、学習曲線が含まれていると考えますか)?
  4. このコードを管理している人は管理者(通常、Powershellにはよく慣れていますが、&はF#に精通していません)ですか?

関連するヒント:プロダクションコードとインフラストラクチャで言語の開発を余儀なくされないようにしてください。

問題を解決するための最良の言語を見つけるためのすべての手段を試してみてください。ただし、誰かが理解できなくなった言語であなたのソリューションの中核コンポーネントを書いたのは5年後です。会社では、あなたの手に重大な問題があるかもしれません。

私の個人的な経験則(もちろん例外があります)は、問題のドメインに合わせて最初に選択する必要があることをプロジェクトにまとめておくためには、コア言語とスクリプト言語を一緒に保持する必要があります。&第二に、チーム全体の能力を最大限に引き出すことです。 「ペットの言語」はであり、生産コードまたはインフラストラクチャでは好ましくない。

2

あなたの問題とそのスクリプトを誰が維持するかによって異なります。

PowerShellは管理領域(ファイル、アクティブディレクトリ、csv/xml、コンピュータなど)で非常に強力ですが、プログラミング能力は非常に限られています(ジェネリックの場合など)。 PowerShellのスレッディングはそれほど簡単ではありません。しかし、誰も管理者からスレッドを使用することを期待している人はいません。代わりに、管理者のニーズに合ったバックグラウンドジョブがあります。

一方、F#は実際のプログラミング言語です。つまり、PowerShellと比較してかなり低いレベルであり、したがって冗長です。 PowerShellで書かれたいくつかのタスクは1ライナーですが、F#では多くのコードを記述します。それ以外に、リモートコンピュータでコマンドを実行するにはどうすればいいですか(Invoke-Command -computer myserver ...)?

ご覧のとおり、これは問題によって異なります。
スクリプトを維持するのは非常に重要です。あなたは休暇中であり、同僚はスクリプトを編集する必要があります。どちらの言語も学習に時間が必要です。 IMHO PowerShellを学ぶ方が簡単です。機能的なスタイルで考えることはあなたの頭を曲げる必要があります。

1

今の時点では、F#でスクリプトを書くことを選択するのは悪い考えかもしれません。

  1. F#話す人の幹部は非常に小さいので、ごく少数の人が読むか編集できるスクリプトを作成しています。
  2. fsi実行ファイルは.Net Frameworkに付属していませんし、F#ランタイム再配布パッケージには含まれていません(私が知る限り)。つまり、Visual Studio for F#ツールがインストールされている場所でのみスクリプトを実行できます。あなたはそれがを重要誰もが実行され、編集できるようになることを意味しますので、開発者は、F#が第一言語であるプロジェクトに取り組んでいる場合

明白な例外は、当然のことながら、ありますあなたのスクリプト。

しかし、私は、私もこの理想的な/例外的なケースでは、おそらくあなたのスクリプトタスクは、既存のコマンドレットがPowerShellであるそのためのタスクが含まれ場合のF#を使用する、より多くの作業ことだと思うことを言わなければなりません(つまり、ファイルシステムのタスク、レジストリ、データベースのメンテナンス、アクティブなディレクトリ、交換、リストの作成など)。もちろん、これらのスクリプトを言語を学ぶ機会として使用している場合は、1 & 2 ;-)

関連する問題