プログラミング言語Nuとは
今回から Nu というプログラミング言語の連載を書かせて頂きます吉田裕美です、宜しくお願いいたします。
現在は新しいプログラミング言語の情報がネットを通じてすぐに伝わってくる時代になり、特徴のあるプログラミング言語が日々生まれているような気がします。Nu もそんな今の時代らしい特徴のある言語です。
Nu のホームページhttp://programming.nu/には Nu について以下のように書かれています。
Nu is an interpreted object-oriented language. Its syntax comes from Lisp, but Nu is semantically closer to Ruby than Lisp. Nu is implemented in Objective-C and is designed to take full advantange of the Objective-C runtime and the many mature class libraries written in Objective-C. Nu code can fully interoperate with code written in Objective-C; messages can be sent to and from objects with no concern for whether those messages are implemented in Objective-C or Nu.
要約すると、Nu はオブジェクト指向なインタプリター型言語で、Lisp 由来の文法を採用していますが、その実体は Lisp より Ruby に似ています。また Nu は Objective-C で実装されており既存の Objective-C のライブラリーや実行環境を利用できます。そして Nu は Objective-C と完全に相互運用できます、といった感じでしょうか。
Ruby はご存知のように近年大成功したプログラム言語ですが、従来には存在しなかった画期的な言語というのではなく、Perl、Smalltalk、Lisp などの良い部分を取り入れながらもプログラマーに親しみやすい言語として構成されています。同じように Nu も、Lisp というシンプルで強力な言語に Objective-C のオブジェクトシステムを組み合わせ、Ruby の親しみやすさをまぶして作られた言語になっています。
Nu は作者の Tim Burks (ブログ)がほぼ一人で作ったようです。ちなみに Nu の発音は作者のプレゼンビデオを聞くと "New" と言っているように聞こえます。
インストール
まずは、インストールしてみましょう。Nu は Objective-C で書かれているので、現在のところ Mac OS X が主な実行環境です。また、iPhone 用ライブラリーが用意されているので iPhone の開発ライセンスを持っている方は iPhone で試してみる事ができます(iPhone 版に付いては筆者のブログで紹介しています)。ソースからビルドすれば Linux でも動くようですが Cocoa API(Mac OS のAPI)が使えないのでできる事が限られます。
今回の連載では Mac OS X 版を中心に書いていきます。
インストール作業
ダウンロードページから最新の「Nu-0.4.0.dmg」をダウンロードしクリックする事で、通常の Mac アプリのようにインストールできます。
動作確認
nushコマンドがインストールされているので、ターミナルで nush を起動してみましょう。nush は Rubyの irbコマンドや Python の pythonコマンドと同様に、入力された Nuプログラムをその場で実行できる環境で、一般に REPL (Read Eval Print Loop)と呼ばれるものです。ちなみに quit と入力すると nush を終了できます。
$ nush Nu Shell. % (+ 1 2) 3 % quit $
エディター用ツール
Nu は Lisp をベースとしています。Lispプログラムと言えば「カッコだらけ」ですので、エディターに対応するカッコの表示や Lisp用のインデント機能が必須になります。以下のエディターには Nu用のツールが準備されています。
- Textmate:GitHubに Nu用の Bundle が公開されています。詳細はA Bundle for TextMate Usersを参考にしてください。
- Emacs:Nuをインストールすると/usr/local/share/nu/nu-mode/ 以下に nu.el、nush.el があります。設定はこのディレクトリーの README を参照ください。
- Vim:現時点では正式な nu.vim はリリースされていませんが、vi tips for Nuが参考になります。