Scala言語を学ぶやさしいツール「Kojo」が無償公開
オブジェクト指向言語と関数型言語の特徴を備えたプログラミング言語「Scala」は、JavaVM上で高速に動作する生産性の高い言語として最近注目されている言語です。
Scalaは静的型付け言語としての高速性を実現しつつ、非常に柔軟なプログラミングが可能で、オブジェクト指向言語としてコードが記述できると同時に関数型言語の機能も発揮できるとされており、これらが高い生産性につながるといわれています。
また、関数型言語は並列処理を記述するのに適したプログラミング言語としても注目されています。
そのScalaを、子ども向けにやさしくプログラミングを学ぶための言語として採用したオープンソースの統合学習環境「Kojo」が、無償公開されています。
タートルグラフィック機能を搭載
Kojoは、いわゆるタートルグラフィックス機能を標準で備えたScala言語のサブセットで、タートルに命令を与えると画面上にグラフィックの結果が表示される、というものです。
画面は、サンプルとして用意されている円を描くプログラムを実行したところ。
かつてLOGOと呼ばれる、タートルグラフィックでプログラミングを学ぶ子ども向けのプログラミング言語がありましたが(いまもあると思いますが)、Kojoはまさにそれを思い出させるツールです。
ScalaでHello, Worldを実行してみました。文字の出力は、右側の「Output Pane」に表示されます。
左下のScript Editorにコードを入力して、実行ボタンを押せばすぐに動き始めます。最初は「Samples」メニューにいくつもサンプルが用意されているので、それを試すのもいいでしょうし、英語ではありますがドキュメント「Kojo - An Introduction」(PDF)もあります。
開発者も自分でScalaを試してみたかった
KojoはNetBeansをベースに構築されているツールで、Kojo自体もScalaで開発されているようです。開発したLalit Pant氏は、NetBeans Zoneというオンラインマガジンのインタビューで次のように発言しています。
これはScalaで開発されていますね。なぜScalaを選んだのですか?
私にとって新しく(そして非常にパワフルな)オブジェクト指向(例えばTraits、 Implicits、Abstract Types、Type Constructor polymorphism etc.)を備えているためです。と同時に関数型言語でもあり、オブジェクト指向プログラミングの中で関数型プログラミングのテクニックを非常に実践的に使えるためです。
利用者がこのツールで学ぶ言語もScalaですね。それはなぜですか?
Scalaのサブセットですが、これは非常にシンプルです(Javaよりシンプルで、PythonやRubyに匹敵します)。そしてもしKojiでScalaのプログラミングが利用できれば、自分でScalaのコードを読んで、試して、動かしてみることを繰り返しできます。そういうことがしてみたかったんです:-)
実際にインストールして触ってみましたが、本当にすぐに始められ、結果がグラフィックで表示されます。Scalaに興味がある方、話題になっている関数型言語をはじめてみたい、という方はきっと試す価値があると思います。
Scalaがどんなプログラミング言語かについては、以下の記事が参考になります。
- 多忙な Java 開発者のための Scala ガイド: オブジェクト指向のための関数型プログラミング - IBM developerWorks
- 刺激を求める技術者に捧げるScala講座---目次 - 刺激を求める技術者に捧げるScala講座:ITpro
- 私がScalaを選んだ理由(1/4):CodeZine
- 理想の言語? - 書評 - Scalaスケーラブルプログラミング : 404 Blog Not Found
関連記事
今月はBasicでプログラミングを学ぶツール、MS Small Basicもマイクロソフトから登場しました。以下の記事で紹介していますので、ぜひご参照ください。