Web Developer's Struggle Memories

日々の業務から思ったこと、学んだことを書き連ねていきます。

PHPエンジニアの自分が感じるJavaScriptの可能性について

はじめに

PHPを丸3年触った自分だが、本格的にJavaScriptの本(ニンジャ本)を買って勉強し始めて3ヶ月ちょい経った。*1 実際にフロントエンドのコードを書いたり、jQueryを使ってDOM操作を行ったり、Ajax使ってみたりした程度で、まだまだ学び中。しかし学んでいく中でこの言語にはすごく可能性を感じているので、それについて書いてみようかなぁと。

JavaScriptの用途

実行環境が主にウェブブラウザに実装され、動的なウェブサイト構築や、リッチインターネットアプリケーションなど高度なユーザインタフェースの開発に用いられる。
 
wikipediaより抜粋

とあるように、JavaScriptはWEBページのフロント周りの動作処理をするための言語として生まれた。現在はより幅広く、いろんな用途に用いられるようになった。

アニメーション、非同期通信

アニメーション非同期通信(Ajax)を語る上でjQueryの存在は欠かせない。それくらいこのライブラリの影響は大きすぎる。 このライブラリのおかげでいろんなものが簡単に実装することができるようになった他、簡単にDOM操作もできるようになった。 極論、困ったらjQuery使っとけばなんとかなる(というかする)と言われているくらい(笑)。 素のJavaScriptでは長くなるような処理が手軽に短めに書けるようになったのは大きい。デザイナーでも実装ができるようになった事例もよく耳にする話だ。

余談だが、jQueryプラグインは700近く開発されており、世界中でいろんなjQueryプラグインが使われている。 思いつくものはすでにリリースされている可能性大。それくらいjQueryは根強い人気がある。

サーバサイドの開発

今までフロントエンドの開発のみだったJavaScriptが、Node.jsというプラットフォームの登場により、 サーバサイドの開発ができるようになった。 実際にコマンドラインからjsファイルを叩いて実行できた時は、自分も感動した。 これにより、JavaScriptで自前のWEBサーバが立てることができるようにもなり、かなりJavaScriptの幅が広がった。 Node.jsの特徴は有名なC10K問題を解決出来ることだ。

Node.jsについては、ざっくりでよければこちらの記事が参考になる。 qiita.com

最近話題のIoTでも、Node.jsが使われる事例もどんどん増えてきており、Node.jsの今後がすごく楽しみである。

リアルタイムアプリケーション

上記の「サーバサイドの開発」がJavaScriptでも可能になったおかげで、あるクライアントからアクションがあればサーバ側で検知してその他全てのクライアントに即座に通知できるようになった。みんな大好きリアルタイムアプリケーションの開発が可能になったのだ!

最近ではそのためのライブラリとしてSocket.IOというものも登場し、さらに開発もしやすくなってるよー。

スマホアプリ開発

スマホアプリ開発といえば、iOSならObjective-C・Swiftで、AndroidならJavaで開発することが基本だが、 ハイブリッド開発なる手法が生み出され、JavaScriptでも開発ができるようになった。これにより、Java分かんねぇよ! Swift勉強するのがたいぎぃわい!という人でも、JavaScriptスマホアプリが作れるようになったのは大きい。 さらにこの手法の特徴はクロスプラットフォームであること、つまりiOSAndroidどちらでも動くアプリが一つの言語で作れるということ! すごい時代になったなぁと。

そのためのフレームワークも幾つか生み出され、

が有名どころ(らしい)。すでに何十ものアプリがリリースされているので、興味のある人は調べてみてほしい。 最近は、Objective-C・Swift、JavaJavaScriptを組み合わせて開発する人もいるそうで、必要な部分によって言語を使い分けて開発しているそうな。

ツール(フレームワーク・ライブラリなど)

この言語ほどツールの栄枯盛衰が激しい言語はないんじゃないかな。RubyであればRailsPythonであればDjangoなど、 ある程度決まっているというか、デファクトスタンダードになっているものもある*2 中、JavaScriptはこれ!というものがない。

今もどんどん新しいフレームワークやライブラリが登場してきており、ちょっと前までこれが主流だったものが、気がつけばそれは古いしこっちの方が良いぞ、ってなることも良く聞く話。裏を返せば、まだまだ発展途上であり誰でも自分流のフレームワーク・ライブラリが作りやすいということ。

また、世界的に有名な企業がJavaScriptのツールをリリースしているところが注目!下記が有名どころ。

特にAngularJSは最近メジャーアップデートされ、Angular2がリリースされた!まだバグは枯れていないが、世界中で使われてきており、 今後の主流フレームワークになるじゃろう。またElectronも最近(2016年)とてもホットなツールで、JavaScriptでデスクトップアプリケーションが作れるもの。 ライセンスはMITだけん、無料で利用可能かつ商用利用もできるという優れもの。これでまたJavaScriptの幅がひとつ広がった。

世界的に有名な企業が、他にたくさんのプログラミング言語がある中、JavaScriptフレームワークやツールを作っている。 それくらいJavaScriptに未来を見ているんじゃないかな、と勝手に思っているw

終わりに

色々書き連ねてきたが、JavaScriptに関する技術の進歩・拡張は本当に著しく、本当になんでも作れるような時代が来ている。 もっとJavaScriptエンジニア(個人的にはNode.js)が増えてくれると嬉しい。日本ではPHPの案件が多そうなイメージがあるが、 書けて損しないのはJavaScriptだと思ってるくらいJavaScriptはホットな言語だと思う。

というわけで、みんなJavaScriptで開発しようぜ!

*1:初級レベルでの勉強し始めた、ではなく中級以上を目指しての意味

*2:PHPにもこれというものはないが、ある程度主流になっているものがある。Symphony、Laravel、CodeIgniterとか