言語・フレームワーク紹介
Language Updateに出場する言語と、キミならどう書くに出場するフレームワークの発表者の皆さんに、各言語・フレームワークの簡単な紹介を書いていただきました。参加者の皆さんにとっては未知の言語・フレームワークもあるかもしれません。予習を兼ねてぜひご覧ください。
Language Update
PHP
Webアプリ構築用スクリプト言語の定番となっています。PHP 5が最新ですが,PHP 6の声も聞こえてきました。さてどうなるんでしょう。Common Lisp
Lispは最も古くて最も新しい言語。あらゆるプログラミング言語のアイデアの源泉であり、いまも未来を切り拓き続けています。今回は、Lispの旺盛な生命力とversatilityの根源は何かを説明し、セマンティックWebやバイオインフォマティクスでもLispのすごさが発揮されている最新の事例も紹介し、Lispは死んだと思っているみなさんのLisp観をupdateしたいと思います。Scripting for Java Platform
皆さんご存知のとおり、Javaはスクリプト言語ではありません。しかし、Java SE 7からは、さまざまなスクリプト言語とJavaを連携する仕組みが取り入れられます。さらに、Java VMもスクリプトの実行効率向上のために変更が加えられる予定です。Squeak
1996年に衝撃的なデビューを飾ったSqueakも今年で10歳になります。例年通り、派手なデモ主体で魅せます。今年のメインは、もはや円熟の域に達した継続ベースのWebアプリケーションサーバSeasideと、「未来に向かってメッセージを送る」3Dコラボレーション環境Croquetです。そのほかOSなしでいきなり立ち上がるSqueak NOS、100$ laptopエミュで動くSqueakなどもチラリとお見せします。
バージョン3.9や、次世代SqueakであるTweakの開発状況についてもご報告します。
FORTH
絶滅危惧種とされたFORTH。最速最軽量なインタラクティブ実行環境を持つLightweight Languageとして、新たなる希望を伴ってついに戻ってくる!初参戦となる今回は、FORTHの歴史と仕組みそして現状を中心に語る。
Haskell
Haskellは最近注目を集めている関数型言語で、高階関数、遅延評価と非正格の意味論、静的多相型付け、利用者定義の代数的データ型、パターン照合、リストの内包表記、モナド I/O システムといった特徴を持っています。Java等の命令型言語とは大きく異なる言語ですが、強力な抽象化能力を持ち、慣れれば非常に使いやすい言語です。最近日本語の書籍が出版されました。JavaScript
JavaScript それは今もっともモテる言語。10 年の暗黒の時代を経てその魅力を開花させた。
近年ではブラウザの壁を越え、サーバサイドへの進出、各種ソフトウェアへの実装が進み、様々なシーンで私たちを魅了しつづける。
awk
awk はテキスト処理に特化したスクリプト言語で、変数に $ や @ が付かず、C 言語に近い文法で記述可能で、少ないながらも洗練された関数群を持ち、行(レコード) をフィールドに自動的に分割してくれる便利な言語です。ActionScript
最新バージョンの ActionScript 3 はより洗練された言語仕様と刷新された実行環境によりさらに本格的な開発が可能になりました。デベロッパーのみならずクリエイターも魅了するとてもユニークな言語に是非注目してください。Scheme(Gauche)
「プログラミング言語は、機能の上に機能を積み重ねるのではなく、追加の機能が必要となるような弱さや制約を取り除くように設計されるべきである」----Schemeは30年以上の歴史を持ちますが、未だこの理想を目指して発展途上の言語でもあります。数年に一度改定される仕様では、何がSchemeという言語にとって本質であるべきかについて侃々諤々の議論がなされ、全員が納得するまで仕様に盛りこまないという徹底ぶり。プログラミング言語界のサグラダ・ファミリアを目指すのか。折しも6回目の仕様改定が進行中のScheme界の現状をリポートし、併せて一実装であるGaucheの開発経過について触れます。Python
Pythonは世界中で愛され,活用されているオブジェクト指向のスクリプト言語です。シンプルで奥が深い文法,インデントによるブロック表記,豊富な「標準モジュール」を搭載しているのが特徴です。.NETで動くIronPython,JavaのVMとして稼働するJythonなど,実用に耐えることを目指した実装系が豊富なのも特徴です。GoogleではJava,C++と並ぶ標準言語として採用されています。2005年の末,作者であるGuidoがGoogleに電撃移籍をしたことが話題になりました。OCaml
OCaml(Objective Caml)は、関数型言語MLの一種です。関数型言語に分類されますが、代入や例外といった命令的な機能も利用でき、クラスなどを使ったオブジェクト指向プログラミングも可能です。「中途半端」?……「実用的」と言ってください!
Ruby
Rubyはオブジェクト指向でライトウェイトな動的言語です。2006年はRuby on Railsのおかげで話題沸騰中。(英語の)本の売り上げではPerlを越え、TIOBEインデックスで10位以内に入るのも夢ではないともっぱらの噂です。一方、開発者自身はあいかわらず力が抜けきってのんびりとした開発を続けています。Perl
1987年、Haskellと同じ年に生まれたPerl。今年は言語だけでなく発表者もアップデート。「実用主義の情報抽出レポート言語」「病的折衷主義ガラクタ出力機」と長年言われ続けてきたPerl。エイプリルフールネタから始まったParrot。2001年の最初の黙示録から数年、Pugsは誕生した。Haskellの力を借り、Perl6は「多様な実存主義の再帰λ」として新たな世界を開拓中である。Perl5.9.4の開発も順調。新たにerrキーワード、switch構文などがPerl5の言語仕様に加わった。実際に業務で使われている国産フレームワークSledgeは今も健在、今年は新たにTripletaiLも登場。Catalyst、Jiftyなど、強力にDRYなフレームワークの話題もホット。CPANモジュールも拡大中!今年のLL Ringは戦わずして勝つ!Perlは最強(≠災凶)のLLである。Boofy!キミならどう書く
Kahua
Kahua(かふあ)は継続ベースのアプリケーションサーバ/フレームワークです。- Scheme処理系Gauche(ごーしゅ)で実装されています。
- 「継続」を直観的に扱えるので、Webアプリにありがちな「処理のブツ切れ」が解消できます。
- 当然S式が基本データ形式です。Schemeお得意のリスト処理との組み合わせが強力です。
- オブジェクトデータベースが組み込まれています。データの永続化は自然に行われます。
- 動作中のアプリケーションを直接変更できます。インクリメンタルな開発に力を発揮します。