どこでも使える F#
自分について
 宮坂 雅彦
 @omanuke
 主に株式会社トレードワークスという会
社で金融向けのソフトを作成
 F# 大好き
 でもモナドとかよくわかってない
作ってきたもの・作ってるもの
 商品先物ホームトレードのチャート (C++-ActiveX)
 商品先物取引システムのチャート (C++-MFC)
 FX 向けチャートプロトタイプ (C#-Silverlight)
 ネット証券デイトレードツールのチャート (F#-
WindowsForms)
 ネット証券の Azure 上でチャート画像作成 (F#)
 iPhone のアプリのチャート (F#-Xamarin)
 タブレット向け Web チャート (F#-HTML5(WebSharper))
 KAMIGRA という手描きノートストアアプリを最近リリース
しました。
http://apps.microsoft.com/windows/ja-jp/app/kamigra/ab8e7
今ここー>
F# についてざっくり
 MS 製の .NET 向け関数型言語
 OCaml ライクな文法
 静的型付け
 関数型とオブジェクト指向のハイブリッド
 デフォルトイミュータブルだが副作用を許容
 Actor や非同期処理など組み込み
 モナド的な仕組みもある
(ComputationExpressions)
F# についてざっくり
 OCaml な方にそんなキモイ記述できる
言語と一緒にするなと怒られた
 よくわからないですが、多態 Variant と
か OCaml のナイスな機能がないらしい
 型クラスほしいよ型クラス (CLR チーム
が実装してくれないので実装してない )
サーバー
UI 、クライアント
.NET
.NET
Forms
WPF
MONO
MONO
PCL MONO
ASP.NET
WEB API
MVC5
AZURE
Amazon
Xamarin
 C# で iOS/Android など含めクロスプラット
フォーム開発できる環境
 ベースは Mono 。元 MonoTouch ・
MonoDroid といわれていたもの。
 ネイティブアプリを開発できる。 iOS は AOT
コンパイル。 Andoird では JIT 。
 Mac …向けもある。まだ成熟してないらしい
 MS もがっつり協力してる模様
Xamarin
 C# でといいましたが、 F# でも開発できる
。
 中の人も前向きらしい。 F# コミュのハッ
カーな人も参加して機能追加してる。
 前述の PCL だけでなく、 UI 含めて全てを
F# だけで開発できる ( らしい )
 とりあえず窓用に作った PCL のチャートは
何事もなくさっくり動いた。今も動作は問題
なし。
サーバー
UI 、クライアント
.NET
.NET
Forms
WPF
MONO
MONO
PCL MONO
Xamarin
Xamarin
WebSharper
 F# で使える、 AltJS 。オプソにもなってる
けど商用利用は有料。
 ほんとは AltJS というよりも Web サーバー
とのやり取りも一緒に書ける開発環境らしい
。
 …気持ち開発者少ないような 日本人でまとも
に使ってる人他にいるのか不安 ( ; ´∀ ` )
WebSharper
 今がちで使ってますが、変な挙動とか ( 割と )
なく安定して開発できてる。
 生成される js も元のソースを辿れデバッグで
きるレベルで出してくれる。
 窓向けだと OK な書き方がだめだったりバ
グっぽいのもあったりするけど回避可能。
 とりあえず今実案件で iOS 用と将来の窓向け
にも使うチャートモジュールと一緒にワン
ソースで開発中。
サーバー
UI 、クライアント
.NET
.NET
Forms
WPF
MONO
MONO
PCL MONO
Xamarin
Xamarin
WebSharper
PCL …だけ (´ ・ ω ・
` ) MS 様おなしゃす ( ; ´Д
` )
…他にも
 Raspberry pi
 GPU Programming
 R
 Xamarin で Google Glass
 Unity
※ 詳しくは未確認
…です (´ ・ ω ・`
)
詳しくはこちらで The F# Software Foundation
ワンソースで作ってみた・アプリの構造
ワンソースで作ってみた・プロジェクトの構造
DEMO
「そんな言語で大丈夫か?」
「大丈夫問題ない」

どこでも使えるF sharp again pub

Editor's Notes

  • #7 去年大きな動きが。
  • #12 他のAltJS知らないのですが…