当たり前だと思っていた jsの「そのまま実行」
前回の内容について、さらに分かったことがあったので追記します。
事の発端は、プログラムを実行する際に「jsファイルはそのままで実行できる」という言葉を耳にしたことでした。
「バイナリコードにして、はじめてPCが解る言葉(機械語)になる」という前の記事の印象が強かったにも関わらず、javascriptの実行については考えが及びませんでした。 コンパイルされている?
分かったこと
こちらに今回の内容が集約されていました。
専門知識いらず!スクリプト言語とは?言語の種類やオススメを解説 | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
こちらも回答部分が参考になりました。
コンパイラ - コンパイル言語とスクリプト言語の違い|teratail
ビルドとデプロイについて。
デプロイについては、完全に雰囲気で解釈していました。
ビルドとデプロイって結局なんやねん!?!?!???みたいな記事 - Qiita
もう一度おさらい。
ソースコードをそれぞれ翻訳するのがコンパイルで、コンパイルされたファイル達を1つの実行ファイルにまとめてあげるのがリンク。
ビルドっていうのはこのコンパイルとリンクをまとめて行っている
また、ビルドは別のファイルに変える。といった使いやすい言葉。
jsのES6をES5に変えることも「ビルド」というらしいのですが...?
おいおい調べます。
プログラム言語ににはスクリプト言語とコンパイル言語がある
スクリプト言語
javascript、Pythonなど。そのままのソースコードで実行できる。ただし、PCにソフトウェアが入っていればの話。
PCやブラウザが1行ずつコードを読みながら解釈(翻訳)しているので、開発するには(ビルドの必要がないので)テンポよくできるが、実行速度は遅くなる。
スクリプト言語をコンパイルして実行すれば早くなる。
コンパイル言語
C言語、java※、Go言語など 。実行にコンパイルが必要な言語。
例えばC言語について。コンパイルすれば、C言語が入っていない環境でも実行できる。バイナリになっているのですぐPCが解釈できて実行速度は速くなる。
C言語のファイルのコンパイルといっても、MacとWindowsでコンパイラーは異なる。
C言語をPCにインストールのは、C言語が使えるようにするためと、C言語のソースコードをコンパイルしてビルドするためのもので、実行に必要というわけではないことが分かりました。
※厳密にはjavaはスクリプト言語とコンパイル言語の中間に位置するそうです。
こう考えると(コンパイル言語においては)、いろいろな言語があって方法は違えど、最終的にはOSにわかる形、0と1にしていくのは同じなんですね。
Sass→cssにするのもコンパイルって呼ばれていたような
コンパイルを知った入り口がここだったので、混乱していました。
先に書いたjsのES6→ES5のビルドといい、振り出しに戻りかねない疑問です。
また調べ次第載せようと思います!