BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 多言語主義とDSLはJavaを最後の大型言語にするのか?

多言語主義とDSLはJavaを最後の大型言語にするのか?

Ola Bini氏は、開発者が問題領域に応じて異なる言語を選ぶことに価値を見いだすため、世界に再び新しい大型言語が現れることはないだろうと主張している。同様にMartin Folwer氏は、プログラマはフレームワークを選んでいるのと同じように、何ができるかによって言語を選ぶだろうと主張した。一方で、Joe Winchester氏は、精通できる言語は1つのみであるということを論じている。

Ola Bini氏は、自身の最近の投稿の1つで、Haskell、Java、およびRubyの型システムのさまざまな長所と短所について詳述しており、これらの言語を比較することを、不可能とは言えないまでも困難にしている(source)

今、私たちには3つのカテゴリの言語があります。強く静的にチェックされるHaskellのような言語。弱く静的にチェックされるJavaのような言語。そして、動的にチェックされるRubyのような言語。私の見方では、これらの言語はそれぞれまったく異なったことを得意としています。同じリーグで競い合うことすらありません。そのため、これらの言語を比較することは、あまり正当な論法ではありません。

Ola氏は多言語主義に希望を見いだしている(source)

優秀なプログラマは常識を働かせて、可能な最高の価値を提供します。それには、仕事に最適な言語を選択することが含まれます。RubyがJavaよりも5倍早く同等の機能を提供することを可能にする場合、あなたはこれを受け入れることが可能かどうか考える必要があります。一方、Javaには保守を容易にするIDEがありますが、Rubyコードベースでは結局Javaコードベースのサイズの5分の1を保守することになります。そのトレードオフを受け入れることができますか? イエスの場合と、ノーの場合があります。

最終的に彼は次のようにアドバイスしている。

優秀な多言語プログラマになってください。世界に再び新しい大型言語が現れることはないでしょうから、頭の配線をし直してこの環境に適応する必要があります。

 Joe Winchester氏は、Java Developers Journalの社説で、非常に異なった見方を示しており、次のように考えている。

1つの言語に精通することは可能です。あるいは、多くの言語に通じていても1つの言語に深く通じていない(多芸は無芸)かのどちらかです。

Joe氏はSmalltalkコミュニティによるJavaを仮想マシン(Universal Virtual Machine - UVM)で動作させる試みと、そのような環境でのコーディングをなぜ悪夢だったと感じるのかを思い起こしている。

最終的に彼は、次のことを提案している。 

… 私たちはJavaに修正を加えるべきであって、数年前には存在すらしていなかった他の言語を受け入れるだけのためにVMハッキングを行い、複雑さを増大させるべきではありません。
Javaを、ある種の漠然とした「Java技術」というものではなく、言語として支持しなければ、私たちは他の言語を使ってJavaの能力を弱め、優れたソフトウェアの構築に必要なエントロピーを増加させ、それを認識不足の運命に追い込んでいるのです。

一方で、Martin Folwer氏もまた、私たちが次のような局面に入りつつあるかもしれないことを主張した(source)

...現在フレームワークを選んでいるのと同じように、何ができるかによって言語を選ぶような人たちのプロジェクトでは、複数の言語を見ることになるでしょう....

そして、Smalltalk以降に多くのことが変化した(source)と感じている。

さて、私たちは80年代後半と90年代前半の言語的不協和音に戻ろうとしているのでしょうか? 私たちは複数言語がくどくど話すのを見ることになるだろうと思いますが、重大な違いがあるでしょう。80年代後半には言語を密接に相互運用するのは困難でした。最近では、異なる言語が密接に共存させることができる環境を作ることに多くの注目が注がれています。スクリプト言語は伝統的にCとの親和性があります。JVMやCLRといったプラットフォーム上での相互運用には多くの努力が注がれています。言語のライブラリにはとても多く投資されてきたので無視はできません。

実際、昨年InfoQには、DSLが単一の言語の開発を終結させるだろうか(参考記事・英語)どうかを討論する記事があった。

あなたはどう考えるか? 多言語主義とDSLは支配的パラダイムになり、新しい「次の大型言語」の余地はないのだろうか?

原文はこちらです:     http://www.infoq.com/news/2008/05/JavaTheLastBigLanguage

この記事に星をつける

おすすめ度
スタイル

BT