はじめに
自己学習のために、とある参考書を読み進めていく中で
「用語として聞いたことあるし、なんとなくわかるけどわからんな。。」
という用語が出てきたので、安易にchatGPTに聞いて学んだことを
アウトプットしていきます。
経緯
「よし、まずはフロントエンド側から読んでいくぞ。。ん?Node.js?」
「Node.jsって、JavaScriptでどうのこうのするやつだよね」
↑この程度の知識しかなったので、chatGPTで聞いて見たところ以下の回答をいただきました。
Node.jsは、JavaScriptをサーバーサイドで実行できるようにするランタイム環境です。GoogleのV8 JavaScriptエンジン上で構築されており、非同期・イベント駆動のアーキテクチャを採用しているため、高速でスケーラブルなアプリケーションの開発に適しています。
頭の中のざっくりのイメージが言語化されました。
それじゃ、とりあえずランタイム環境って何ですか?
ランタイム環境とは(本題)
ランタイム環境(Runtime Environment)とは、プログラムを実行するために必要なソフトウェアやライブラリ、設定などが揃った環境のことです。
プログラムは単独では動作せず、OSや実行エンジン、ライブラリなどが提供する機能を利用して動作します。ランタイム環境はこれらをまとめて提供するものです。
なるほど。。
書いたソースファイルを実際に動かしてくれるものを含めた一番肝心なものってことか。
ランタイム環境が無いとそもそも何も始まらないのね。
その他ランタイム環境
とりあえずランタイム環境とは何?ということはざっくりわかりました。
では、他にランタイム環境はどういったもの(粒度が同じもの)があるの?
言語 | ランタイム環境 |
---|---|
Javascript(サーバー側) | Node.js |
Javascript(フロント側) | ブラウザ(Chrome、Edge) |
Java | JRE(Java Runtime Environment) |
C# | .NET Runtime |
Python | Pythonインタープリタ |
上記はあくまで一例です。
ランタイム環境は言語ごとに、いくつか存在し、
Node.jsの後継として「Deno」というものもあるようです。
少しJavaを触っていた時期がありまして、JREには見覚えがありました。
特に意味を気にせずインストールした記憶がありましたが、点と点がつながった感覚です。
おわりに
ランタイム環境についてイメージはつきました。これでほかの人に説明を求められても60点くらいのざっくり回答はできそうですね。
・「Node.jsってなによ?」→「JavaScriptのサーバー側のランタイム環境です。」
・「ランタイム環境ってなによ?」
→「プログラムを動かすためのソフトウェアやライブラリ、設定をそろえているものです。」
引き続き気が向いたら、ざっくりレベルでアウトプットしようと思います。