adobeがFlashを廃止するというニュースが出てから,ビスケットは大丈夫ですかというご心配の声をいただくようになったので,少しこれまでの歴史も踏まえて書いてみたいと思います.
一番最初のビスケットは,本当に実験室レベルのアプリということで2003年2月頃から作られました.いわゆるウインドウズのアプリです.
多摩美から卒業制作で関わりたいという学生(みゆきちゃん)が来たので,彼女が卒業できなくなっては大変ということで,ちゃんとした動く絵本が作れるアプリを作り始めます.同時に,10月にICCでビスケットを展示するということも決まってMacの方々には有名なイラストレータ「るじるし」さんにイラストをお願いしまして作りました.このとき,イラストとかデザインのプロが加わると,ソフトウェアのレベルが一気に上がる,ということを実感します.これまでは実験室レベルにしか見えなかったアプリも,見た目が違うだけでなんとなく製品ぽく見えてしまうという.
ここまではC++で作りました.QtというGUIのライブラリを使ったので,一つのコードがWindowsとMacの両方で動きました.1年ぐらい遅れて,会社の知財部門を説得して,これらのアプリをWebで公開しました.
この時のアプリは,最初から動く絵本が作れて,実験的にロボットやセンサーなんかも繋いだり,外部の絵を取り込んだり,録音した音を鳴らしたり,今思うと結構何でもできました.単体のアプリとして必要そうな機能は一通り揃っていて,すぐにでも売りたかったのですが.裏話ですが,2004年頃,このアプリをもって営業の人たちといろんな会社にデモに行きました.当時,研究所の成果で重点的に営業をするというのの一つに選ばれたりしたので.いまプログラミング教育で騒いでいるような教育系会社でも,?が三つくらい並ぶような反応されましたよ.尺取り虫は受けましたが.それがなに?って感じ.そういう営業も虚しく,結局1円も稼ぎませんでした.その時の印象としては,プログラミング教育って本当に誰からも求められていないんだということでした.
そういう活動をしながら,ワークショップなどをやっておりますと,いろいろな問題が出てきます.
- 現地で修正したいことがでてきても,アプリなので1台ずつ更新しなければない.
- 作られた作品が,それぞれのPCに保存されているので,それを集めるのが大変.
僕は売る人間というより,作る人間ですから,もっとネットを意識したものを作り始めます.Javaでつくりまして.2005年に会社の民営化20周年のイベントに出展して,みんなで一つのスクリーンを作る展示もやりました.javaバージョンは一般に公開することなく,このまま消えました.
Flashの記述言語 action scriptがそれまでの変な言語から普通のオブジェクト指向言語に変わりまして,ここからFlashでの開発が始まります.だいたい2008年ぐらいからだと思います.javaと違って,ブラウザを開いてからの起動が速かったのですよね.それが言語を変えた理由ですが.
社内でソフトウェアを無償配布するということはそれはそれは面倒な手続きが必要でして,まあ,自分の人件費と研究費をかけて作られたものなので,そこから少しでも収入をと考えるのは仕方がないのではありますが.ところが,Webで公開というのは,なんといいますか抜け道というか.それまでは研究者が個人でWebサーバを立てるのには申請が必要だったのですが,そこに何を置くかの届け出は必要なかったのです.なので,コンテンツとしてWebでの公開を始めます.
つい最近,ビスケットのWebが変わりましたが,それまで置かれていたビスケットは,この2009年に作られたものを少しずつバージョンアップしたものなんですよ.
2011年くらいから,世の中に合わせてスマホやタブレットでも動くようなビスケットの開発が始まります.このとき,AndroidではFlashが採用されていたので,そのまま動くだろうと思ったのが甘い考えでした.
マウスからペンタブレットへの変化はそれほどソフトウェアは大きく変化しません.強いて言えばダブルクリックはペンだと結構難しいくらいでしょうか.ところが,指で直接タッチとか,2本指,3本指という操作は,これまでの考えとは全然ちがってくるんですよね.あとは,指で引っ掛ける操作ですか.そんなことを作りながら気づいて行きまして.2011年からに作り始めたandroid用のアプリは何年間か頑張ってくれましたが,作ってて結構辛かったです.2014年くらいは,もう退職も迫っていたので,新しい開発をスタートすることもできず,ダメなコードをだましだまし使ってました.でもaction scriptはこの頃からすごくて,androidだけじゃなく,iOSのアプリも作れるようになるのです.ストアには起きませんでしたが,iOS用も作りました.
これまでの開発は,会社から研究費と人件費をいただいて作っていたので,その成果は全部会社に取られるというのは当たり前のことなんですが.それでも,寝ないで作ったプログラムも全部取られるのは釈然としない部分もありました.
退職しまして,安定した収入を捨てて,やっと自分の書いたコードが全部自分のものになるという状況になりました.
で,作ったのが今のバージョンです.アプリとしてリリースもできました.これもaction scriptで作られています.なぜaction scriptにこだわっているかですね.
一つは僕がそういう言語が好きだからです.action script は動的な言語なんですが変数の型が割ときっちりと決まっています.型の揃えた配列はそれなりにきっちりとメモリーに詰め込んでくれます.ときどき形無しのデータが混ざったりもして,そういうコードは便利ではあるんですが,書いていて気持ちが悪いですよね.
もう一つは,同じソースコードで一番多くのプラットフォームをカバーしているからでもあります.android, iOSはもちろんですが,Flashなのでブラウザが動けば全部動きます.つまり,windows, mac, linux (Chrome book)ですね.さらに,AIRのアプリとしても動きます.こちらはブラウザの中という制約されたものではなく,アプリなのでパソコンのファイルにも直接アクセスできます.これでwindowsとmacの両方のアプリが作れます.唯一動かないのがRaspberry piです.
Flashが動くというのはみなさんとても悪のように言いますけど,僕はとてもよい技術だと思います.逆にjavascriptがよいと言いますが,まあ年々進歩しているのであれのまずいところは少しずつ解消されていますが,最初の頃は本当にひどかった.それまではOSのことさえ考えればよかったのです.昔のMacは気持ち悪くてOSのバージョンも結構うるさくて,バージョンが上がるたびにコンパイルしなおしというひどい感じでしたが.それでもOSのことだけでよかった.ところがjavascriptは違います.OSだけじゃなく,どのブラウザか,そしてそのブラウザのバージョンは何か,まで考えないといけない.それぞれ動きが少しずつ違うんですよ.いまは,そういうブラウザの違いを吸収してくれるライブラリがあるからいいけれど.それでも未だにWindows 7の古いIEとかあるんですから.なんかwindows 7をダウングレードして使っていることがかっこいい,的な時代がありましたが,もういやですよ.
みんながみんな,最新の技術を入れてくれれば苦労しないのですが.そういうとても古いのから最新のまで,アプリを作る側は何も考えなくてもいいのが,Flashの素晴らしいところなのです.だって,僕が2009年くらいに作ったアプリがまだちゃんと使えているんですから.
Appleはハードウェアとソフトウェアを一緒に売る会社だから,戦略として古いソフトウェアを切り捨てる傾向がありますよね.それから,これはもともとゲーム機にあった傾向ですが,スマホなんかも開発環境を自分のところに閉じさせて,他のOSでの開発を妨害する傾向にあります.開発の資金があるところは,同時に何種類ものソースコードを書いても平気でしょうけれど.しょぼいところは,一つのソースで出来るだけ多くのプラットフォームで動いてもらわないと.つらいわけです.
Flashが消えるということに関しては,ブラウザの画面の中で勝手に実行してしまうプラグインとしてのFlashが消えるのは仕方がないことだと思います.これだけ顔の見えない悪人がインターネット上にゴロゴロしている状態で,無防備でいろ,って話ですからね.
でもブラウザ以外のaction scriptは消えないと思います.Android, iOSでのアプリ開発だけじゃなくて,AIRアプリとしてWindows, Macも結構良いです.これらは普通のアプリと同じ手順で配布・インストールしますから,安全です.ブラウザの画面で勝手に実行するのとは違います.OSの変な囲い込みと違って,一つのコードがいろんなOSで動くというのはやはりよいですよ.強いて言うと,chrome book やraspberry piなどのLinux系は今のところAIRが動かないので,今回のFlash廃止で,一番困るのはchrome bookってことかな.まあ,あっちも,chromeのブラウザのプラグインの開発という手があるので,AIRでプラグイン開発ができるようにならないかなと思ってます.
で,いまのバージョンも開発スタートしてから3年くらいたったコードなので,細かいところまで気配りできている反面,いろいろな不具合もでてきています,そろそろ作り直しかなという感じです.
なんかオススメの開発環境があれば教えていただきたいです.でも,なかなかaction scriptを超えるのってないんですよね.