「Scala」(2009/08/31 (月) 23:07:45) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
scala:http://www.scala-lang.org/
基本JVM上で動作するバイトコードを吐く、静的だけど型推論により動的な、関数型オブジェクト指向言語だそうだ。
android上で動く。
GAE/J上で動く。
.Net用の msil を吐くライブラリがある。(.net でコンパイルできる)
[[Scala読物]]
[[ScalaDesignPatterns]]
[[scalaメモ]]
[[scala2.8変更点]]
Haskellぽい強力なパターンマッチング。
ErlangぽいActorモデル。
OCamlぽい型推論によるRubyぽい内部DSL向きな文法。
日本語でメソッド名とか変数名が書ける(ぉ)。
Rubyぽいカオスさ。
・Java言語作った人が「お気に入り」と発言したらしい。(http://www.adam-bien.com/roller/abien/entry/java_net_javaone_which_programming)
・Groovy言語作った人が「知ってたら作らなかった」と発言したらしい。(http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html)
・Ruby言語作った人は「残念だ」と発言してる。(なんでrubyist.net繋がんないの?)
ネタ:
・モジュール分割はオブジェクト指向、メソッドは関数型がわかりやすいかも(http://itpro.nikkeibp.co.jp/article/COLUMN/20090224/325385/?ST=develop)を検証する。
・rubyの[[moneta>>http://github.com/wycats/moneta/tree/master]]インタフェースをDuckTypingしたリソースライブラリ欲しい。(当面[[JRuby>>http://www.jruby.org/]]経由で[[Datamapper>>http://datamapper.org/doku.php]]あわせて使うか?)
・phpの[[bear>>http://code.google.com/p/bear-project/]]プロジェクトっぽいのが欲しい。
・そろそろ要求定義からの流れを統一的に扱えるフレームワークが出てきてもいいころかと。
・当面ラッパークラスの嵐になるのが悲しいのでpure scalaの勉強するべし。
・http://www.codelogy.org/archives/2008/02/scala.html#more
ツールやライブラリ:
sbaz available
で本家に登録されている一覧が出てくる。(日本語の説明は http://blog.takeda-soft.jp/blog/show/334)
|名前|説明|備考|
|[[sbt>>http://code.google.com/p/simple-build-tool/]]|Ant や Maven のようなBuild Tool。|Apache Ivy使ってるぽい。|
|[[ScalaTest>>http://www.artima.com/scalatest/]]|統一テスティング| |
|[[specs>>http://code.google.com/p/specs/]]|rspecクローン。|ソースきれい。|
|[[dispatch>>http://databinder.net/dispatch/About]]|HTTPクライアント|JSONとかOAuthとかもある|
|[[scala-migration>>http://code.google.com/p/scala-migrations/]]|activerecord-migrationクローン| |
|[[scalamodules>>http://github.com/hseeberger/scalamodules/tree/master]]|OSGi DSL| |
|Benchmark>>http://github.com/rakuto/benchmark-suite/tree/master|ベンチマーク| |
|[[browse>>http://github.com/harrah/browse/tree/master]]|scala src browser| |
|[[scala-query>>http://github.com/szeiger/scala-query/tree/master]]|jdbc base type-safe database api| |
|[[scalajdo>>http://github.com/ymnk/scalajdo/tree/master]]|JDOラッパー| |
|[[scalajpa>>http://github.com/dchenbecker/scalajpa/tree/master]]|JPAラッパー| |
|[[scala0.orm>>http://github.com/jjmmcc/scala0.orm/tree/master]]|ORM| |
|[[surf>>http://github.com/frank06/surf/tree/master]]|CouchDBラッパー| |
|[[simpledb-scala-binding>>http://github.com/rbarooah/simpledb-scala-binding/tree/master]]|AmazonSimpleDBラッパー| |
|[[sbinary>>http://code.google.com/p/sbinary/]]|バイナリシリアライザ/デシリアライザ。|protobufやmessagepackぽいもの。|
|[[scala-dataflow>>http://github.com/jboner/scala-dataflow/tree/master]]|Ozdataflowクローン| |
|[[jiva-ng>>http://code.google.com/p/jiva-ng/]]|遺伝的アルゴリズム toolkit| |
|[[smr>>http://github.com/dlwh/smr/tree/master]]|scara map reduce|hadoopラッパー?|
|[[kestrel>>http://github.com/robey/kestrel/tree/master]]|starlingクローン|twitter backend|
|[[cachet>>http://github.com/nkallen/cachet/tree/master]]|HTTP Cache Proxy| |
|[[scalax>>http://scalax.scalaforge.org/]]|The Scala Community Library| |
|[[scalanet>>http://github.com/stoyle/scalanet/tree/master]]|プロトコルライブラリ?| |
|[[spmd>>http://github.com/jonifreeman/spmd/tree/master]]|port mapper daemon| |
|[[mittelos>>http://github.com/psnively/mittelos/tree/master]]|Event Calculus reasoning?| |
|[[simplemodeler>>http://code.google.com/p/simplemodeler/]]|モデリング2src|Relaxerの浅海さん作|
|[[lift>>http://liftweb.net/]]|WEBフレームワーク|Smalltalk の seaside ぽい?|
|[[WebFlavor>>http://webflavor.sourceforge.net/reference_ja.html]]|WEBフレームワーク|web上で開発できるらしい。日本製|
|[[step>>http://github.com/alandipert/step/tree/master]]|sinatraクローン| |
|[[gdata-scala-client>>http://code.google.com/p/gdata-scala-client/]]|GDataクライアント| |
|[[scalify>>http://github.com/paulp/scalify/tree/master]]|java2scala| |
|[[Scalaz>>http://code.google.com/p/scalaz/]]|steroidz?| |
|ScalaCheck??|dataset + machinist + fakerクローン|テストデータ作成。|
|まだない?|rcovクローン|テストカバレッジ。[[jcoverage>>http://www.masatom.in/pukiwiki/Java/jcoverage/]]が使えるかも|
|まだない?|Heckleクローン|実装が壊れたときにテストが壊れるかどうか調べるツール|
|まだない?|rrクローン。|TestDoublesを実現。JRuby経由で十分か。[[RMock>>http://rmock.sourceforge.net/]]が使えるかも|
|必要ない?|cucumber+webratクローン|JRuby経由で十分か|
|必要ない?|trac/redmine+hadson/CruiseControl+TestLinkクローン|CIを実現。|
|必要ない?|rackクローン|jruby-rackで十分か。継続サーバっぽい使い方とかcometとか|
|[[optional>>http://github.com/DRMacIver/optional/tree/master]]|command line parsing| |
|[[scala-options>>http://github.com/aaronharnly/scala-options/tree/master]]|ruby-OptionParserクローン| |
|[[joins>>http://lamp.epfl.ch/~phaller/joins/]]|Join演算ライブラリ| |
|[[scala-parallel>>http://github.com/joshcough/scala-parallel/tree/master]]|パラレルコレクション?|JSR166|
|[[p5scala>>http://github.com/tjweir/p5scala/tree/master]]|processingラッパー| |
|[[ScalaIRCBot>>http://github.com/colder/scalaircbot/tree/master]]|ircポット| |
|[[scalampp>>http://github.com/alcides/scalampp/tree/master]]|XMPPサーバ|話題のjabberプロトコル喋るサーバ|
|[[qbert>>http://github.com/alandipert/qbert/tree/master]]|Actor based WEBサーバ| |
|[[dumpster>>http://github.com/jrudolph/dumpster/tree/master]]|webdavサーバ| |
|[[AIscala>>http://github.com/danielkr/aiscala/tree/master]]|AIライブラリ| |
メモ:
supervisor:http://jonasboner.com/2008/06/16/erlang-style-supervisor-module-for-scala-actors/
protobufサンプル:http://github.com/eishay/protobuf-object-competability-example/tree/master
toropy-scala:http://code.google.com/p/tropy-scala/
ScalaからMecabにアクセス:http://blog.xole.net/article.php?id=724
フィジカルコンピューティングデバイスGainerをscalaから触る:http://rainyday.blog.so-net.ne.jp/2009-01-04
scala + twitter :http://www.ibm.com/developerworks/jp/java/library/j-scala05059.html
scala:http://www.scala-lang.org/
基本JVM上で動作するバイトコードを吐く、静的だけど型推論により動的な、関数型オブジェクト指向言語だそうだ。
android上で動く。
GAE/J上で動く。
.Net用の msil を吐くライブラリがある。(.net でコンパイルできる)
[[ScalaMecab]]
[[Scala読物]]
[[ScalaDesignPatterns]]
[[scalaメモ]]
[[scala2.8変更点]]
Haskellぽい強力なパターンマッチング。
ErlangぽいActorモデル。
OCamlぽい型推論によるRubyぽい内部DSL向きな文法。
日本語でメソッド名とか変数名が書ける(ぉ)。
Rubyぽいカオスさ。
・Java言語作った人が「お気に入り」と発言したらしい。(http://www.adam-bien.com/roller/abien/entry/java_net_javaone_which_programming)
・Groovy言語作った人が「知ってたら作らなかった」と発言したらしい。(http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html)
・Ruby言語作った人は「残念だ」と発言してる。(なんでrubyist.net繋がんないの?)
ネタ:
・モジュール分割はオブジェクト指向、メソッドは関数型がわかりやすいかも(http://itpro.nikkeibp.co.jp/article/COLUMN/20090224/325385/?ST=develop)を検証する。
・rubyの[[moneta>>http://github.com/wycats/moneta/tree/master]]インタフェースをDuckTypingしたリソースライブラリ欲しい。(当面[[JRuby>>http://www.jruby.org/]]経由で[[Datamapper>>http://datamapper.org/doku.php]]あわせて使うか?)
・phpの[[bear>>http://code.google.com/p/bear-project/]]プロジェクトっぽいのが欲しい。
・そろそろ要求定義からの流れを統一的に扱えるフレームワークが出てきてもいいころかと。
・当面ラッパークラスの嵐になるのが悲しいのでpure scalaの勉強するべし。
・http://www.codelogy.org/archives/2008/02/scala.html#more
ツールやライブラリ:
sbaz available
で本家に登録されている一覧が出てくる。(日本語の説明は http://blog.takeda-soft.jp/blog/show/334)
|名前|説明|備考|
|[[sbt>>http://code.google.com/p/simple-build-tool/]]|Ant や Maven のようなBuild Tool。|Apache Ivy使ってるぽい。|
|[[ScalaTest>>http://www.artima.com/scalatest/]]|統一テスティング| |
|[[specs>>http://code.google.com/p/specs/]]|rspecクローン。|ソースきれい。|
|[[dispatch>>http://databinder.net/dispatch/About]]|HTTPクライアント|JSONとかOAuthとかもある|
|[[scala-migration>>http://code.google.com/p/scala-migrations/]]|activerecord-migrationクローン| |
|[[scalamodules>>http://github.com/hseeberger/scalamodules/tree/master]]|OSGi DSL| |
|Benchmark>>http://github.com/rakuto/benchmark-suite/tree/master|ベンチマーク| |
|[[browse>>http://github.com/harrah/browse/tree/master]]|scala src browser| |
|[[scala-query>>http://github.com/szeiger/scala-query/tree/master]]|jdbc base type-safe database api| |
|[[scalajdo>>http://github.com/ymnk/scalajdo/tree/master]]|JDOラッパー| |
|[[scalajpa>>http://github.com/dchenbecker/scalajpa/tree/master]]|JPAラッパー| |
|[[scala0.orm>>http://github.com/jjmmcc/scala0.orm/tree/master]]|ORM| |
|[[surf>>http://github.com/frank06/surf/tree/master]]|CouchDBラッパー| |
|[[simpledb-scala-binding>>http://github.com/rbarooah/simpledb-scala-binding/tree/master]]|AmazonSimpleDBラッパー| |
|[[sbinary>>http://code.google.com/p/sbinary/]]|バイナリシリアライザ/デシリアライザ。|protobufやmessagepackぽいもの。|
|[[scala-dataflow>>http://github.com/jboner/scala-dataflow/tree/master]]|Ozdataflowクローン| |
|[[jiva-ng>>http://code.google.com/p/jiva-ng/]]|遺伝的アルゴリズム toolkit| |
|[[smr>>http://github.com/dlwh/smr/tree/master]]|scara map reduce|hadoopラッパー?|
|[[kestrel>>http://github.com/robey/kestrel/tree/master]]|starlingクローン|twitter backend|
|[[cachet>>http://github.com/nkallen/cachet/tree/master]]|HTTP Cache Proxy| |
|[[scalax>>http://scalax.scalaforge.org/]]|The Scala Community Library| |
|[[scalanet>>http://github.com/stoyle/scalanet/tree/master]]|プロトコルライブラリ?| |
|[[spmd>>http://github.com/jonifreeman/spmd/tree/master]]|port mapper daemon| |
|[[mittelos>>http://github.com/psnively/mittelos/tree/master]]|Event Calculus reasoning?| |
|[[simplemodeler>>http://code.google.com/p/simplemodeler/]]|モデリング2src|Relaxerの浅海さん作|
|[[lift>>http://liftweb.net/]]|WEBフレームワーク|Smalltalk の seaside ぽい?|
|[[WebFlavor>>http://webflavor.sourceforge.net/reference_ja.html]]|WEBフレームワーク|web上で開発できるらしい。日本製|
|[[step>>http://github.com/alandipert/step/tree/master]]|sinatraクローン| |
|[[gdata-scala-client>>http://code.google.com/p/gdata-scala-client/]]|GDataクライアント| |
|[[scalify>>http://github.com/paulp/scalify/tree/master]]|java2scala| |
|[[Scalaz>>http://code.google.com/p/scalaz/]]|steroidz?| |
|ScalaCheck??|dataset + machinist + fakerクローン|テストデータ作成。|
|まだない?|rcovクローン|テストカバレッジ。[[jcoverage>>http://www.masatom.in/pukiwiki/Java/jcoverage/]]が使えるかも|
|まだない?|Heckleクローン|実装が壊れたときにテストが壊れるかどうか調べるツール|
|まだない?|rrクローン。|TestDoublesを実現。JRuby経由で十分か。[[RMock>>http://rmock.sourceforge.net/]]が使えるかも|
|必要ない?|cucumber+webratクローン|JRuby経由で十分か|
|必要ない?|trac/redmine+hadson/CruiseControl+TestLinkクローン|CIを実現。|
|必要ない?|rackクローン|jruby-rackで十分か。継続サーバっぽい使い方とかcometとか|
|[[optional>>http://github.com/DRMacIver/optional/tree/master]]|command line parsing| |
|[[scala-options>>http://github.com/aaronharnly/scala-options/tree/master]]|ruby-OptionParserクローン| |
|[[joins>>http://lamp.epfl.ch/~phaller/joins/]]|Join演算ライブラリ| |
|[[scala-parallel>>http://github.com/joshcough/scala-parallel/tree/master]]|パラレルコレクション?|JSR166|
|[[p5scala>>http://github.com/tjweir/p5scala/tree/master]]|processingラッパー| |
|[[ScalaIRCBot>>http://github.com/colder/scalaircbot/tree/master]]|ircポット| |
|[[scalampp>>http://github.com/alcides/scalampp/tree/master]]|XMPPサーバ|話題のjabberプロトコル喋るサーバ|
|[[qbert>>http://github.com/alandipert/qbert/tree/master]]|Actor based WEBサーバ| |
|[[dumpster>>http://github.com/jrudolph/dumpster/tree/master]]|webdavサーバ| |
|[[AIscala>>http://github.com/danielkr/aiscala/tree/master]]|AIライブラリ| |
メモ:
supervisor:http://jonasboner.com/2008/06/16/erlang-style-supervisor-module-for-scala-actors/
protobufサンプル:http://github.com/eishay/protobuf-object-competability-example/tree/master
toropy-scala:http://code.google.com/p/tropy-scala/
ScalaからMecabにアクセス:http://blog.xole.net/article.php?id=724
フィジカルコンピューティングデバイスGainerをscalaから触る:http://rainyday.blog.so-net.ne.jp/2009-01-04
scala + twitter :http://www.ibm.com/developerworks/jp/java/library/j-scala05059.html
表示オプション
横に並べて表示:
変化行の前後のみ表示: