夢は小さいほどいいと思っているんです。本気になれるから。

夢を持つことが大事なんじゃなく、本気になるのが大事。(糸井重里)

Javascript 言語としての4つの特徴

2016年の8月1日の今日、Javascriptを基礎から勉強してみようと思います。

なぜこの言語から勉強をするかというと、8/22からフロントエンドエンジニアとして働くからです。
また、フロントエンドエンジニアこそ、Javascript(今後Jsって略します)って言語を操れないとダメらしく、
その割には、できていないし、できると良いことがたくさんありそう、ということもあってこの言語を選定しました。

フロントエンドエンジニアって?という疑問があれば、ここをご覧ください。

すでに、1冊の書籍を読み終えて、もう一段難しい本で本格的に学ぼうととう段階です。
最初に読んだ本は下記の本です。

3ステップでしっかり学ぶ JavaScript入門
https://goo.gl/4W4Ps2

この本は、何となくの理解で、Jsを読み進められ、実装もできて、分かりやすい説明もあって、良かったです。

そして、これから8月20日までに読んでみようと思うのが、下記の書籍です。

JavaScript本格入門 ~モダンスタイルによる基礎からAjax・jQueryまで
https://goo.gl/2abcHr

自習も兼ねて、この書籍にあることプラスαで書き進めてみようと思います。

まず、Jsの言語としての4つの特徴は大きく、4つあります。

スクリプト言語である

これは要するに、プログラムの記述や実行を簡単に行うことができることです。
また、非常に多くの場合、スクリプト言語インタープリタ型言語であり、コンパイラ型言語に比べて実行までの処理の手間がかからないという特徴を持っています。

また、Jsはオブジェクト指向的な構造も持ち合わせていて、再利用性、保守性に富んだコード記述がしやすいそうです。
でははぜ、オブジェクト指向を持ったプログラミング言語が、再利用性や保守性が高いかについては、今わからないし、別途じっくり考えたいので、書きますね。

オブジェクト指向スクリプト言語という点においては「Ruby」と同じ特徴を持っています。

インタプリタ型の言語である

上にすこし書いてしまいましたが、Jsはインタプリタ型の言語です。
ちなみに、Jsに書き方が似てるswiftという言語は、コンパイル型の言語です。

この2つの違いを知るのにこの記事が良かったので、メリット・デメリットなどの要点のみ、まとめます。

コンパイラ(実行形式プログラム実行)の長所・短所

長所

  • 高速に実行される
  • 特別なソフトウエアが入らず、単独で実行できる(コンパイルされたプログラムは、exeファイルのことかーと思った。)

短所

  1. プログラムの中身の仕組みがわからない(商売するには好都合)
  2. 内容を簡単に変更できない(商売するには好都合)
  3. プログラムを慎重に作る必要がある
  4. コンパイラシステムは比較的多がかりになる

3.に関して。
そもそもソフト開発において、完璧なプログラム作成は基本無理です。
基本は、何度か動作チェックして、エラーがないかを確かめます。これをデバックと言います。
基本はコンパイル時にエラーが見つけられるけど、実行時に起こることもある、その結果はOSに依存する。
実行時のエラーによって、コンピュータ自体の悪くなってしまうことがあるため、慎重に作成しないとダメ、だけど最近は、そうならないために、実行時エラーまで監視してくれるデバッガーも内蔵された統合開発環境が主流。
だけど、こいつの難点は、4.のごとく、思いことが難点。まさにXcodeがそう。

インタプリタ方式の長所・短所

短所

  • 実行速度が実行形式のものより遅い
  • 実行に対応するインタプリタシステムが必要

実行速度が遅いというのは、コンパイルされたプログラムと比較して、という意味。
とはいえ、実際はかなりの速度なので、大規模データ処理とかでない限りは、いろんなことに使えます。
大規模な処理をさせない限り、下記の長所が目立ちます。

長所

  1. プログラムの中身がすぐ見える
  2. プログラムを変更し実行するのが簡単
  3. 気軽にプログラムを実験できる
  4. インタプリタシステムは比較的小規模

リリース後も改修を前提とする用な、グロースハックやスクラム開発体制においては、インタプリタ型の言語があっていて、web業界にて、Jsが採用されているのもなんとなく分かりました。

いろんな環境で利用できる

よくわかんないけど、例えば
Javaの実行環境とか、Flashの実行環境とか、Jsがベースでできてます。

いろんな部分から構成されている

例えば、ブラウザオブジェクト(ブラウザ上での操作をJsで行うためのもの)
DOMやAjaxなど、いろんな要素でできてます。

こんな特徴がありますです。