お使いのブラウザは最新版ではありません。最新のブラウザでご覧ください。

CNET Japan ブログ

『ASTERIA実践ガイド』の発刊にあたって

2005/05/18 03:58
  • このエントリーをはてなブックマークに追加

お知らせです。

このたび、私が勤めているインフォテリアが開発したソフトウェア「ASTERIA(アステリア)」についての初の技術解説本が翔泳社から出版されることになりました。

ZDNet Japanプレスリリース

『ASTERIA実践ガイド』〜マウスで楽々プログラミング(翔泳社)
ASTERIA実践ガイド


<追記>アマゾンのエバンジェリスト、吉松史彰さんがエディターレビューを書いてくださいました!!大感謝!!</追記>

書名 ASTERIA 実践ガイド
著者 東海林賢史、中川智史、江島健太郎
発行 株式会社翔泳社
監修 インフォテリア株式会社
定価 3,360円(税込み)
頁数 352ページ
付録 ASTERIA 3 評価版 CD-ROM

『ASTERIA実践ガイド』公式サイト
http://book.infoteria.com/

■本書で伝えたかったこと

本書はあくまでも入門的なユーザーズガイドという位置づけで、ちょっとプログラミングをかじった新卒入社1年目ぐらいのエンジニアを想定しながら書きました。したがって、どうしても書ききれなかったこともあるので、ここで少しフォローをしたいと思います。

インフォテリアという会社はソフトウェア業界に属しています。ソフトウェア業界とひとくちにいっても広いのですが、ここではマイクロソフトやオラクルやSAPなどのパッケージソフトウェアを主として法人向けに販売することで収益を上げている会社のことを指しているつもりです。それで、そのソフトウェア業界で生まれる基礎的なコンセプトやイノベーションというのはいつも米国発で、しかも資本力のある会社が生み出してきました。

エンタープライズ市場とお手軽ソフトウェア開発

そういう状況にあって、リレーショナルデータベースやERPのようなソフトウェアの新概念を誕生させるカテゴリーメーカーになってやろうというような「くるった」モチベーションと野心的なビジョンを持った会社はもうほとんどありません。ましてや、日本では。

でも、私たちは、あえてそこに挑みたいと思っています。

本書のあとがきにも書きましたが、私の根源的な欲望はインフォテリアやASTERIAそれ自体が成功するかどうかにはないのです。不吉な物言いですが、もし仮にインフォテリアが潰れても社員まで死ぬわけではありませんから、社員それぞれに「経験」や「考え方」や「チャレンジする気持ち」が共有財産として残り、それぞれがまた別の舞台で活躍してくれれば、いつか業界全体にいい風が吹き始めるというものです。

シリコンバレーという地は、梅田さんが何度も何度も言及されているように、その強みは優秀なギークと優秀なスーツが高い人材流動性のもとでくっついたり離れたりしながら会社を作ったり潰したりしながら循環し、そしてそんな彼らを支援するお金の出所もあるという、その生態系にあるのだと思います。では翻ってなぜ日本ではそういう生態系が育たないのか。かつては、米国にくらべて情報が不足しているということが理由とされていました。次に、リスクマネーが少ないからだということが言われました。でも、このいずれもが言い訳に過ぎなかったのです。本当に不足しているのはたったひとつ、「チャレンジする勇気」だったのですから。

そんなわけで、ようやくビジネスとして独り立ちできるフェーズは迎えたけれども、まだ大企業向けというクローズドな市場でしか認知されていないASTERIAの野心的なコンセプトについてもっと広く知ってもらいたいと思い、若手エンジニア2人と共著でこのような本を書くことにしたのでした。

元来テクノロジーにまつわるコンセプトは、声高に叫べば叫ぶほど、外したときに恥をかく度合いも大きくなるものです。でも、そういう批判を恐れて優秀な人たちがみんな黙り込んでしまうから、日本にはビジョナリーがいないなんて言われてしまうのだと思います。

アラン・ケイは「The best way to predict the future is to invent it !(未来を予測する最善の方法は、未来を発明してしまうことである。)」という素晴らしい言葉を残しました。ただの評論家には決してならないぞと誓いつつ、こうやって宣言することで自分を追い込みながら、自分自身を納得させられるだけの何事かを成し遂げたいと思います。

というわけで、もし立ち読みされるなら「刊行に寄せて」「1章 はじめに」「5章 おわりに」あたりをさらっと読んでいただけると、このあたりの「思い」が伝わるのではないかと思います。

どうぞ、よろしくお願いします。

■技術詳解

ここからは技術的な興味のある方に。
さて、ではASTERIAとは一体なんぞや。

ASTERIAを技術的な側面から一言でいうと、Java上で作られた言語処理系です。それも、いわゆる普通のプログラミング言語ではなく、グラフィカルなアイコンをつなげていくことで直感的なスクリプティングを可能にするグラフィカル言語(ASTERIA Flow)です。

グラフィカル・ユーザ・インターフェース(GUI)に対してグラフィカル・スクリプティング・インターフェース(GSI)という造語でも作ろうかと思ったのですが、GUIへのアナロジーを除けば冴えない名前なのでボツにしました。が、これでも言いたいことが伝わる人には伝わるのかも知れません。

フローの例

そのGUI上で表現されたASTERIA Flowのソースコードは内部的にXMLシンタックスなのですが、そんなことはまったく意識せずに使える統合開発環境ASTERIAデザイナと、ASTERIA Flowの実行環境であるFlow Engineを擁するASTERIAサーバの二つが主たる構成要素です。

このグラフィカル・スクリプトはコンパイルによってFlow Engineが解釈可能な中間オブジェクトとしてメモリ上にアロケートされ(追い出しはLRU)、そこからFlow Engineはリクエストを受けるとスレッドプールからスレッドを割り当てて実行していきます。JavaVMの上で作られた計算完備・チューリング等価なバーチャルマシンにしては簡素な造りでフットプリントもそこそこ小さく、おそらくギークな皆さんの想像以上にサクサク動きます。また、セーブ=コンパイル=デプロイが同時なので、細かい定義はともかくインタプリタ指向の処理系の一種といっても差し支えないでしょう。

20050518-LangParadigm.png

ASTERIAサーバは、キュー+マルチスレッドから構成される資源スケジューリングのコア・フレームワークを全面的に取り入れたアーキテクチャとなっており、突発的な集中アクセスにも柔軟に対応することが可能で、スループットはCPUの追加でほぼリニアにスケールします。

20050518-FlowServiceArchitecture.png

また、apacheやcatalinaなども参考にしつつこのコア・フレームワーク上に実装された独自のHTTP(S)リスナーもIn-Processで内蔵しています。よって、そのままでいわゆるWebアプリケーションサーバとして使用することができますので、簡単なDB参照系のウェブアプリ程度であればアイコンを数個並べればできあがりです。

■「簡単なこと」を「簡単に」が基本コンセプト

あとの細かい部分は本書を読んでいただけると嬉しいのですが(笑)、つまり現状に対する問題意識として「簡単なこと」あるいは「簡単であるべきこと」が「簡単にできない」というのがありました。みんな簡単でつまらないコードを書くのに無駄な労力をかけすぎている、これを解決したい、というのが出発点でした。このゴールを目指す以上、裏を返せば、「本質的に難しいこと」はASTERIAで書くとよけい複雑になる、ということでもあります。そもそもスクリプト言語は常にこういった「お手軽さ」と「大規模コード化耐性」のトレードオフに悩まされてきたわけですが、ASTERIAではそれがより尖鋭化するということです。どのような言語でもそれぞれに適した用途や役割があるというのは、ごく当たり前の話ですね。

そしてASTERIAの場合、ハッカーが書こうがヘタレが書こうが、「RDBからデータを取ってくる」「HTMLを生成する」というアイコン2個で記述できるプログラムはアイコン2個並べる以外に書きようがないわけで、簡単なこと簡単にやる、というのは「相当のヘタレが書いても普通に動く=品質のバラつきが均質化する=個性が出ない=ハッカーは全く見せ場がなくてつまらない」ということでもあります。

一方、システムの「勘どころ」がわかっている人なら従来的なコーディング・ディティールにまどわされずにやりたいことの本質に集中できるという側面もあります。

例えば「AS/400上のMQからGETしたデータを加工してXMLにし、HTTPでどこかのWebサービスのエンドポイントにPOSTして、そのレスポンスのストリームを固定長のフラットファイルに変換して3270端末経由でメインフレームに転送する」あるいは「Oracleやから取得したデータをLDAP照合しジョインしてからダイナミックにPDFに差し込み、そのPDFファイルをFTPサーバにアップすると同時にZIPで固め、メールに添付して宛先毎にテンプレート形式で動的にメール本文を書き換えながら配信する」というような一連の処理が、たとえば私のようなヘタレですらコーダーにお願いしなくても(すごく運がよければ)1日ぐらいで書けます。

そして、こういう様々なプラットフォームやソフトウェアが混在する環境では、コーディングのスキルよりも各種システムのクセというか、アンチパターンやアクセスの偏在・並行性(ACID)の潜在などを見抜くセンスのような、いわゆるアーキテクトとしての「Gut Feeling(直感)」の方が重要になってくるものです。「簡単なことを簡単に」というのは、それで問題が簡単に解決できるようになるというような単純な話ではなくて、問題の重心がコードレベルからデザインレベルへとひとつ上がるということなのです。

■共著者紹介

さて、今回の書籍は20代中盤の若手エンジニア2名との共著です。おかげさまでとても楽しくミッションを完遂することができました。彼らの獅子奮迅の頑張りを称えつつ、ここにこの2名をご紹介したいと思います。

東海林 賢史(しょうじ さとし)さんは、インフォテリアのビジネスパートナーである横河情報システムズに勤務しているエンジニアで、ASTERIAがまだバグだらけで迷惑をかけっぱなしだった約2年前に一緒にプロジェクトをやった仲です(当時たしか彼は新卒1年目だったはず)。そのときに受けた印象から、技術的な知識と対人センスなどのバランス感覚がいいな、と個人的に信頼を寄せていて、今回ライターをお願いすることにしたのでした。彼は本書のチュートリアル的な記述の多くを担当してくれました。

中川 智史(なかがわ さとし)さんは、今でこそインフォテリアの同僚なのですが、元はといえば彼がこのブログに私の心の琴線に触れるCoolなコメントをくれたのがきっかけで仲良くなり、私から一緒に働かないかと誘ったという経緯があったのでした。彼は幼稚園からマイコンに親しみ、学生時代にはコンピュータサイエンスを学びつつLimeChatというIRCクライアントを開発して今でも10000人以上のユーザを獲得している、とっても典型的でわかりやすい生粋のオタクギークです。なのですが、彼には現在、仕事においては開発ではなくて私と同じようなフロント寄りの仕事をしてもらっています。ちなみに今回の執筆にあたってはWikiと、彼がRubyでさくっと開発したコンテンツ管理&HTMLビルドシステムをWebサイトに置いて、社内外の関係者と協調してほぼWYSIWYGで作業を行えたので非常に快適でした。(いずれこのコンテンツも公式サイト上で公開していく予定です)

それから、いつも私たちフロントのワガママな要求に付き合って、たまには激しく喧嘩しながらもASTERIAをここまで育ててくれた開発のコアメンバーである小西 俊司さん、田村 健さんに、この場を借りてお礼を言いたいと思います。もちろん他にも協力してくれた人はたくさんいるのですが、ご紹介しきれないのが残念です。

■マンガと純文学

ところで今回の出版にあたっては、私と共著者の中川と社長の平野の3名で相談し、それぞれが「この人に読んでいただけると嬉しいなぁ」と思う人を10名ほどピックアップし、ファンレター代わりに献本させていただきました。

ありがたいことに、すでに何名かの方からは反響をいただいています。たとえばRubyのまつもとさんからは「ビジュアルプログラミングが成功するのは難しい、死屍累々だ」とのご指摘を受け、Mono Project(.NETフレームワークのオープンソース実装)のハッカー榎本さんからは「プログラマーとしては『萌える』要素がこの書籍にはありません。」と斬っていただきました。

ギークであればあるほどこの手のモノに懐疑的なのは、とてもよく理解できます。なんと言っても、ASTERIAのコンセプトに対して最も強く反発したのは、他ならぬ社内の開発者たちでしたから。

私はこのリアクションを、「純文学(テキスト)」「マンガ(グラフィック)」のアナロジーでとらえています。純文学で育った世代には、底が浅い(く見える)マンガの登場は、とうてい受け入れられませんでした。しかし、今ではもうマンガをバカにする風潮は一部の年寄りたちにしか残っていないでしょう。私なら、同時代的なマンガやアニメやゲームだけでなく、将来登場するであろう新しいエンタメもいきなり「程度が低い」と否定したりせず、それ固有の面白さを見つけられる爺さんになりたいなと思います。

そして、これからの私の目標は、現状ではビジネスで食っていくために数百万円もせざるを得ないASTERIAのライセンス価格をコストダウンの努力によって低廉化させ、グラフィカルなスクリプト記述言語というものは可能なのだということを世の中に知らしめたいということです。(だれかオープンソースで "OpenAsteria" を実装しませんか?)

■プレゼント

さて、この長いエントリに最後まで付き合っていただいた読者の方へ。この『ASTERIA実践ガイド』を先着5名様に差し上げます。

<追記>あっという間に応募が10名を超えてしまいましたので、一気に枠を30名に拡大します(正直、こんなに応募があるとは思っていませんでした)。いやー嬉しいもんですね。出血大サービスです。ひとつひとつ精魂込めて送らせていただきます。応募にあたっては自己紹介をお忘れなく。特に、使用レポートをブログに書いていただける方には必ずお送りします。</追記>

締め切りは5月22日(日)で、送付先の住所・電話番号を document.write(""+"kenn_blog"+"@japan.cnet"+".com"+""); までいただければと思います。もし5名枠を超過しても、自己紹介などで感じるものがあれば追加でお送りすることもありますので、どしどしご応募ください。

また、もし感想などブログに書かれた方は、ぜひこのエントリにトラックバックください。

よろしくお願いします。

■現時点でいただいているレビュー(ありがとうございます!)

Matzにっき
Zopeジャンキー日記
ものがたり(diary for AtsushiEno)
OPC Diary
アマゾンの吉松史彰さんによるエディターレビュー
情報考学 Passion For The Future

♪ Linkin Park / Papercut

※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
運営事務局に問題を報告

最新ブログエントリー