第1回 Scala座
9/4 に、第1回 Scala座に行ってきました。
- これまでのScala、これからのScala
- これまで編
- Scalaって
- Less typing を目指した言語仕様
- 型推論とか
- メソッド名短め
- 型推論
- ファーストクラス関数とクロージャ
- パターンマッチ
- switch 文を超強力で柔軟にしたもの
- オプション型便利
- List の headOption, reduceLeftOption とか
- List が空だと None を返す
- List の headOption, reduceLeftOption とか
- trait による Mix-in
- 実装を持てるインタフェース的な
- Read-Eval-Print Loop (REPL)
- 対話型評価環境
- テスト書く → REPLで確認 → コードに書く → テストする → (黄金の回転!)
- Scala は公式 LL!
- Scala Way
- 事例
- みんな大好きついったーのバックエンドも一部 Scala で動いてます
- 他にも沢山
- これから編
- これまで編
scala> val fib:Stream[Int] = Stream.cons(0, fib.scanLeft(1)(_+_)) fib: Stream[Int] = Stream(0, ?) scala> fib take 20 foreach (x => printf("%d ", x)) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
- Scalaでプレゼンテーションの試み
- ScalaDaysに行ってみて
- Scala Days 2010
- スイスで開催
- Martin Odersky先生やScalaチームの人に会える!
- 全発表の動画が公式ページから視聴できる!
- 発表
- PEGEX について
- kmizu さん
- パターンマッチライブラリPEGEXについて
- School Days ネタ通じず
- 英語の聞き取り能力大事
- 話す方は身振り手振りでなんとかなる
- A Case Study in DSL Development
- Automated Refactoring for Scala
- Lightweight Language Processing in Kiama and Scala
- 言語処理ライブラリの話
- Lightweight language support for type-based, concurrent event processing
- 型情報を使ってScalaのActorライブラリを最適化
- コードサイズは殆ど同じ
- 劇的に性能改善
- 型情報を使ってScalaのActorライブラリを最適化
- Named and Default Arguments in Scala
- 名前付き引数とデフォルト引数についての話
- 継承やジェネリクスが絡むと複雑
- 型チェックは呼び出し側で行われる
- Automatic refactoring for Scala programs
- An Experiment with Automatic Resource Management
- Type-safe SQL embedded in Scala
- Scala at LinkedIn
- Migration a Struts/Java vE-Mail Application to Lift/Scala
- The Scala IDE for Eclipse
- sbt
- Processing with Spde
- Processing の Scala 版である、Spde の話
- 無名関数などを活用して、Processing よりも簡潔にコードを書ける
- Sneaking Scala Into Your Organization
- The Future of Scala
- グループ毎に Scala の未来について議論する
- 都合により参加できず。
- PEGEX について
- Scala Days 延長戦
- Scala Days 2010
- ScalaでAndroidアプリ開発
- Androidアプリが動くまで
- ソース → .class ファイル → .dex ファイル → .apk ファイル → インストール、実行
- 数十秒かかる
- ソース → .class ファイル → .dex ファイル → .apk ファイル → インストール、実行
- メソッド名を間違えた場合
- 動的型付け言語の場合
- インストールまでして、実行時に初めてエラー
- Scala の場合
- ソースからのコンパイル時にエラー
- 動的型付け言語の場合
- Java と比べて、無名関数とか暗黙の型変換とか便利
- Java っぽく書くことも出来る
- デメリット
- アプリサイズが大きくなる
- 同機能のJava実装と比較して 4 〜 5 倍程度
- protected static メンバにアクセス不可
- 現状は Java 側でラッパーを用意しておくしかない
- Google Maps API (maps.jar) 使うとコンパイルエラー
- 次期バージョン (2.8.1) で修正される予定
- アプリサイズが大きくなる
- 環境
- Androidアプリが動くまで
- Web Flavor
- GAEでLiftやってみた
- → GAE で関数的 Web フレームワーク Lift を使う
- 事例
- Lift について
- 関数的Webフレームワーク
- 他のWebフレームワークと比べて最も特徴的な部分
- Ajax、セッション管理、テンプレート、ORマッピングなど、Webアプリで必要なものは大体ある
- 関数的Webフレームワーク
- プロジェクトの作成
- maven があれば非常に簡単
- コマンドで一発
- maven があれば非常に簡単
- ビルド、テスト、デバッグ
- ビルド、テストはmavenで一発
- ローカルで確認できる
- GAEサーバへのデプロイもコマンドで
- 関数的な部分
- やっててよかった関数型言語
- その他の便利な関数型言語
- まとめ
- Scala, Lift 超便利
- maven があれば簡単ポン
- より詳しい情報は、「GAE/JによるScala/Liftアプリケーション開発」
- caseクラス、高階関数、モナドとか、恐れずに触ってみるといい
- 名古屋Scala勉強会に是非
- 関数型言語Scalaで実装する型推論
- LT
- ScalaでHadoopを動かしてみた
- implicit conversion 便利
- HadoopのMapが簡単に書ける
- implicit conversion 便利
- Lift on GAE/J
- Lift + GAE は制約が多く大変
- Scala2.8でひるまのおしごとしてみたよ
- Scala×Silverlight
- Silverlight
- MS版Flash
- ScalaをSilverlight上で動かす
- scala-msil を使う
- うまくいかない...
- バイナリ弄ればいいじゃん (天使ちゃん(ry)
- 動いた。
- バイナリ弄ればいいじゃん (天使ちゃん(ry)
- うまくいかない...
- Silverlight
- ScalaプログラマのためのF#
- Scala ワンライナ
- Scalaでシューティングゲーム!
- ワラビモチとscalaについて
- 画像を表示するScalaプログラムが動かない
- 2分間で誰か
- 出来た人にわらび餅プレゼント
- 画像を表示するScalaプログラムが動かない
- ScalaでHadoopを動かしてみた
- ToDo 的な
- Scala 2.8 から入ったらしい継続について調べる
- 継続は力 (違
- Scala 2.8 から入ったらしい継続について調べる