君(Scalaz)は僕(FSharpx)に似て
          いる

       pocketberserker


      2012 年 10 月 20 日
自己紹介




• 中山 / なかやん / ぺんぎん
• @pocketberserker / id:pocketberserker
• どこにでもいるふつーのサーガ大学院生
• F# / Haskell / Erlang / (Scala) / テスト
• 最近は FSharpx を触ってます
タイトルは釣り?
タイトルは釣り?




1. 立場は似ている?
タイトルは釣り?




1. 立場は似ている?
2. 状況も似ている?
タイトルは釣り?




1. 立場は似ている?
2. 状況も似ている?
3. 触っている人口数は圧倒的に異なる
Scalaz
Scalaz




“Scalaz: Type Classes and Pure Functional Data
              Structures for Scala”
FSharpx
FSharpx




    “FSharpx is a library for the .NET platform
implementing general functional constructs on top
             of the F# core library.”
GitHub で調べてみた(本日時点)
GitHub で調べてみた(本日時点)




• Scalaz. . . Contributors:21, fork:120
GitHub で調べてみた(本日時点)




• Scalaz. . . Contributors:21, fork:120
• FSharpx. . . Contributors:16, fork:44
  


     実際全然違う?
でも共通している
 部分もある
どのあたりが?
どのあたりが?




Core 部分は割と似ているものが並んでいる
    というわけでここからは Core の話
機能一部抜粋



• Validation
• Lens
• Iteratee
• etc. . .
なぜ似ている?
なぜ似ている?




Haskell 参考にしているし、FSharpx は Scalaz も
          参考にしていたりする
というわけで
というわけで




僕(FSharpx)が君(Scalaz)に似ている
ちなみに



• Scalaz から FSharpx に移植しようとすると
 詰む
ちなみに



• Scalaz から FSharpx に移植しようとすると
  詰む
• 文法や機能が違いすぎる
ちなみに



• Scalaz から FSharpx に移植しようとすると
  詰む
• 文法や機能が違いすぎる
• なので Haskell から FSharpx に移植するほう
  が楽
ちなみに



• Scalaz から FSharpx に移植しようとすると
  詰む
• 文法や機能が違いすぎる
• なので Haskell から FSharpx に移植するほう
  が楽
• とはいえ、妥協点は常に探らねばならない
Scalaz にあって FSharpx にないもの
Scalaz にあって FSharpx にないもの




• 技術的にあきらめているもの
Scalaz にあって FSharpx にないもの




• 技術的にあきらめているもの
• Free とか IO とか云々
共通の問題点




ライブラリが巨大すぎる!
というと?
というと?



• Haskell だったら十数パッケージに分解され
 ている
というと?



• Haskell だったら十数パッケージに分解され
  ている
• それが 1 個に集約されているということは. . .
というと?



• Haskell だったら十数パッケージに分解され
  ている
• それが 1 個に集約されているということは. . .
• うん、まぁ. . .
究極の問題




開発者全員が FSharpx(Scalaz)を使えるのか!
                            ?
まとまっていないまとめ



• FSharpx は Scalaz に似ている(部分がある)
• 言語の勉強には最適(な気がする)
• ライブラリがファットマン
• プロジェクトメンバー全員の錬度が高くない
 と仕事では. . .
続きはゆるふわ F# 勉強会(?)で!

Scala基礎勉強会 懇親会LT