今回は、GitHubPullRequestの2019年1月~3月の統計で堂々の第1位にエントリーされたプログラミング言語、JavaScriptについてみていきたいと思います。
JavaScriptは主に動きのあるWebページ(動的Webページ)を作成する際に使われるプログラミング言語です。
Web系ではWebブラウザー側で動作するプログラミング言語のことをフロントエンドの言語、サーバ側で動作するプログラミング言語のことをバックエンド(サーバサイド)の言語と分類することが多いです。
この分類に従うとJavaScriptは基本的にはフロントエンドのプログラミング言語ということになります。
百聞は一見に如かずと言いますので、JavaScriptを使えばどのようなWebサイトが作れるのか、実装例をご紹介いたしましょう。
一番有名なのは、Googleが提供する「Googleマップ」です。
自由に見たいところへ移動でき、拡大縮小もできる便利な地図サービスですが、JavaScriptによって実現しています。
他にも、必須項目の入力をしないまま次に進もうとすると表示されるポップアップウィンドウや、「東京オリンピックまで残り何日何時間」と表示させているサイトもありますが、このようなタイマーなどの時刻関連の情報を表示するWebサイト上の飾りの実装に、よく使われています。
このJavaScriptの得意分野を応用することで、JavaScriptでスマートフォンアプリの開発が行われることも多くなってきました。
ゲームアプリなどで、通信環境が悪いと、読み込みに時間がかかったり、起動に失敗するタイプのアプリがあると思います。
そのような通信環境に左右されるアプリは、ハイブリッドアプリと良い、実際のシステム上の設計としては、インストールしたアプリを「専用Webブラウザー」としたWebシステムになっています。
つまり、ハイブリッドアプリ上で表示されるコンテンツは普通のWebサイトと同じ仕組みで作成されており、コンテンツの実装方法としてJavaScriptが利用されている、という訳です。
ところで、話を戻すと、JavaScriptは“基本的には”フロントエンドのプログラミング言語ということになります、と書きました。
実は、もともとはフロントエンドで使うために生まれたJavaScriptですが、最近はバックエンド、サーバサイドでも利用できるようになっています。
もっというと、MEANという概念とそれを元にしたフレームワークを使えば、JavaScriptだけでWebシステムを構築することが可能になっています。
ちなみに、MEANはNoSQLデータベースの「MongoDB」、Node.jsで動作するWebアプリケーションフレームワークである「Express.js」、フロントエンド側のフレームワークである「AngularJS」、そしてJavaScriptをサーバ側で動かすための仕組みである「Node.js」の四つの頭文字からとられたものです。
なお、MEANには「AngularJS」の代わりに「mber.js」を使ったMEENと呼ばれる派生形もあります。
いずれにせよ、JavaScriptを知っていれば、フルスタック(Webシステム開発の全工程くらいの意味です)で仕事ができるようになった、ということで、登場当時から注目されています。
JavaScriptのGitHubPullRequest上の人気ですが、2018年1月~3月でもやはり第1位でした。
記録の残る2012年4月~6月以降でみても、全期間1位をキープしており、JavaScriptの存在感は圧倒的です。
さらに詳しく見ていくと、例えば、PythonやJava、C++のシェア率はほぼ横ばい、Web系でよく使われるRubyやPHPに至っては低下している中で、JavaScriptは大きく成長しています。
一番、低かった時期(2012年4月~6月)のJavaScriptのシェア率は約18%でしたが、当記事執筆時点での最新情報である、2019年4月~6月のシェア率は約33%と、倍近くシェア率を伸ばしているのは特筆すべき状況でしょう。
この結果からみても、Web系を中心にJavaScriptの比重が非常に高まっている、ということが一目瞭然です。
さらに補足すれば、RubyとPHPはともにサーバサイドの言語とされています。
もともとフロントエンドの言語だったJavaScriptにシェア率を奪われた構図から、MEANが与えた衝撃の大きさが推測できるかと思います。
MEANに代わる新たな概念がいつ登場するのかわかりませんが、今後もしばらくはWeb系において、JavaScript一強の時代が続くでしょう。
JavaScriptのニーズが高いのは、すでにお伝えした通りですが、“JavaScriptだけ”で転職するのはちょっと厳しいと思います。
Javaなど他の高ニーズプログラミング言語にも言えることですが、利用シーンが多いプログラミング言語というのは、裏を返せば、扱えるエンジニアが多いという転職活動上の弱点もあります。
つまり、単純にライバルが多いのです。
JavaScriptができますよ、ではなく、JavaScriptのスキルがあることを前提に、プラスα部分で転職者のランク付けがされる傾向が強いと思います。
「では、プラスαってなんですか?」という質問にお答えしておくと、たとえば、Rubyなど、他のWeb業界で使われるプログラミング言語も扱えるだとか、多くのフレームワークを知っている、利用できるということが考えられます。
フロントエンド寄りでWeb業界に転職希望の方やスマートフォンアプリ開発の世界に挑戦したい方であれば、ユーザーエクスペリエンス(UX)やUI(ユーザーインターフェース)に理解があり、JavaScriptだけでなく、画面を作るための技術であるHTML5、CSSも実装できる必要があるでしょう。
他のプログラミング言語にも言えることですが、設計などいわゆる上流工程に関わった経験のある方ほど、やはり高評価を受けやすいです。
なお、求人数という考え方をとった場合、日本国内においてはJavaが頭一つ飛び抜けて一番多く、JavaScriptは、PHP、C系言語、Ruby、Pythonなどと二番手集団を構成している形になっています。
なお、二番手集団の言語を見るとC系言語以外は、いずれも主にWeb系で使われる言語であり、JavaScript/PHPといった風に、ひとまとめにされることも多いです。
実際の現場でも、フロントエンドはJavaScript、バックエンドはRubyといった風に、特性に応じて利用されていることが多いです。
逆に言えば、このあたりの言語を状況に応じて、使い分けられる人が転職市場で強い人ということになります。
JavaScriptエンジニアが活躍できる企業・業種としては、すでにご紹介した通り、Web系IT企業やスマホアプリ開発を行うIT企業です。
JavaScriptエンジニアの年収は300万円から1500万円で、平均年収は約500万円といわれています。
なお、同じWeb系でもサーバサイドエンジニアはフロントエンドエンジニアより年収が高くなる傾向があります。
サーバサイドエンジニアの方が高年収となる傾向が見られるのは、技術者の数の問題だと思われます。
一般的に、サーバサイドエンジニアの方がフロントエンドエンジニアよりエンジニアが圧倒的に少数派なのです。
これはある意味、仕方がないことです。
Webサイトを作ろう、となったとき、Webブラウザーにデータを送出する仕組みの話よりも、「見た目をどうする」という方が分かりやすくて、楽しいのです。
結果、フロントエンドエンジニアとなる方が多く、そもそもサーバサイドの技術について知らないというエンジニアの方も結構いらっしゃいます。
このような背景があり、サーバサイドエンジニアの方が少なく、単価も高いという状況になっています。
もっとも、一番、高単価なのは、サーバサイドやフロントエンドという垣根を越えて、Webシステム開発において全領域に対応できる「フルスタックエンジニア」と呼ばれる人たちなのは、言うまでもありません。
今回はJavaScriptについて見てきましたが、何度もお伝えした通り、Web系での利用が非常に高い言語です。
利用度が高いために、Web系では扱えて当たり前な空気すらあります。
今後、Web系への転職に挑戦したい方は、まずはJavaScriptを習得しておくべきでしょう。
なお、JavaScriptは習得難易度が低い言語の一つといわれており、将来性も含めてプログラミング初心者の最初の言語としても非常におすすめです。