Sao lại là Node.js/Javascript?
Note: This post is over 9 years old. The information may be outdated.
Hàng năm, Stack Overflow đều có 1 cuộc khảo sát trên hàng trăm nghìn Developers thông qua các dịch của mình. Năm nay có 56,033 coders trên 173 nước trên thế giới tham gia khảo sát. Kết quả của các khảo sát này cho ta cái nhìn tổng quan và đúng đắn nhất về development trong năm qua.
Trong đó, Javascript tiếp tục vẫn tiếp tục áp đảo trong các ngôn ngữ lập trình được sử dụng phổ biến nhất toàn cầu, hơn 55.4%, xem ở đây. Nodejs và các công nghệ của Javascript giữ vị trí cao trong nhiều bảng xếp hạng.
Cụ thể Javascript đứng đầu bảng Top Tech on Stack Overflow (62,588). Javascript kết hợp với nhiều công nghệ khác cũng khá thành công, như SQL, PHP, Java, C#, AngularJS, ... Nổi bật nhất là Javascript và SQL xếp đầu Correlated Technologies (30.7%). Trending Tech on Stack Overflow đứng đầu với React của Facebook (311.3% !!). Mức lương của React lớn nhất trong các công nghệ khác, với 85,000 đến $95,000.
Vẫn phải nói là Javascript/Nodejs vẫn khá là mạnh và đa chức năng, cú pháp dễ học. Hay xem Javascript làm được những gì.
Web
Javascript ban đầu được thiết kế cho các Website, ngôn ngữ lập trình kịch bản. Cuộc chiến trình duyệt lần nhứ nhất bắt đầu, IE vs Netscape (1995). Lúc này Nestcape quyết định tạo một ngôn ngữ đơn giản cho lập trình viên không chuyên có thể sử dụng đươc nhằm cạnh tranh với Microsoft về tính năng của trình duyệt. Thế là JavaScript ra đời, nó được phát triển bởi Brendan Eich dưới tên LiveScript, sau đổi tên thành Javascript.
Hiện tại JavaScript đã phát hành đến phiên bản 5.1 (11.2011). Và là một trong những ngôn ngữ lập trình phổ biến nhất thế giới. Nó cùng với HTML và CSS tạo thành 3 ngôn ngữ bắt buộc phải có đối với một website.
Node.js
Node.js được viết bằng JavaScript, là một hệ thống phần mềm viết các ứng dụng internet có khả năng mở rộng, chủ yếu là web server. Nodejs sử dụng kỹ thật điều khển theo sự kiện, nhập/xuất không đồng bộ để tối tiểu tổng chi phí và tối đại khả năng mở rộng.
Node.js được xây dựng trên V8 JavaScript engine của Google, libUV, và vài thư viện khác. Nodejs ra đời nhiều công nghệ rất hay: từ Web, Task Runner, Crawler, ứng dụng Realtime, Testing, Mobile, Robot ...
Trang chủ NPM (trình quản lý package của Nodejs), có đến 150 triệu lượt cài đặt các package Nodejs mỗi ngày, gần 4 tỉ mỗi tháng.
Ứng dụng mobile
Javascript còn thể được dùng để viết nên các ứng dụng Hybrid Mobile, lập trình viên chỉ cần biết Javascript, không cần phải học thêm Java hay Object-C. Phát triển một lần và build được trên nhiều nền tảng Android, iOs, Windows, ...
Các framework nổi bật hiện nay gồm Ionic, Cordova và React Native
Hybrid Mobile tuy không đạt hiệu suất bằng các ứng dụng Native, nhưng đây vẫn là sự lựa chọn tốt cho các cty startup, nhóm nhỏ, ... muốn đưa nhanh sản phẩm của mình lên nhiều nền tảng mà không phải mất quá nhiều thời gian và chi phí.
Ứng dụng đa nền tảng
Microsoft đang dần chuyển mình sang các công nghệ của Javascript/Nodejs, như các ứng dụng Metro trên Windows 8/10 có thể được phát triển bằng HTML5/Javascipt. Visual Studio hỗ trợ phát triển các project Express.js.
Đáng quan tâm nhất là khi Microsoft ra mắt Visual Code - Code Editor nguồn mở, chạy đa nền tảng (Windows, Linux và Mac) và được viết hoàn toàn bằng Nodejs, Visual Code hỗ trợ tốt Git và chuyên dùng để phát triển các ứng dụng Web, nhất là Nodejs.
Visual Code được viết dựa trên Electron, được phát triển bởi Github dựa trên Chrome, phát triển các ứng dụng Desktop bằng công nghệ Web. Electron hiện được sử dụng bởi nhiều cty lớn trên thế giới (Microsoft, Facebook, Slack, and Docker, ...)
Game
Ngoài Unity cũng có nhiều developers chọn Javascript và HTML5 để phát triển Game, với hiệu suất cũng rất cao. Một số framework nổi tiếng được sử dụng như: Pharser, Pandajs, craftyjs, ...
OS và Tools
Nodejs có thể viết được các tools dạng command lines khá mạnh, giống như Python hoặc Shell Script.
Tương lai của Web khá quan trọng, vì thế trong 1 lần Google đã giới thiệu HDH của mình: ChromeOS. Nó là môi trường nền tảng đám mây, mọi công việc đều được thao tác trên các Tab của trình duyệt web, như khi bạn duyệt web với Chrome vậy.
Mình còn tìm thấy 1 dự án, sử dụng Nodejs và NPM để xây dựng cả một hệ điều hành nhân Unix, NodeOS. Hiện NodeOS vẫn chưa ra mắt, biết đâu được trong tương lai gần NodeOS sẽ là HDH thành công cho những ai yêu thích JS và Nodejs.
Nodejs còn thường được dùng trong các CSDL NoSQL, làm ngôn ngữ truy vấn (MongoDB và CouchDB).
Các công nghệ khác
Nodejs/Javascript thực sự rất phổ biến và khả năng không hạn chế. JS còn chạy được trong các Robots, xử lý tính toán máy học, Raspberry PI, trong phần mềm Photoshop, ...
Với nhiều khả năng mạnh mẽ, và tốc độ phát triển, mức độ sử dùng ngày càng tăng. Không thể biết trước được JS sẽ có những bước tiến và thành tựu nào mới trong tương lai.
Với những ai đang do dự giữa Nodejs và RoR, bài viết không khuyên chọn công nghệ nào, nhưng mình tin chắc khi đã tiếp xúc với Nodejs rồi, bạn sẽ thích ngay với những gì nó làm được.