Paul Grahamのプログラミング言語観・その6

by tanabe on April 30, 2005

その6まで続いたPaul Grahamの言語観の話も、ようやく今回でおしまい。

私の考えるプログラミング言語の未来

ということで、延々書いたものの言語自体はあんまり変わらないんじゃない?ってのが結論だ。(残念なような、ほっとするような)

そして言語がどうせ大して変化していかないなら、フレームワークやライブラリがどんどん強力になることで、案外Javaが末永く生き残ったりする可能性も捨て切れない。制限がきつく安全で、企業に好かれる言語であるというのは、現時点では完成度が一番高い状態にあるということでもあるからだ。たとえ言語としての未来が途絶えていても、周辺環境を含めた総体としては延命を続けていく余地はある。短い開発サイクルへ対応できるのかという点も、フレームワーク次第である程度カバーできそうだという実証もされていたりする。

私は、特に日本に限定すればJavaの生き残る余地は意外に大きいと思っている。Webに特化しWebを活かしきろうという企業はまだ少なく、一方でエンタープライズシステムの需要は巨大だ。日本でプログラマを商売とする分にはおそらくJavaの寿命はまだまだ長い。雇われて金儲けをするならJavaのエンジニアでいるべきだろう。

しかし、この現在は少ない「Webに特化しWebを活かしきろうとする企業」を目指すのであればJavaをあっさりと捨てて、より適した言語で最大の効果を狙う方がいい。なぜなら、Dynamic LanguageはWeb時代の開発パターンには最も適した言語だからだ。書いた端からどんどん実行して試すことができ、言語自体が強力で開発効率も良い。少人数での開発になるから、必要以上に制限されている必要もない。

Web時代の開発パターンでは、まず簡単に作ってベータ版として公開する。公開したものへのフィードバックを受けながら、Dailyなどの短いスパンでどんどん修正し、機能追加を繰り返す。

これはオープンソースの開発手法の最大のメリットを取り込んだやり方だ。オープンソース式の最大の成果は、誰もがプロジェクトに参加してプログラムを開発してくれることではなく、誰もが公開されたものを見てフィードバックを返してくれることだからだ。ユーザーがソフトウェアの開発プロセスに参加することで、ニーズを反映させて良いサービスを実現する近道になる。(バグの報告も頻繁に挙がることになる。しかも重要なやつはすぐに分かる。)

ちなみに私はRubyで行きます。Mix-inの良さや、言語の核から計画的に練られたポリモルフィズムの強力さを知ると、やはりJavaは冗長に感じる。オブジェクト指向言語Rubyの名前は伊達じゃない。Javaも割と好きだったはずなのに不思議なもんだ。

オマケ)
Web時代の開発パターンについては、Paul Grahamの「もうひとつの未来への道」に詳しい。以前も紹介した文章だけど、Grahamのエッセイの中でも特に濃い文章の一つなのでぜひ読んでみてください。