最近更新が滞ってましたが、ぼちぼち再開します。
今日は、最近ホットなScalaとProcessingを使った、
"Scala-processing"
という新しい文化と、その周辺について。
写真はProcessingのライブラリをScalaで(NetBeans上で)動かしたところです。ちゃんと動いてますし、構文は純粋なProcessingとほぼ変わりません。
つまり、ProcessingにScalaの強力な機能が追加できちゃってます。
Scalaについていろいろ研究してて、気付いた重大な発見が2つあります。
(1) Javaの「上位互換」であること
(2) JavaVM上で動く言語は「他にもある」こと
これは、実はとても驚くべきことで、例えば(2)に該当するのは、
Scala、Jython、JRuby、Groovy
などいろいろあって、これらはすべて(1)をある程度満たすので、お互いの言語で書いたJavaのクラスファイルを「相互に読み取ること」ができます!
ということは、それぞれの言語を生かして、しかも自由にプログラミングができる環境が整いつつあるということです。
しかもScalaはちょっとの修正で.NET Framework上でも動くし、JRubyで書いたものも同じように、Ruby on Railsとかの強力なWebアプリケーションに早変わりする。この移植性は驚異的です。
で、それを生かしてProcessingが持つ最大の利点であって難点である、
「Java言語に依存していること」
を払拭して、そのままScalaに移植してみたわけです。これができると、例えば次のような利点が出てきます。
・Processingが、完全オブジェクト指向言語として使える。
・Processingに、演算子のオーバーロード、制御構造の追加が可能。
・Processingが、関数型言語に早変わり。
同じように、Ruby-processing、Groovy-processing、Jython-processingなーんていうのも可能です。すばらしすすすす。
うーん、なんだかワクワクしてきた。もっといろいろ遊んでみます。
PR