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でスマホアプリが作れるようになったのは大きい。
さらにこの手法の特徴はクロスプラットフォーム
であること、つまりiOS・Androidどちらでも動くアプリが一つの言語で作れるということ!
すごい時代になったなぁと。
そのためのフレームワークも幾つか生み出され、
が有名どころ(らしい)。すでに何十ものアプリがリリースされているので、興味のある人は調べてみてほしい。 最近は、Objective-C・Swift、JavaとJavaScriptを組み合わせて開発する人もいるそうで、必要な部分によって言語を使い分けて開発しているそうな。
ツール(フレームワーク・ライブラリなど)
この言語ほどツールの栄枯盛衰が激しい言語はないんじゃないかな。Ruby
であればRails
、Python
であればDjango
など、
ある程度決まっているというか、デファクトスタンダードになっているものもある*2 中、JavaScriptはこれ!というものがない。
今もどんどん新しいフレームワークやライブラリが登場してきており、ちょっと前までこれが主流だったものが、気がつけばそれは古いしこっちの方が良いぞ、ってなることも良く聞く話。裏を返せば、まだまだ発展途上であり誰でも自分流のフレームワーク・ライブラリが作りやすいということ。
また、世界的に有名な企業がJavaScriptのツールをリリースしているところが注目!下記が有名どころ。
特にAngularJSは最近メジャーアップデートされ、Angular2
がリリースされた!まだバグは枯れていないが、世界中で使われてきており、
今後の主流フレームワークになるじゃろう。またElectron
も最近(2016年)とてもホットなツールで、JavaScriptでデスクトップアプリケーションが作れるもの。
ライセンスはMIT
だけん、無料で利用可能かつ商用利用もできるという優れもの。これでまたJavaScriptの幅がひとつ広がった。
世界的に有名な企業が、他にたくさんのプログラミング言語がある中、JavaScriptのフレームワークやツールを作っている。 それくらいJavaScriptに未来を見ているんじゃないかな、と勝手に思っているw
終わりに
色々書き連ねてきたが、JavaScriptに関する技術の進歩・拡張は本当に著しく、本当になんでも作れるような時代が来ている。
もっとJavaScriptエンジニア(個人的にはNode.js)が増えてくれると嬉しい。日本ではPHP
の案件が多そうなイメージがあるが、
書けて損しないのはJavaScriptだと思ってるくらいJavaScriptはホットな言語だと思う。
というわけで、みんなJavaScript
で開発しようぜ!