Vue、React、TypeScript、どれをとってもベースはJavaScriptです。フレームワークって便利だなって関心しても、結局はJavaScriptを知らないと不自由さを感じるんですよ、という話。
JavaScriptとは
最近、使い始めたばかりだから、きちんと説明できる自信はないけど、Web技術を支えているもっともメジャーな言語という感じです。
ChromeやSafariなんかのブラウザはJavaScriptを解釈するエンジンを内部に持っていて、どのブラウザもこの言語を理解できるんですね。VBA(JavaScript)とExcel(ブラウザ)みたいな関係ですよ。
ネット見るときは、意識することなく、みんな自分のPCやスマホでJavaScriptを走らせてるイメージです。
Web系のシステムが巨大になるにつれて、この言語も発展してて、JavaやC#やPython的な言語に近づいている感じ。静的型付けの機能が追加されたら、ほぼ他の言語と同じになります。
開発する人にとって面倒なのは古いJavaScriptで作ったシステムと、新しいJavaScriptの今風のシステムがあって、JavaScriptの歴史みたいなのや、JavaScriptを取り巻く、いろいろな技術を知る必要があることです。
けっこう沢山あるんですよ。
便利なフレームワーク、でもJavaScriptは知っとかないとわからない。
JavaScriptを土台にもっと複雑なシステムを楽に作ろうってできたのが、VueやReactなどのフレームワークです。JavaScriptの不自由さ、ごちゃごちゃになった状態を知っていると、フレームワークのありがたみがとても良くわかります。
逆にいうと、最初にフレームワークやって、それが標準だと思ってると、わからないことが、あとからあとから出てくるんですよね。結局JavaScript知らなきゃ話にならないんですよ。
自分がそのパターン、なので、あとからJavaScriptの勉強してますね。やってて思うのは、ブラウザがあれば動くし、手軽にプログラムやるのは最適なとこ、VBAみたいなもんだと思うとより身近になりました。
JavaScriptをやって初めて知ったDOM構造
DOMというのは、ブラウザのオブジェクト構造で、エクセルでいうシートやブックみたいな集まりのことで。DOMっていうのをJavaScriptで制御して、画面のデザインを変えたり、データを制御したりできるんですよね。
フレームワークやってても、しょっちゅうDOMの話が出てきて、意味がよくわからなかったけど、JavaScriptで実際に触ってみてやっと理解ができました。
JavaScriptはインターネットの歴史みたいなもん
最初は、ごちゃごちゃして嫌だなと思ったけど、インターネットのホームページがどんどん昔に比べてキレイになったり、リアルタイム通信できるようになったりしたのも、JavaScriptの発展がとても寄与してるんです。
なので、ブラウザごとにJavaScriptのエンジンが違ってて、ブラウザ各社が先に新しい技術を導入してて、その後、生き残った技術で標準化が進んだという感じみたいです。
フォーマルなJavaScriptの規格がEcma Scriptっていう規格で、JavaScriptはその規格のバージョンで管理されてます。ES3とかES6とかES2015とかって感じです。
変化、競争の激しいネット世界で、メジャー言語として生き残ったのがJavaScriptなんで実はスゴイ言語なんですよ。当然歴史も知らなきゃいけないわけですよ。
まとめ
JavaScriptは最初は、ごちゃごちゃしてるし、バージョンごとの違いも知らなきゃいけないなんて、面倒な言語だと思ったけど、ネットを牽引してきた言語だと理解したら、仲良くしていかなきゃって気になりました。
実際に勉強してみれば、ブラウザの基本的なしくみ、ネットワーク、重要な基本知識がバランス良く学べるのです。
ってことでした。