Scala?

原著者:Guido van Rossum
原文:http://neopythonic.blogspot.com/2008/11/scala.html
原文公開日:NOVEMBER 21, 2008

またまたGuidoのブログの翻訳です。GuidoがScalaを語ってる!と思ったら、なんか色々不満なご様子。Scala用語はイマイチ分からぬことも手伝って、相変わらず適当翻訳ですがどうぞ。


私は、Scala eBookの無料コピーをMartin Odersky氏, Lex Spoon氏, Bill Venners氏の三名からいただいた。私は、CalTrain(訳注:アメリカのカリフォルニア州を走る通勤電車)で通勤中に読もうと挑戦してみたが、ざっと内容をつかむことしかできなかった。700ページ以上ある大作の本である。私はもちろん、この書籍のターゲットの読者ではない。この本のターゲットは二つあり、一方はより良い言語に挑戦しようとするJavaプログラマーへの誘惑、もう一方はScalaを使うとどのようなことが起きるのか、という紹介である。その二つの間を行き来している感じである。私は最終的にはScalaのウェブサイト(チュートリアル概要言語リファレンスなどをダウンロードした)を訪れることになった。

これを言わなければならないのは残念ですが、私はとてもがっかりしています(あ、言語にです。eBookのほうは、言語使用と同じぐらい大きいということを除けば、言うことは何もありません)。私が最初にScalaについて聞いたのは、昨年の5月のGoogle I/Oで、Steve Yegge氏との会話の中で触れられていたときのことである。SteveはScalaを「静的な型システムの逆襲」 (そのセクションのビデオを見つけるのが面倒なので、てきとーに言い換えています)。Steveは信じられないほどフクザツな型システムをからかい始めた。例えば、型システムには、型の消去、分散アノテーション(variance annotation) 、実存(existential)型、ポリモーフィックメソッド型など、難解なコンセプトがたくさん含まれているのである。もしより知りたければ、言語リファレンスのToCという項目を調べて見ると良い。

私はSteveに同意せざるを得ない。もしこれがコンパイル時の言語内の型セーフを維持するためのものであるならば、私はいつでも動的な型システムを選択するだろう。より良いやりかたがあるはずである。おそらくHaskell?Haskellは純粋な関数型言語で、関数型言語のI/Oの問題をうまい具合に解決した、動作の速い実装が存在する。Haskellのモナドは本当に深く、実装はかなり大変であるが、これを使うのは極めて簡単であるように思える。

私がScalaを見て、もっともがっかりした点が、簡単そうに見えるコードを書くことを可能にするような、無数のルールがあるということである。これらのルールはすべて、無数の例外のように見えた。これらの例外により、これらを知らないときにはシンプルなコードを書くのがとても難しくなる。例えば、Scala本では、for構文の中ではif修飾詞をいくつも使用できると説明されている。しかし、パーサに推測して欲しいという位置にセミコロンを挿入してやる必要がある。さらに不可思議なのは、丸カッコの代わりにもし波カッコ({})を使用したときに、セミコロンが省略できるのである。説明も無く、このようなことが堂々と現れるのである。私は、リファレンスマニュアルの内のほとんど関係がないように思えるルールを結び付けて説明を理解した。まずはforステートメント(技術的にはfor内包表記(comprehension)と呼ばれる)であるが、これは波カッコや丸カッコを同じセマンティクスで使用することができる。しかし、セミコロンの推測は、波カッコと丸カッコで異なるのである。えぇっ!:-)

posted by しぶかわ at 2009/05/30 08:42 | Comment(56) | TrackBack(0) | Guido's Blog
カテゴリ
記事一覧
ページ内インデックス
検索ボックス

最近のコメント
プロジェクト計画 by pharaohtools (06/14)
iPadがKindleに勝てない10の理由 by harga body slim herbal (02/13)
iPadがKindleに勝てない10の理由 by harga cmp pelangsing (10/28)
Pythonを使って2MBのメモリで100万の数値をソートする by 子供用ラッシュガード (08/24)
iPadがKindleに勝てない10の理由 by casino (07/30)
最近のトラックバック

Profile by iddy

Counter

Powered by さくらのブログ