サヨナラは言わないよ！きっと良い未来はやってくる。またね、Flash！

本記事は <a href="https://qiita.com/advent-calendar/2020/icare" target="_blank">iCARE Advent Calendar 2020</a> の24日目です。
皆さん、こんにちは、こんばんは、そしてハッピーメリークリスマス♪
クリスマスをどのようにお過ごしでしょうか？
今年はコロナウィルスによる大変な1年でした。
今も尚、世界中で大変な状況が続いておりますが
世界中の一人でも多くの方々が健やかにクリスマスを過ごせる事を祈らせていただきたいと思います。
#はじめに
###今でもFlash(現AnimateCC)を使うと、ものの３分でこんなモーフィングアニメーションが作れちゃいます(HTML5 Canvasで)

※Qiita上でスクリプトの実行が出来ないので、↓のアイコンをクリックしてアニメーションを見てみてね！
<a href="http://www.seigo-akamatsu.net/icare/iCARE2Carely.html" target="_blank"><img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234419/c39a14f1-4baf-49ea-d3ab-840675c515f9.png" /></a>

#2020年12月31日でFlash Playerのサポートは終了します
つい先日、サントリーさんがFlash終了を惜しんで追悼コンテンツを公開してくださいました。
まだご覧になられていない方は是非早めにご覧になってみてください。
<a href="https://www.suntory.co.jp/softdrink/craftboss/flash/" target="_blank">https://www.suntory.co.jp/softdrink/craftboss/flash/</a>
見た方の世代や経験によって反応はまちまちだと思いますが
<font color="red"><b>懐かしい！！！！</b></font>と感じられる方と
<font color="red"><b>なんじゃこれ！テキストがびがびやし、色使いすぎやろ！なんでマウスに何かついてくるねん！</b></font>
という方と大きく二通りに分かれるかと思います。
このサイト(コンテンツ)は20年前の2000年前後の頃に良く見られていた光景を敢えて再現したものです。
このサイトの作りそのものはFlashとは無関係ですが、こんな頃からFlashは活躍し続けてきたんだよという事を
表現されているのかと思います。
個人的にはサントリーさんではなく、Adobeにもっと何かやってほしかったですが
残念ながらFlashは本質的にMacromediaの製品だったように思います。

#現在のフロントエンド技術の基礎はFlashが牽引してきた
いまでこそ、非同期通信を利用したSPAなどのフロントエンド開発が一般的になっておりますが、Flashはそれらの機能を遥か昔から実現できていました。(2000年頃には)
私が初めてFlashと出会ったのは1998年頃のFlash3の頃だったと思います。
その次のFlash4(恐らく1999年頃？)には<b>loadMovie</b>や<b>loadVariables</b>などの関数で
非同期通信が既に可能で、外部のデータやswf形式のコンポーネントを非同期で読み込み
バックエンドやデータベースと連携したコンポーネント思考のコンテンツの開発が可能でした。
(ただし、プログラミング言語としての<b>ActionScript</b>は<b>TypeScript</b>のような型志向の言語ではなく、ES3をベースとした緩い言語だったので、この点におけるチーム開発環境などは軟弱ではありました)
HTMLDOMなどと違い、圧倒的に自由度が高かったのでリッチなコンテンツが多数誕生し
RIA(リッチインターネットアプリケーション)という言葉も誕生し、その延長線上で
UI・UXが大いに議論されました。
UI・UXというワード、概念を広く一般に流布するのにもFlashは多いに貢献したと思います。
改めて冷静に振り返ると現在のフロントエンドのフレームワークのReactやVue.jsなどが
実現している事を実行環境の面においては遥か20年前に実現していたという事に驚きます。
(開発環境面は異なります)

#FlashはWebの歴史に大きな足跡を残した
先に紹介したフロントエンド技術の面でも勿論大きな軌跡を残してきたかと思いますが
皆さんが意識せずに目にしてきた様々なアニメーションやコンテンツは
Flashで制作され、提供されてきました。
鷹の爪や古墳ギャルコフィーちゃんなどコンテンツはご存知でしょうか？
特に鷹の爪の吉田くんは未だ健在で有名です。
あれらのコンテンツはFlasherとして有名な<a href="https://twitter.com/ono_ryo1">フロッグマンさん</a>が
お一人でFlashを利用して制作したコンテンツです。
ニコニコ動画の誕生もFlashのお陰です。誰もが見た事がある映像の上にコメントのテキストが流れてくる動画は、Flashにより実現されたものです。
その他、2ch(現在の5ch)などでも沢山のFlashムービーが誕生し
インターネット上のコミュニケーションに貢献してきました。
（有名どころを動画で紹介しているサイトがあったので、<a href="https://www.iwako-light.com/entry-hlashdouga">こちら</a>で紹介します)
また海外でもFlashでショートムービーが制作されたり、映像制作のプロの現場でも多いに貢献してきました。
昔はリッチなフルFlashサイトを紹介していたFWAというサイトが現在もリッチサイトの紹介を続けているので興味のある型は<a href="https://thefwa.com/">こちら</a>を覗いてみてください。
![takanotsume.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234419/464bebef-eba1-6c62-b3c1-6424ded0bff8.jpeg)

#Flash Playerは終了してもAdobe Animateはまだ終わらない
元々Flashというワードは開発ソフトの名前でした。
現在は名前が変わりAdobe AnimateCCという名称で開発環境は残っています。
本年末日で終了するのは厳密には開発ソフトではなく、実行環境のAdobe Flash Playerの事を指しています。
Flash Playerとは開発環境であるAnimateCC(旧Flash)が生成するswfという形式のバイナリファイルを実行可能にする為の
ブラウザのプラグインの事を指し示しています。
今後長い時間軸でAnimateCCがどうなっていくかは現時点ではなんとも言えませんが
Flashと共に生きてきた私としては消えずに残り続けてほしいという気持ちが強いです。
Flash PlayerがなくなってもAnimateCCはHTML5のCanvasという機能を使って
近しい表現を実現可能として自動生成してくれる機能があります。
<a href="https://createjs.com/">CreateJS</a>というJavaScriptのライブラリでCanvas上にWebアニメーションを実現します。
Flash(AnimateCC)の良い面は使う側の自由度が異常なまでに広いというところです。
プログラムを書けないデザイナーにもアニメーション制作が可能で
プログラムを得意とするプログラマーでもアニメーションが簡単に作れます。
私自身の経験としてFlashでキーフレームなどの動画の概念が学びとれたり
見た目と直感的にリンクしているムービークリップという名のオブジェクトでOOP(オブジェクト指向プログラミング)を学べたり
アニメーションの基礎も学べました。
偶然覗いた自宅の近所の中学校の学園祭で中学生がFlashを使って簡単なゲームを開発して公開していました。
Flashはプログラミングやアニメーションなどの学習教材として考えても非常に価値の高いソフトウェアだと
思いますので、そいういう側面でも残ってくれると嬉しいです。

#では何故Flashは終了するのか？
###RIAからセキュリティの時代へ
これが原因と断言することはできませんが、大きく２つの理由があるように思います。
１つは資本主義社会における政治的事情。
ソフトウェアだけでなく、様々な業界の様々な物が資本主義の圧力に潰され続けています。
もう１つの理由とも関係が深いですが、１つの側面でいうとiPhoneにFlash Playerを搭載する事が認められなかったというのが非常に大きな側面だと思います。
所謂ガラケーにはFlash Liteというソフトウェアが搭載されて実行可能でした。
もう１つの理由は、このインターネット時代でFlash Playerのセキュリティの維持が難しくなってきたという事だと思います。
セキュリティの重要性はエンジニアとして理解はしていますが
昔に比べてプログラミングも随分と窮屈になりました。
様々な便利なフレームワークが提供され、それらを利用すると定型的な機能や表現が容易に実現でき
同時にセキュリティも担保される。
ただ純粋にプログラミングを楽しむという意味ではフレームワークは不自由だと私個人は思います。

#フロントエンドエンジニア時代突入
近年のフロントエンド技術の進化、変化は大変なスピードです。
エンジニアとしてキャッチアップしつづけるのも容易でなくなってきています。
しかしながら、<b>TypeScript</b>などの<b>AltJS</b>によりWebフロントエンドもトランスパイル型での開発が
一般的になりつつある昨今、過去のソフトウェアエンジニアのような立ち位置として
フロントエンドエンジニアが急速に求められています。
まだまだ発展途上でどういう方向に進化していくか楽しみではありますが
Flashから教わった経験を活かしてフロントエンド開発と向き合っていきたいと思います。
Flash！20年間近くの間、本当にありがとう！
Flashなくして僕の人生は語れません。またいつか！

#おまけ
<iframe src="http://www.seigo-akamatsu.net/icare/iCARE2Carely.html" width="480" height="200"></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/vJVZ3PsXqYI" frameborder="0" allowfullscreen></iframe>

<a href="https://qiita.com/advent-calendar/2020/icare" target="_blank">iCARE Advent Calendar 2020</a>、明日はRails界の超有名人Willnetこと前島さんが
「テストについて」を書いてくださる予定です！お楽しみに！！！

<a href="https://www.icare.jpn.com/">株式会社iCARE</a>ではフロントエンジニアは勿論の事、様々な職種を絶賛<a href="https://www.wantedly.com/companies/iCARE/projects">大募集</a>中です。
開発チームについての情報は是非<a href="https://dev.icare.jpn.com/dev_cat/">こちら</a>をご覧ください。
興味を持たれた方は、まずはお気軽にカジュアル面談にてお会いしましょう！！