ActionScriptを最初に触った頃の思い出

ただの思い出話を書く。

新卒で入社した会社は製造業の会社で制御設計の担当として新製品開発をやっていたのだが、その時にWeb技術が全然わからないことに焦りを感じて、当時できたばかりの渋谷のデジハリに通っていたのが2000年。その時の縁でWeb制作を請け負っていたフロムビッツという会社に転職したのが、僕のWeb業界の入り口だった。

先日、その時の代表であって川口さんの独立20周年記念飲み会が開催され、懐かしいメンバーに会ってきた。

別件で自己紹介と称して昔のキャリアを掘り起こしていたのだが、その前日にこの会があったのは偶然ではないような気がする。

当時のこの会社ではリッチメディアを取り扱う案件が多くて、動画やFlash、PocketPCなど時代的に早すぎる案件を受託としてサービス化する仕事が多かった。川口さんがアイディアマンなので、顧客に提案したどこからしら無茶な案件を僕らがカタチにするというスタイルの仕事で、いつもファンタスティックな新規案件が多くて楽しかった。

思い出深い案件としては、Tシャツをオンラインでデザインして購入できるサービスで、画像をサーバにアップロードするとFlash上のデザイン編集画面に反映され、画像の拡大縮小回転ができたり、当時、Macromedia GeneratorというサーバサイドでFlashを動的生成するサーバを使って、文字フォントを自由に使った文字を書いて、その結果のTシャツを購入できるというECサイトであった。

Generatorには特定のswfをJPEGに変換する機能があったので、Tシャツの印刷イメージやサムネイルを生成していた。

今時、BASEも含めて、Tシャツを好きにデザインするサービスというのはいくつもあるが、これは2001年の話である。

まだ僕らの頭のなかに、Google SEOという概念がなかったり、CGMで共有させるという概念がなかったので、ただ購入者がデザインするだけのサービスで、今考えるとひろがりがないのが普及においては問題だった。

完成後にどうやって使ってもらうかという改善において、SEO対策を提案したことを覚えている。当時は、まだSEOという言葉がなかったので伝えるのに苦労して、先方の担当者が理解してくれなくて歯がゆかったことを覚えている。

あと、後から気がついたことだったが、文字フォントのサーバサイドライセンスというものがまだ存在しない時代で、権利的にアレだったかもしれない。

サーバサイドの文字フォントを使ってswfを生成して、Web上にバラまいてしまうというGeneratorの機能はそもそもライセンス的にマズイ機能だったんじゃないかという話だ。

Generatorというサーバは、みなさんが知らないこともあって、残念ながら長続きせず、Macromediaが買収したColdFusionというWebアプリケーションサーバの一機能になってしまった。おそらく系譜としては、その後、ColdFusionがJavaで書き直されて、JRunの上位のフレームワークになって、その後に、応用製品としてFlexに生まれ変わってると認識しています。ここまで来ると知ってる人いるでしょ?

Generatorはサーバライセンス自体が死ぬほど高くて、1CPUで60万円ぐらいするサーバ製品だった記憶がある。その後出たFlash動画ストリーミング + node.jsみたいな機能を有するFlash Media Serverもメチャ高かったし、MacromediaのCTOが今Apple Watchを作っているように技術と先見性は明らかにすごかった。

なお、Flash Media Serverを作っていたエンジニアが、後に独立し、今、Live ECではみんな使っているWowzaというストリーミングサーバを作っているので、この辺の流れは、すべての今の技術に繋がっていて、延長線に今があります。

FlashがHTML5に、Flash Serverがnode.jsのようなノンブロッキングなサーバになったり、wowzaのようなストリーミングサーバを生み出したり、確実にMacromediaが作っていた技術には意味があった。ビジネスがよろしくなかったようで、だからAdobeに買収されたり、Appleから目の敵にされたりということなのだろう。

当然、Macromediaの技術に傾倒していた僕らも数年早すぎる取り組みをしていくことになる…。

ちなみに、Tシャツ印刷の技術も捺染印刷という技術を活用する会社で当時は1億円するプリンタの活用例としてのデモ的なサービスだったらしい。そこにネットバブル的なアイディアが乗ってECサイトに仕立てあげたという流れだったと思う。その後、このプリンタ製品はコストダウンされ、今のTシャツ生成サービスに繋がっているような話を聞いたことがあるが、詳しいことは知らない。

さらに、フォントライセンスも、後にサーバサイドライセンスというものが生まれてグレーな状態は解決されることになるが、まだ当時には存在しなかった。

さて、当時のFlashのバージョンは4。

まだ、ECMA Script(要はJavaScript)に準拠しておらず、ActionScript1.0のAction Scriptで「あれもできない、これもできない」という制約の中で、画像や文字列などの不定数のオブジェクトデータをハンドリングするスクリプトを書いていた。

元々、製造業の機械制御の開発で、PLCという独自言語を使っていたエンジニアだったわけだが、両方共に「C言語でもVBとかでもない謎の言語」という視野において、Action Scriptは非常に新鮮だった。

それと同時に、機械制御はミッションクリティカルなシステムを扱っていて、バグを出すと人が死んだりしかねない製品だったのに対して、Flashで少々バグを出しても誰も死なないわけだが、それでも、やってることは対して変わんないなぁと思っていたことを思い出す。

ミッションクリティカルや否やというのは技術の話ではなくて、開発者がバグを出さんとする人の心の持ちようと、それを守る業務プロセスの有無の問題であって、業界またいで転職しても制御性については、頭の中で考えていることそんなに変わらないというのが、その時の結論である。
(ただ、強いていうとフィードバックの概念を持ってないエンジニアを見ると頭が痛くなる。オープンループで制御するなよ、と。オープンループの典型例は、なんとなく理由がよくわからないから100msec待つとか、そういう奴ね。shell scriptならまだしも。)

当時のFlashはストリーミング再生技術と、ActionScriptの相性が悪く、ちゃんとオブジェクトを読みこんでないタイミングでScriptが走ると、うまく動かないという特性があって、Now Loadingの技術などが流行ったりしたが、まあ、そういうのもちゃんとFlashの特性を理解してコードを書いていれば問題ないのだが、世の中には、リロードしてブラウザキャッシュされていないと、まともに動かないFlashなんてのが山のようにあって、Nowloadingのコピペ問題も含めて粗悪な作りのものが乱立していたのを思い出す。

もし、それがミッションクリティカルな言語であれば、粗悪な作りを許容しないようにするために、しっかり言語やフレームワークの方で同期性を取ってあげて「誰がうっかりコードを書いても、ちゃんと動くようにしてあげる」というのが解決法なのだと思うが、それは過保護にミスを防ぐ仕組みであって、ミッションクリティカル性とは無関係だ。

しかし、Flashの本質は「すぐに再生されるアニメーション」であって、「リッチメディアのプログラミング言語」ではなかった。少なくともその時代では、まだアニメーション制御スクリプトにサーバアクセス機能がついただけのものだった。その技術を応用して、勝手にリッチに使っていた人がいただけだ。

そういえば当時、こんな特許を出願したのを思い出した。

コンテンツ処理システム

動画の視聴ログをサーバで取得する仕組みの特許である。

当時は、DHTMLでJavaScriptで制御するというのは、ブラウザ互換性を取らなくてはいけないから面倒くさい作業であった。そもそもまだNetscape4に引導が渡されていない時代だった。当時は、RealPlayerという動画再生プレーヤーがあって、この上で、SMILというXMLの言語で記述すると、時間軸に沿ったオブジェクトの制御ができた。

これの視聴ログを取得するために、15秒毎にFlashを読み込んで、読み込んだFlashはいい感じにサーバにビーコンを投げて、通過ポイントの秒数をサーバで取得できるという特許だ。6分の動画であれば、15秒毎に送られるビーコンの数は、4 * 6 = 24ポイント であれば、20ポイント以上ユニークなビーコンを取得できれば80%以上は見ていることがわかるので、例えば、社員教育用の動画を見たことを証明することになるので、リモート教育などに使えるという応用例につながる。大学の遠隔教育で単位をあげる基準にも使うとか、そういう応用例があった記憶があります。

後に、JavaScriptで同じ機能を実装した時には、カラのImgタグを動的生成するという、今時よくある技術で代用した。
これもFlashを読み込めば、自動的にScriptが実行(再生)されるという特徴を活かした技術だった。

ということで、かなりFlashは技術として好きだったんですよね。2000年にデジハリに通ってて、卒業制作発表みたいなところで、授業では1mmも触れていないFlashで作品を作って、そのプレゼンで「Flashマジ凄い」とか言ってても。誰も審査員が理解できなかったよなー、という空気感を覚えている。

まあここでは別に理解されなくてもいいや、と思う程度にはFlashが凄いことに関する自信はあったので、その後フロムビッツでは結構活躍させてもらいました。

ただ、当時の僕が致命的に甘かったのは、技術的には何か面白いことがやれることだけは認識していたが、ビジネス的にそれが何に役に立つとかは考えずにやっていた。それだと自信が持てないんですよね。

市場が見えていないということは、世の中のユーザーニーズやレベル感と、自分達が考えている技術的な常識に乖離があったと思うし。明らかに「こんなこと誰でもできるから、もっと価値のあることをやらないと意味がない」と思い込んでいたし。

でも、Webは技術とビジネスが直結しているのが面白いですね。

以下の2記事が公開されて、それを読みながらふと思い出していました。

関連記事:
えふしんに聞く「僕が若手エンジニアならこれを学ぶ!」トップランナーの考える成長戦略
及川卓也×えふしん×庄司嘉織が語りつくす! エンジニアを悩ます「35歳定年説」の正体とは?

多分、こういうことを思い出す出来事がいくつか重なってるということは、きっと僕の今において何か意味があるんだろうなぁ。

【PR】ご意見、感想などは是非、mstdn.fmのローカルタイムラインでお聞かせください