BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Bruce Eckel氏、Python、Java、Flex、RIAについて語る

Bruce Eckel氏、Python、Java、Flex、RIAについて語る

原文(投稿日:2009/5/3)へのリンク

この記事では、First Steps in Flexという共著の書籍を最近出版したBruce Eckel氏にInfoQがインタビューを行い、彼のRIAに対する考えや、近況について聞いた内容を取り上げている。

InfoQは、まずBruce氏に、近況について質問した。

そうですね。ここ9週間は、スキーで骨折した足の治療をしていました。いままで骨折したことがなかったので、これは新しい経験でしたね。手術や全身麻酔、いろいろなリハビリなど様々な新しい経験がありました。後から気づいたのですが、特に、全身麻酔に関しては、回復するのに数週間といった長い時間かかりますね。ぼんやりして、普段の半分のスピードでしか動かない頭で周りを見るんです。そして、こういった新しく認識できた意識の中から、最終的に回復してくるのです。ぼんやりした状態から回復した後には、外に出て、何かをしたいという気持ちが強くなるんですね。

私は、それまでにも「OK。私がいま本当にやりたいことはなんだろう」と自分に問いかけていました。そして足の骨折によって、よりそれを顕著に意識するようになったのです。過去にやってきたことの延長で進んでいくのでは、もはや十分ではない、私は特別におもしろく興味がもてることをやりたいのです。

私がコンサルティングをやってきて、もっとも楽しめたのは、Python(他の動的言語でも同じでしょうが、私の経験ではPythonでした)を使いたいと既に決めていた会社との仕事だった、というのが私がPythonに関する本を書き始めた主な理由です。その中の一つの仕事は、とても大変なものでした。毎日、昔のソビエトにいるような感覚を味わったものです。彼らは、私を裸にしての所持品検査まではしなかったものの、それに近い状態でした。トイレに行くときには、誰かが付き添わなければならなりませんでした。しかし技術リーダーがPythonを使うと主張していたので、他にどんなに辛いことがあろうと、私は楽しめました(しかし会社がPythonにコミットしていることと、権限がある決意の強い個人がPythonを使うことを押し通すことができることの違いを今は理解しています)。

私の経験から言うと、Pythonを使うことを支援する会社の文化は、たいていの場合、共に働くことが楽しいし満足できることが多いのです。ある言語を使うことを「管理する」機能(遠慮のない人たちは、束縛と規律とよぶ機能)によって選ぶ会社は、新たな道の探索や実験的な取り組みよりも、リスクを減らすことを優先する可能性が高いのです。リスクの低減は、多くの状況で適切なことです。しかしそれによって、私は幸せになれないと気がついたのです。手早く実験をして限界を探ることが、私を幸せにしてくれるのです。私の経験では、Pythonを選択した会社はそうした傾向があり、いま私がともに働きたい会社なのです。

ですから、これらの会社と私を結びつけるために「過去に役に立ってくれたこと」をしようと考えているのです。本を書くこと、カンファレンスで講演すること。独創的なアイデアではないですが、私自信をマーケティングするためにこれ以上役に立つ方法を私は知りません。

もちろん、Open Spaceのイベントなどは開催しつづけていくつもりです。これらも、この上なく満足感をあたえてくれるものでした。一週間しゃべり通しのセミナーを開催して、課題を通して人々を無理矢理前に進ませるんです(すべての人を同じスペードで学習させるように試みる、考えてみるとばかばかしいでしょ)。私は疲弊して、もうこんなことは二度としないぞ、としばらくは思うわけです。しかし、Open Spaceのイベントが終わったときに、来週もイベントをやるわけじゃないんだと気がついてがっかりするのです。こういったことが私を幸せにしてくれるので、どうやったらもっと頻繁にこの手のものを開催できるかを知りたいのです。これが、私が「First Steps in Flex」をJames Ward氏と書いた一つの理由なのです。この本によって、私たちが行っている「Flex Jam」の市場を創出してくれると期待しています。

ここ数年、私は地元の劇場で演じてきました。Crested Butteには、素晴らしい才能をもった人々がたくさんいます。私たちは、劇団をもっており、これらの上演(現在のところ5回か6回の上演に参加しています)に関わることは、大きな挑戦でした。最新の舞台の演題は「Into the Woods」でした。私は、それまでミュージカルをやったことがなかったのですが、「ラプンツェルの王子」に配役されることになりました。「シンデレラの王子」とともに、私たちはおそらく劇のなかで、もっとも魅力的なデュエットを演じました。これは公平ではないでしょう。なぜなら多くの他の役者たちは、私たちよりずっと努力してきていたのですから。私の相方の王子は、演劇学校を卒業したてで、ボイスレッスンを受けて急成長していました。彼の母親は、ロンドン劇場の花形歌手だったのです。彼に遅れをとることなくついていくのは、相当大変なことでした。しかしこれらの経験の一番素晴らしかったところは、アマチュア演劇に関わることに真剣で、プロ意識をもっている人たちとともに、活動できたことです。この経験は、チームに関してと、うまくいっているチームの一員であることの満足感に関してのより深い洞察を与えてくれました。

実際のところ、今、私はソフトウェアチームとチームを形成するのに役に立ってくれそうな書籍をたくさん読んでいます。チームのマネージャに今すぐなろうと思っているわけではありません。チームを理解することが、コンサルタントが持つべき重要なスキルなのです。そして、これは私が長い間、改善しようと試みてきたことなのです。

劇団がやっていることのひとつに、地元の人が書いた10分間の演劇を上演するというものがあります。私も何度か書きました。私は、通常の長さの演劇を書き始め、地元の作家グループに参加しています。様々なフィクションを書くワークショップに参加してきましたが、ノンフィクションを書くのに比べてフィクションを書くというのはずっと難しいことだというのがわかりました(おそらく、これが原因でノンフィクションは年間50000冊発刊されるのにフィクションは5000冊しか発刊されないのでしょう)。

絵を描くことも始めました。もう何年も絵画のワークショップに通っているんですけどね(よいワークショップに通うことは趣味でもあります。ワークショップそのものから学べるのはもちろんですけど、ワークショップでの経験から、私のイベントを改善したいとも思っています)。私が受講した最近のワークショップでは、「キャンバスの上で筆を使うんじゃなく、表面に印をつけるんだよ」と講師は強調していました。このことで、敷居が下がり、「正しい」のかどうかを思い悩むことなく、私は絵の具を材料におくことができるようになりました。ただ実験しているのです。不完全になって途中で終わってしまうのではないかと恐れて動けないでいるよりも、絵の具を物に塗って遊び回っている方がずっと満足できるということに気がついたのです。絵画の真髄を身につけたわけでは全くないんです。私のもっとも大きな問題は、うまく始まったと思えるときに結果にこだわってしまって、台無しにしちゃうんじゃないかと続けることを恐れてしまうことなんです。

最近のことですが、Pycon 2009カンファレンスのTシャツをデザインしたんです。そのシャツには、私が描いた絵がプリントされています(優雅さと美しさを表す易経の六十四卦の22番を抽象化したものです)。残念なことに、今年のその会議には、足を骨折していたので参加できませんでした。しかし1000人もの人々が私の絵を着ているのは壮観だったと、みんなが教えてくれたのです。

これらの経験は、ソフトウェアの世界でも有益だと考えています。椅子に座ってうまくいくかどうか熟考するより、より実験的になり探索することを学べたこととは、プロジェクトを前進させるのに役に立つのです。

Bruce氏は最近出版したFlexの本に関して概要を説明してくれた。

「First Steps in Flex」は、Adobe FlexのエバンジェリストであるJames Ward氏との共著です。私たちは、プログラマがFlexを簡単に学べるようなものを書きたいと思っていました。ですので、私たちは、短い章からなる薄い本にしたのです。このことが心理的な敷居をさげてくれます。私たちの本を見て、こう思うでしょう「あぁ、この章はとても短いね。これは読めそうだ」そして次の章も、その次の章も同じように思うでしょう。本全体がとても薄く、気軽に取り組めるのです。ですので、読者は、情報に埋もれるのではなく、これならできるという感覚を持ちながら読み終えることができるのです。Flexを必要不可欠なものだけに絞り込むのに大変な労力を費やしました。しかし私は結果に満足しています。

InfoQはBruce氏に現在のRIAに関する彼の見解を尋ねた。

私が考えるに、もっとも重要なことは、RIAというのは、単にAdobeが作り上げた用語ではなく、現実的なものだということです。HTML/CSSと少しのJavascriptでは、(多くのアプリケーションにとっては、確かに適切なアプローチなのですが)多くのWebアプリケーションではうまくいかないと、人々は既に受け入れているか、受け入れ始めています。消費者は、よりリッチでより反応のよいWebアプリケーションを求めていますが、Webサイトは、それらを提供できていません。そして、Webの気まぐれな変化と同時に戦っているのです。与えられた制約の中でプログラムする必要があるのです。

私は、過去にやっかいに巻き込まれてきたブラウザの「標準」は、完全なもの、もしくは信頼できるもの、それどころか使いものにさえ永遠にならないと、ますます確信しています。CSSをみてみましょう。コンセプトはすばらしい。しかしプログラムにとって、この上なく曖昧でブラウザ間で食い違いが大きいのです。HTMLそのもの、なんてめちゃくなんだろう。ヘッダーやフッターを含める標準的な方法もないのです(そう、SSIがあります。でもこれは信頼できないサーバー側の特定の設定に依存しているのです)。ですので、人々はPHPを使い、比較してトラブルに早く陥らないからという理由だけで「Perlよりはましだ」ということになるのです(私はPHPを使います。とても保守的にですが)。

結論としては、私たちには、ブラウザとRIAの間に仲介してくれる層が必要です。ブラウザの技術がここらへんを正しく扱うようになることはないでしょう。GWTのようなジェネレータがプラットフームへの依存に関する問題を減らしてくれたとしても、問題が全くなくなることはないのです。Ajaxについても同じことがいえます。複数のブラウザで動くようにコードを微調整してやらなければならないのです。省力化ではなく、この手のことは全く行いたくないのです。仲介層をおくことによって完全に取り除くことができるのに、なぜこれらの問題に会社のリソースをつかうのでしょうか。

私は、Flexのファンです。なぜならFlash Playerは全てのプラットフォームでサポートされているからです。Silverlightは、Linuxでもサポートされています、でもサポートがどれほど深くなされるのか私にはわかりません。そして、Microsoftは、Windows以外の環境のサポートには荒々しい歴史をもっているのです。Mac向けの最新バージョンのOfficeは、Windowsからマクロを取り込むことができません。これは私には重要なことで、私や他の多くの人々に重大な問題を引き起こしました。Microsoftはこの種のあらゆる行動をとってきました。しかしお構いなしです。一杯食わされたのです。もし彼らがMacでのSilverlightのサポートを取り除くべきだと決断したとしたら、そうすべき理由が彼らにはあるのです。もしくは、Linuxが彼らの大きな脅威になった場合、Linux上のSilverlightを手に入れられなくなるでしょう。構うもんですか。もし、あなたがそれらに依存していた場合、あなたは運が悪かったのです。私は、Netflixがビデオ・オン・デマンドでSilverlightを使っていることに気がつきました。今のところ、私のMacのFirefoxで動かすことはできません。おそらく将来的には動くのでしょう、しかし、もしそうでないなら、Netflixは顧客を失いはじめるでしょう。そして、おそらくは既にLinuxの顧客は失っているでしょう。Adobeも大きな会社です。気まぐれに振る舞うこともできるでしょう。しかし彼らは全てのプラットフォームをサポートしてきた実績があり、Microsoftには押し出したいOSがあるのです。Silverlightは、よく設計されており、多くのことをFlexから学んでいます。競争は素晴らしいことだと思います。競争によってAdobeも頑張らなくてはならなくなるでしょう。しかし、もしあなたが私にFlexとSilverlightのどちらを使った方が幸せか、と聞いたとしたら私はこう言うでしょう。「Microsoftが、またマーケティング上の気まぐれをおこして、あなたを切り捨てるリスクをなぜあなたは負うのでしょう」

次にBruce氏は、業界の流れが、ユーザインタフェースのためにクライアント側のランタイムに移ってきていることは良いことだと思うかと尋ねられた。

もちろんそう思いますよ。ここまででも、そのように熱烈に主張してきました。しかしJavaFXについて話し忘れていましたね。JavaPosse Roundup 09において、私たちはちょっとしたコーディング道場を開きました。そこでDick Wall氏は「Flubber」アプリケーションを(James Wardの助けをかりて)Flexと(JavaFXチームのTor Norbye氏の助けをかりて)JavaFXの双方で実装しました。都合よく、これは私の家で実施されました。しかし私は、手術からの回復の初期段階にあったため、詳細に関してすべてを述べることができません。しかし印象的だったのは、彼が、両方の言語でほとんど同じものを作り上げたことです。私はこの事で、ActionScriptの設計者は競争心に火を灯すと思いますし、それは素晴らしいことだと思います

次にFlexが成功するためにはJavaを必要とすると思いますか?と問われた。

私は、Flex-Javaブリッジは重要だと思います。そしてSunがそれらの開発をサポートしないのは残念なことだと思います。これに関しては、残念なことにAdobeも同じくサポートしていないのです。これを実現するオープンソース版のものがあります。私は、一般的に営利会社がオープンソースプロジェクトをサポートする仕組みがもっと必要だと感じます。たとえ彼らが誰かを雇ったり完全にサポートしないとしても、彼らにお金を与える仕組みが必要です。少なくともプロジェクトの一人の人間が、生計をたてられるようにするためには、プロジェトに、さらなる支援が必要だと思います。プロセスを簡単にするものは何であれ、皆の利益になるのです。

Bruce氏は、Java以上にFlexとの組合わせでで気に入っている言語は何かと聞かれた。

大半のプロジェクトで、私はPythonをFlexのバックエンドとして使ってきました。これには、いくつかのアプローチがあります。しかし、Twistedライブラリは、Flexとの直接の通信をサポートしています。そして、非同期なのです。ですので、これは一種の完璧な組合わせです。

RubyもFlexとの通信をサポートしています。私は、動的言語を優れたバックエンドのための言語だと考えています。なぜなら本当にすばらしいユーザーインターフェースのラピッドデベロップメントと、バックエンドの業務ロジックのラピッドデベロップメントの組合わせという素晴らしいものを得られるからです。

最後にInfoQは、Bruce氏は、最近Javaに関しては何をしているのか質問した。

時々、設計に関してコンサルティングをしたり、そんなところです。

私は「Thinking in Java」の第4版を完全なものにしたいのです。私は、いままで4度もこの本を書き直してきました。最終的には、納得いくものができた、と感じたものです。ですので、新しい版を作るつもりはありません。それよりも重要な詳細事項や、第4版がでたあとに登場した言語機能について書いた補遺によって第4版を補いたいのです。しかし、私はこの本を、コミュニティにゆだねて、クリエィティブコモンズのもとで電子版として公開したいのです。コミュニティをこのような形で活用できるかは、別問題です。これは、私がPythonの本で今試していることです。ですので、そのころにはより良いアイデアがでていることでしょう。

Bruce氏のブログを読むことにより、彼の考えをより深く知ることができる。

この記事に星をつける

おすすめ度
スタイル

BT