JavaScript はとてもパワフルです。他言語もつかいこなせるようになればパワフルなのは当たり前なのですが、JSには絶対的に他言語にはかなわないパワフルな点があります。
普通のWebアプリケーションとよばれる動き
これは、かつて、Web2.0とよばれるようなもので実現していたものなのですが、Web系言語の仕組みはこのようになります。
・HTMLで画面を表示する
・ブラウザで何らかのボタンを押す
・サーバーに問い合わせる
・サーバーで、PHPやRubyやPythonやらが動く
・返答するためのHTMLが返される
・ブラウザで表示する。
ここで、きれいな書き方ができるかどうか、みたいなことになります。
掲示板とか、ブログシステムとか、さまざまな誰でも書き込んだり投稿できたり、そういうシステムがこの仕組みで作られていました。
JavaScriptは、ブラウザで動く。
JavaScriptはブラウザ上で動きます。これが、他言語と決定的に違うものです。ブラウザ上で動くので、以前は単なるWebページ上のちょっとしたアニメーションなどに使われていました。
現在それが異なる様子になってきています。
世の中にはインパクトを与えていないかもしれませんが、技術者のレベルでは、Web3.0時代じゃないのか!と思うように大きな変化が、ひたひたと裏で行われてきています。
これについて、私の肌で感じる感覚でしかないのですが JavaScript の技術者界隈では興奮さめやらない感じで技術進歩がおこなわれています。
何が変わるのか。このように変わってきています。JavaScriptで最近はやりっている React や Vue を使うとこのようなWebページをつくることができます。
・JavaScriptでHTMLを生成することで画面が表示される
・ブラウザで何らかのボタンを押す。
・サーバーに問い合わせる。ここをJavaScriptのスレッド(同期)処理で行うので待ち時間がない
・サーバーで、Node.jsなどでJavaScriptが動いて、JSONをデータとして返す
・ブラウザ上でJavaScriptがJSONに基づいてHTMLを生成する
・ブラウザで表示する。
サーバーで動くものは、実際には、PHP/Ruby/Python/Javaなど、なんでもいいのですが、JavaScriptも使用することができます。JSONを返すところは、APIと呼ばれていて、仕組みによれば、RESTfulAPIとよばれるようなものになります。
何が違うのか
体感していない人にはなかなかわからないことですが、JavaScriptエンジニアなら、何をいわんとしているかわかりますよね、ニヤニヤされることでしょう。
全てが JavaScript で書ける、というのは、1つのメリットですが、それは大きなものではありません。
大きなメリットは、APIとのやり取りにJavaScriptの機能をフルに使うことができ、データを取得するときに裏で取得しておいたり、何段階にもわけてデータを取得したり、画面を表示してからあとからデータを切り替えたりすることができるのです。
データ通信が必要ない、あるいは先読みすることができるような、Webページ切り替えなどは、全くリロード時間なく通信もなく、すっとJavaScriptでページ切り替えしてしまえば、一瞬でページが切り替わるようなWebサイトができるのです。
これは、従来のWebページの概念がかわり、まるでスマホのアプリをさわっているかのようにWebページでなんでもできるようになってくる、ということです。
このようなことは、JavaScriptにしかできない、大きな特徴となります。
かつて、GoogleMapが世界を驚かせた。
そして全てのWebページが今変わろうとしている
かつて、GoogleMapが登場したときに、多くの人が度肝をぬかれて、GoogleMapをつかいはじめました。AJAXという仕組みによって、Webページなのに、Webページのような感じには見えないサイトだったからです。
これは、地図の画面をスクロールしたりズームしたときに画面を止めることなく、画像をJavaScriptで同期(スレッド)で取得しながら動かすということを実現したからでした。
これが、全てのWebページで同じことが実現できる仕組みが、ようやく整ってきた感じなのです。
サーバーに情報を問い合わせる場合は、Ajaxの技術を使ってサーバーと通信して、結果をJSで描画するので、画面描画に関する通信がなくなり通信量が少なくなって高速化されますし、同時に、スレッド処理(同期処理)での通信なので画面が停止せずにWebページを切り替えることができます。
Webページがどんどん、読み込み時間がなくなっていくものがつくられていきます。
Webページの全てがかわってきています。そのために使われるのが JavaScriptです。これが、JSの強力なメリットであり、他のWeb系言語は全て JS には全くかないません。たぶん JavaScriptエンジニアはよく知っていても他言語を使っている人はまだ気がついていない人も多いかもしれません。
そういうわけで Webの未来を作り上げるものは、JavaScript だけになります。
JavaScript 以外を学ぶよりかは、JavaScript を学ぶべき時代にいるということになります。
古いタイプのエンジニア
少し表現はことなるかもしれませんが、現在は、ガソリン自動車が電気自動車に置き換わっていっている時代です。ハイブリッドも多く走っていますよね。
あなたが、もしこれから車業界のエンジニアとして第一線を走りたいのなら、ロータリーエンジンやVx気筒のターボスーパーチャージャーのガソリンエンジンを研究して開発していくべき、なのではありません。それらのエンジンの技術的価値は大変すばらしいですし、もっと研究すべき課題も山程あるのかもしれませんが、仕事が安泰ということにはなりません。
数年後にエンジニアとして使い古されて、首ですさようなら、とされないためには、現在進行系の新しい技術を自分に得させなければいけません。
電気エンジンや、ハイブリッドエンジンの技術者になっておけば、仕事がなくなることはなく、転職しても、いくらでも世界で生き残ることができます。
会社つとめで与えられた仕事をこなしておけばいいという時代はもう終わっています。会社員でもかまいませんが、フリーランスとして、自分のビジネスとしてエンジニアをやるのなら、それはもう同じ時間を使うのなら、新技術を学ぶしか、成功する方法はありません。
あなたが学ぶべきなのは
あなたが、古いタイプのエンジニアではなく、新しいタイプのエンジニアとして、稼ぎまくるためには JavaScript を選択するしか手がない、というのが、今現在の答えになります。
すいません、押し付けがましくなりました。
でも、あなたに着実に成功してもらいたいので、自分がもっている知識をフル動員してこのような記事をかきました。
本当は自分の道は自分で、きめてください。
そして この、プログラミング塾 ゼロプラスワンで、JavaScriptを学びたくなったら、その時はどしどし利用してください。