dotty
- dot計算はScala型システムの理論的基礎
- Dotty EPFLが開発中の実験的な新コンパイラ
- Scalaと同じような感じ
- インクリメンタルコンパイル
- パターンマッチの再設計
- ミスしてはいけない
- コンポーネントのなかではよいと思うものがあること
- よい開発者の経験のためにはよいツールが必要
- IDEサポートもしている
- Dottyリンカが呼び出しグラフを解析して最適化
- 到達不能コードの削除 @specializeの自動化
将来の話
- 技術プレビュー版のDottyをリリース
- Scala2もDottyで検証した機能を取り込む
バグがあるならフィードバックください
ScalafixはScala2からDottyへの移行を自動化するツール
- 型推論の差異
- Scalafix automatically rewrites your code to ease migration.
Dottyで使わない機能
- Scala2のマクロ
- scala.metaが新しいシステムとなり、Scala2とDottyの両方をサポートする予定
- Procedure Syntax
- プロシージャ構文の変更 必ずUnitをつける
- forSome
- forSomeはつかわないで代わりにワイルドカードを使う
新機能
- 型推論の改善
- Dottyでは関数の引数の22個制限がなくなる‼‼
- Function2…Function22
- 交差型 A & Bの導入
- 合併型 A | Bの導入
- コンパイラが合併型の網羅性を警告してくれる
- トレイとパラメータの導入で事前定義の機能は廃止
提唱中
- Enums Javaライクな列挙型 代数的データ型も定義可能
- Non-nullable types nullを許容しない型をデフォルトとする
- Null is a subtype of no other type
- now: null is a subtype of every non-value clsas
- nullを許容しないタイプ
contributing
- Documentation: dotty.epfl.ch
- gitter.im/lampepfl/dotty
- Test our IDE Support
- compile your project
- Issue投げてね