Code giống như các nốt nhạc, động cơ giống như nhạc công, còn môi trường thực thi giống như nhạc cụ

Nếu như một lập trình viên là một nhạc sĩ, thì cái script họ viết ra chính là cái sheet nhạc. Một bản nhạc được phát ra khi nhạc công nhìn vào văn bản nhạc và thao tác trên nhạc cụ. Tương tự, một chương trình chạy được khi động cơ đọc code trong môi trường thực thi. Động cơ là thứ có thể đọc và hiểu code, còn môi trường thực thi là toàn bộ những thứ mà động cơ dùng để tương tác với môi trường bên ngoài.

Nếu như đây là code của một chương trình:
|300
Thì đây là chương trình đó khi nó có động cơ (nhạc công) và môi trường thực thi (nhạc cụ):

Có nhiều cách thức để ta ký hiệu âm thanh xuống trang giấy, cũng như có nhiều cách thức để lưu một ý tưởng vào ổ đĩa. JavaScript là một cách để lưu ý tưởng, Python là một cách khác. Cái code mà bạn thường nghe nói tới chính là cái cách để bạn ký hiệu những ý tưởng của mình. Chúng chỉ là những ký hiệu, giống như những dòng chữ này.

Để chạy được những ký hiệu này, chúng cần tới động cơ, thứ có thể đọc và hiểu chúng. Có nhiều loại môi trường thực thi khác nhau cho JavaScript, và đây là những môi trường thực thi bạn thường được nghe đến: Firefox, Chrome, Safari, Opera, Edge, Node, Deno, Electron. Như bạn thấy, 5 cái đầu chính là các trình duyệt chứ chẳng phải là gì xa lạ. Còn Electron chính là cái để viết ra phiên bản desktop cho Obsidian, Notion, Slack, VS Code, Discord, Dropbox, Figma, v.v. Trừ Firefox, Safari và Edge ra, thì tất cả các môi trường thực thi còn lại đều dùng V8, một động cơ do Google viết ra.

Node là một môi trường thực thi cho JavaScript. Sau một thập kỷ phát triển, tác giả của Node đã viết Deno để khắc phục những thiếu sót của Node. Có thể xem bài diễn thuyết 10 điều tôi hối hận về Node.js của tác giả. (Tác giả không giải thích cái tên Deno có nghĩa là gì, nhưng nhiều người đoán nó là viết ngược lại của Node.)

Xem thêm:: Stack Overflow, What is the difference between JavaScript Engine and JavaScript Runtime Environment - Stack Overflow

Runtime là lúc chạy, runtime environment là môi trường thực thi. Nhưng nhiều lúc runtime environment được gọi tắt là runtime