10年前の自分に伝えたい、勉強しておきたかった技術

# はじめに

Qiita運営が、Qiita 10周年記念イベントの一環として、「10年前の自分に伝えたい、勉強しておきたかった技術」を募集していました。

https://qiita.com/official-events/1e99fc384200c38548fd

私も直近10年を振り返って、

- 過去10年の間に生まれ、現代では欠かせないものとなった技術
- 10年間の技術
- 10年前に勉強していて、今も活用できている知識

を考えてみたいと思います。

# 10年間の技術

この10年間に登場したエポックメイキングな技術を振り返りたいと思います。

## 2013年 Docker登場

https://www.sbbit.jp/article/cont1/34350

2013年に、コンテナ型仮想化ツールのDockerが登場してから、あっという間に世界中で使われるようになりましたね。

コンテナ型仮想化ツールのDockerとハイパーバイザー型仮想化のVMWareの過去10年間の検索件数をGoogle Trendsで比較してみると、

> **日本の検索件数**
> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114392/2d60daf2-4e20-4eb8-5beb-efd8ff699e1c.png)
> 
> **全ての国の検索件数**
> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114392/9c0b7cc0-8e7b-bb67-9ba7-de75c990a6be.png)
> 出典：[Docker, VMware Workstation Player - 調べる - Google トレンド](https://trends.google.co.jp/trends/explore?date=2011-08-18%202021-09-18&geo=JP&q=%2Fm%2F0wkcjgj,%2Fm%2F03bxkqb)

日本では2015年に、世界では2014年に検索件数が逆転しています。

Dockerの登場からわずか1,2年の出来事です。

とんでもないペースで普及したことがわかります。

私は、2016年頃にDockerを知り、2017年にDocker関連の最初の記事を書きました。

https://qiita.com/kannkyo/items/206eba2c5bfdca94f430

Docker登場前には、Vagrantを使った仮想サーバのブートストラッピングが盛んに紹介されていましたね。

https://qiita.com/kannkyo/items/7ee6ed12d0c3ca66d369#bootstrapping-tool

当時は、私もVagrantを一生懸命勉強していました。

しかし、試しにDockerでredmineを構築したとき、Vagrant + Virtualbox で数10分かかっていた起動処理が、Dockerではわずか数秒でできたことに非常に驚きました。

コペルニクス的転回やパラダイムシフトっていうのは、こういうのを言うんでしょうね。

今やコンテナ型仮想化技術は、OS (Operating System) に次ぐ重要な計算機インフラになっています。

## 2014年 HTML5登場 1999年以来のバージョンアップ

https://it-trend.jp/development_tools/article/32-0006

2014年に、1999年以来のHTMLのバージョンアップであるHTML5が登場しました。

HTML5が登場するまでは、HTMLの言語規格はXHTMLとHTML4に分岐し、Adobe Flash playerやMicrosoft Silverlightなどのリッチ・インターネット・アプリケーション(RIA)の技術が乱立していました。

https://atmarkit.itmedia.co.jp/aig/07wcr/ria.html

非常にややこしく、勉強するのも大変でしたね。

しかし、iOSでのHTML5採用により、スマートフォーンの普及とともにHTML5が一気に普及しました。

https://sterfield.co.jp/designer/ios10%E3%81%AEsafari%E3%81%A7video%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E5%86%8D%E7%94%9F%E5%AF%BE%E5%BF%9C/

HTML5では、ビデオなどのメディアファイルの埋め込み機能が新規に追加され、文書を構造化するためのマークアップ機能も充実しました。

https://thinkit.co.jp/story/2012/04/17/3518

当時、ようやくモダンなウェブサイトを構築するために必要な機能が揃ったなぁ、と思ったことをよく覚えています。

## 2015年 ES2015登場 2009年以来のバージョンアップ

https://thinkit.co.jp/article/10434

2015年に、2009年以来のJavaScriptのバージョンアップとなるES2015という規格が登場しました。

ESというのはECMAScriptの略称です。ECMAというのはJavaScriptの規格を制定している団体のことです。一般に言われるJavaScriptは、狭義にはECMAScriptのことです。

ES2015 登場以前のJavaScriptは非常に使いにくく、評判がよくありませんでした。

ぶっちゃけ、JavaScriptはブラウザで処理を実行するために仕方なく使うメンドクサイ言語という心象でした。

https://qiita.com/a_rcsin/items/0a3c8c98c8d703c49a22

その結果、CoffeeScriptやTypeScriptといったAltJSという、トランスパイルしてJavaScriptを生成する言語たちが登場し、JavaScriptの権威は失墜。

https://book.yyts.org/overview/before-typescript#nakijsnoaltjs

しかし、これらの悪いイメージはES2015の登場により払拭されました。

https://qiita.com/rana_kualu/items/1f98c1a642102f48aa78

ES2015は、もはやJavaやPythonでは常識となっていたクラス、ラムダ式、モジュール等のモダンな機能を一挙に追加。

一躍、モダンな言語の仲間入りを果たしました。

その後も、毎年言語を改定して、進化を続けており、今ではPython, TypeScriptに並ぶスクリプト言語の雄に成長しました。

## 2017年 量子計算フレームワーク Qiskit登場

https://qiskit.org/

2017年に、Pythonの量子計算フレームワーク QiskitがIBMからリリースされました。

この頃まで、IBMやGoogleで量子計算機の研究がされていることは知られていたものの、一般に使える状況ではありませんでした。

2016年にIBMが量子計算機をオンラインで公開し、2017年にQiskitをリリースしたことで状況は一変します。

https://ja.wikipedia.org/wiki/%E9%87%8F%E5%AD%90%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF#2010%E5%B9%B4%E4%BB%A3

Qiskitにより、Pythonを使える全てのエンジニアが量子計算機を使えるようになったのです。

Qiskitの登場以降、2018年にGoogleがCirqを、2019年にMicrosoftがq#を発表し、量子計算フレームワークは群雄割拠の戦国時代を迎えて今に至ります。

更に、IBMは、2021年には量子コンピューティング分野で世界初となる開発者認定制度（IBM Quantum Developer Certification）を開始するなど、破竹の勢いで量子計算のコミュニティをリードしています。

https://www.imagazine.co.jp/ibmq-certified/

今後の動向に注目ですね。

# まとめ

10年間を振り返ってみると、

1. 新しい技術(Docker, Qiskit)の登場
1. 古い技術(HTML, JavaScript)のモダン化

という2つの波があったように思います。

次の10年は、

1. 新しい技術へのアンテナを常に立てておく
1. 今後も使えそうな古い技術を嗅ぎ分け、ときどき動向を確認する

という二正面作戦で勉強し続けたいと思います。