先日2011年8月27日に Tech Party 2011 協賛という形で開催された CLR/H 第61回勉強会。
この勉強会の最終セッションは、「F# ディスカッション」と題して、
@nobuhisa_k さんの進行のもと、
@zecl さんと私もパネリストとして前に出て、F# について色々しゃべらせて頂いた。
その席で披露できなかったネタとおさらい x あわせて2点を、ここに投稿しておく。
C# をシンプルにしていったら...あらら F# になっちゃたよ! の巻
Twitter のタイムライン上で拾った話題。
https://twitter.com/#!/yukihiro_matz/status/83361049759330304
リンク先は下記。
http://trelford.com/blog/post/LighterCSharp.aspx
「C# の構文ってうざくね?」
「もっとシンプルにした架空の構文を考えてみよう!」
「ブラケット邪魔だね。オフサイドルールで要らなくなるね。」
「あのXMLドキュメントコメントうざくね? 三発スラッシュだけでいいじゃん。」
というノリに始まり、
「状態が不変なら、クラスじゃなくてクロージャで足りるんじゃ?」
などと進めているうちに、
「あれ? これって F# じゃね?」
というオチ。
これはなかなか面白い記事である。
F# ディスカッション中では「F# で書けば C# に比べて行数が減る」という話もでた。
それは関数型としてのパラダイムシフトによる効果だけでなく、こういった構文ベースでの貢献もあるだろう。
その観点でこの記事は具体的で説得力がある。
かつ、今 C# やそれに類似した言語に慣れている人たち ― 自分も含めて ― に「これなら F# もわかるかも」という気にさせてくれる逸品な記事である。
F# スクリプトを実務に使った事例
ディスカッション中は具体例に触れていなかったので、以下に二つほど紹介させて頂く。
まずは
@neuecc さんのブログ記事から。
NuGetパッケージの作り方、或いはXmlエディタとしてのVisual Studio
http://neue.cc/2011/01/22_298.html
記事の中核は NuGet パッケージの作り方なのだが、ここで、NuGet パッケージ用のマニフェストファイル ( .nuspec ) の生成や Zip 圧縮など、Visual Studio でのビルドプロセスのあとのパッケージング作業を F# スクリプトにさせているのだ。
ビルドで出来上がったアセンブリのバージョン情報を読み取るなど、.NET Framework を活用したスクリプト言語としての F# の活用には脱帽である。
次に拙著のブログ記事を紹介しておく。
F# でローカルマシンの Users グループに所属するユーザーを一覧表示する
http://devadjust.exblog.jp/12701036/
詳しくは上記記事をご参照頂くということで割愛するが、まぁとにかく、上記のような IT アドミニストレーション的な作業にも F# スクリプトは大活躍するよ! ということである。
C# や VB など .NET 言語がメインの DevOps な方には、もしかしたら PowerShell と使い分けるよりも、.NET を自然に呼び出せる & 簡潔な構文の F# のほうが利があるかもね! というのが私の持論。
なお、私が F# スクリプトをオススメする背景については過去の投稿(下記)などをあわせてご参照頂けると幸いである。
スクリプト言語としてのF# - .fsx は強力だった!
http://devadjust.exblog.jp/12700495/
以上。