こんにちは、皆さん!
初めてプログラミングをやる人も今まで他の言語でプログラミングをやってきた方も2020年に始めるのなら、絶対JavaScriptを使いましょう!
今回の記事ではなぜ僕がそのような結論に至ったのかを皆さんにシェアしていきたいと思う。

トピック


Javascriptとは?

では、初心者も多いことでしょうからまずはJavaScriptとは何かについて説明しようと思う。
まず、JavaScriptはプログラミング言語である。これはつまり、C++、Python、Java、Rubyなどの他のプログラミング言語と同じ分類であることがうかがえる。なぜこんなにもたくさんプログラミング言語が存在するのか?ってなるよね。実はそれぞれの言語はもともとある目的のために作られているのだ。例えば、Pythonはデータを扱うようなアプリケーションを作るためにもともとは作られていて、おかげでデータの図式化などが他のプログラミング言語に比べてとても簡単に実行できるのだ。では、JavaScriptはどうなのか?
JavaScriptはウェブサイトの開発を主な目的として作られた。例えば、あるウェブサイトでボタンを押した後、ポップアップが出てきたり、計算機が作動して計算をしてくれるなどの動作を可能にしているのがJavaScriptなのだ。

さあ、簡単なJavaScriptの導入が終わったところでいよいよ本題に入りましょう。いったい僕がここまでJavaScriptをおススメする理由は何なのか?
今回は主に2つの理由を紹介していきたいと思う。


簡単なシンタックス

プログラミングを初めてやる人にとって難易度が低いことはモチベーションをキープする上でも大切である。ここではJavaScriptのシンタックス(つまり、書きだしたコード)がいかに簡単なのかを他のプログラミング言語と比較していこうと思う。
***Javascriptのシンタックスに詳しい人はどうぞ2つ目の理由へ(豊富な使い道

1. タイプを指定しなくても良い

Javaでは変数を定義するときに下記のようにその変数のタイプを指定する必要がある。

int number = 10;
boolean hungry = true;
String key = "Hello";

これは正直めんどくさいと思う人が多いと思う。いちいちタイプが違うせいでエラーが出たりするので修正しに戻らなければならない。
だけど、JavaScriptでは同じキーワードを使っていかなるタイプの変数も定義できる。

var number = 10;
var hungry = true;
var key = "Hello";

これは上記のJavaと同じ結果をもたらす。見ての通り、みんなvarで定義可能なのだ。


2. セミコロンを忘れても大丈夫

先ほどの例で1行ごとに;(セミコロン)が最後についているのが分かると思う。これはJavaでは必須であり、忘れるとこれまたエラーが発生する。同様にJavaScriptでもセミコロンは必須であるのだが、JavaScriptはなんとプログラマーが付け忘れたところに自動でつけてくれるので、まだ慣れてなくてよく忘れる初心者にとってはすごくありがたいのだ。


3. インデントではなく、{}を使うから見やすい

Pythonでは{}ではなく、インデント(行の最初にスペースを設ける)でコードをブロック分けする。例えば、if文を書くときに下記のようにインデントでif文の内容を示す。

hungry = true
if hungry
    print "I am hungry"
else
    print "I am not hungry"
print "Done"

一見簡単に見えるこのコードも例えば、print "I am not hungry"の前のスペースを忘れていたら、if文の中にあるとはとらえられなくなり、結果が異なるものとなる。
でも、JavaScriptは{}でこの仕切りを作っているためPythonほど簡単に間違えることはない。

var hungry = true;
if (hungry) {
    console.log("I am hungry");
} else {
    console.log("I am not hungry");
}
console.log("Done");

このようにJavaScriptは{}でどこからどこまでがif文なのかを決めるので、もし、console.log("I am not hungry")の前にスペースを入れてなくても{}内にあるから正しく読み取られるのだ。


豊富な使い道

さて、ここからがJavaScriptが他のプログラミング言語と大きな差をつけるようになった最も大きい原因だ。

思い出してほしいのが、JavaScriptは主にウェブ開発に使われる言語だ。そして、そのウェブサイトであっても大きく分けて2つの方面からの開発がある。1つはフロントエンドであり、主にユーザーがウェブサイトを開いたときに見れるものである。基本的に文字やスタイリングはHTMLとCSSでできるのだが、ここにボタンクリックやアニメーションを入れたり、ツイッターのAPI(データを取得したり、変更したりをプログラミングを通して可能にしてくれるもの)にアクセスしてデータを取得するなどといったものはJavaScriptでないとできない。それに対してもうひとつバックエンドというものが存在する。俗にいう、ウェブサーバーに相当するものだ。これは通常ユーザーから直接見えることはなく、ユーザーが訪れたウェブサイトとコミュニケーションをとり、必要なデータをデータベースから取り出したり、データベースに保存したりする。そのほかにもユーザーのログインなどのパスワード確認もこのサーバーを通して行われる。
この2つは結構やることに違いが大きく、仕事探しの時にも、「フロントエンドの開発者を探してます」とか「バックエンドの開発者を探してます」と区別されたりする。

さて、基本的なウェブ開発での役割分担を知ったうえで、いよいよJavaScriptにはどんなことができるのか見ていきましょう!

フロントエンド開発

まずはユーザーが直接見るウェブサイトに動きをつけたり、様々なサーバーとコミュニケーションをとってデータをユーザーのわかりやすい形で届けるフロントエンド。純粋にJavaScriptだけでも作ることができるが、そのJavaScriptの力を大きく引き上げてくれるフレームワークを紹介しようと思う。
フレームワークとはプログラミング言語をベースにした開発を簡単にしてくれるものだ。もしも、プログラミング言語を日本語とするのなら、フレームワークは敬語といった感じだ。敬語がなくても、仕事はできる。しかし、敬語ができないと、なかなかじゃないけど、営業マンとしていい仕事はできない。そんな感じでフレームワークはなくても何かを作ることはできるが、その場合、ものすごい労働力を必要とする。そして、フレームワークは基本的にあるプログラミング言語をベースに作られる。

React
Reactのロゴ

まずは今最も大きな使用率を誇るReactだ。ReactはFacebookの優秀なプログラマーたちが作り出したフレームワークであり、元はFacebookのウェブサイトだけで使われていたが、今はオープンソースとして一般人にもアクセスができるようになった。
では、このReactを使うとどうなるか?
まず、一番大きな利点としてはウェブサイトの読み込みにかかる時間が格段に減るということ。Facebookをよく使う人なら気づいているのかもしれないが、Facebookサイト内であるコラムをクリックしたりした場合、下記のように上のヘッターは残して、下の内容部分だけが読み込み中状態になる。

Facebookサイトのローディング

普通にJavaScriptで書いたサイトはページからページに移るときにサイト上のすべてのものがリフレッシュされるが、Reactをベースに作ったサイトは必要な部分だけを更新するのだ。これによって格段にウェブサイトの読み込みが速くなり、ユーザーにとってより使いやすいサイトになるのだ。


バックエンド開発

お次はサーバーの方の開発。こちらも先ほどのフロントエンド同様、フレームワークを使っていくのが普通である。
バックエンドといえば、昔からあるPHPやRuby on Railsがすごく人気を取っているが、いづれもJavaScriptとは異なったプログラミング言語をベースに作られている。だが、現在、JavaScriptをベースにしたフレームワークがその急激な人気の上昇を見せている。

NodeJSのロゴ

なんとバックエンドでもJavaScriptが使えるようになったのだ。それまではデータベースも駆使した大きなウェブサイトを立ち上げようとすると、JavaScriptと少なくとももうひとつプログラミング言語を勉強しなくてはならなかったが、NodeJSの登場により、JavaScriptだけを学習すれば、様々な動きがついてしかもデータベースも利用した高度なウェブサイトが作れるようになったのだ。
下記のグラフを見ればNodeJSの人気の上昇が分かるでしょう。

NodeJSと他のフレームワークの使用率比較

NodeJSにはさらに他のフレームワークに比べて<b style=”color: red;”>比較的早い処理ができるという利点</b>がある。これはJavaScriptがもともと非同期プログラミング言語であることを利用したものだ。ここでは深く掘り下げないが、非同期とは同時にいくつかの処理を行うことができるということである。例えば、ブラウザでファイルをダウンロードしている最中にもブラウザ内で新しいリンクに移ったり、ブログを編集することができるのと同じ原理である。この原理をもとに作ったこのNodeJSというフレームワークは非同期で処理を行うことができ、これがその高いスピードを生み出しているのだ。


モバイル開発

次に少しウェブ開発から離れるが、なんとJavaScriptでモバイル開発ができるようになったのだ!!
ここで使うフレームワークがReact Native

React Nativeのロゴ

先ほどのReactとロゴが似ているが、違うものである。こちらもまたFacebook社の開発したフレームワークである。React Nativeが画期的な理由が大きく分けて2つある。
1.ウェブ開発に似たコードの構造
1つめはもともとモバイル開発ではSwiftでiPhoneのアプリ、Javaでアンドロイドのアプリを書くことになり、そのコードの構造もウェブ開発の時のものとは全く異なる。しかし、React Nativeの登場により、これまでウェブ開発をやってきた人たちはこれまで使ってきた言語そのままにモバイル開発ができ、Reactをベースにしているので、さらにより簡単にモバイル開発を始めることができるようになったのだ。
2.iPhoneとアンドロイドを一人二役
2つめの理由はもともとiPhoneとアンドロイドでは別々に異なる言語でアプリのコードを書かないといけなかったのが、React Nativeを使えば、両方かけちゃうということだ。これはいろんな立場の人にとって利益がある。まず、コードを書くプログラマーからすると、一つの言語だけで2つのプラットフォームのアプリを作ることができる。一方、経営者からすると、iPhoneとアンドロイドそれぞれのアプリのコードを書く人を一人ずつ雇う必要がなくなり、人件費節約にもなるのだ。


機械学習
TensorFlowのロゴ

少々難易度が上がるが、話題の機械学習もJavaScriptでできるのだ。もっともメジャーなグーグル社の開発したTensorflowライブラリーは一番人気のPythonだけでなく、JavaScriptバージョンも用意されている。
先に述べたフレームワークでビジネスを始めるのなら、ウェブサイトとモバイルアプリを作った後は機械学習の力も借りて、<b style=”color: red;”>客のニーズにもっと正確に答えられるようにデータを分析することになる</b>でしょう。その時にはかなり活躍するはずだ。
さらに、大きな企業ではそのようなデータを研究する人(データサイエンティスト)を募集しているところもいるので、機械学習を勉強して損はないでしょう。海外ではすでにエンジニアと同じかそれ以上の給料を稼げる一つの仕事になっており、エンジニアを雇う大きな会社では基本的にデータサイエンティストも別で雇っている。
もし、統計や数学などの計算に自信があるのなら、将来的にチャレンジしてみる価値はあると思う!


まとめ

ここまで僕の個人的なJavaScriptを2019年に勉強すべき理由を見てきた。このようにシンプルなシンタックスを使い、さらに様々なアプリケーションに応用できるプログラミング言語はJavaScriptをおいてほかにはない。特にウェブ開発をする人にとってはどちらにせよ習わないといけない言語であり、そこに別の言語を足すという新たな負荷を減らせるという意味ではかなりプログラマーにとってフレンドリーである。
もちろん、他のプログラミング言語を下位として否定する意味はないので、JavaScript以外の言語を選んでも大丈夫でしょう。ですが、将来性を考えると、JavaScriptにたどり着く可能性が高いので、いっそのこと最初からJavaScriptで行くのが仕事獲得の最短距離でしょう。


ご精読ありがとうございました。では、また次回まで✌
記事更新はツイッターで告知するので、ツイッターの方でもフォローお願いします!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です