2016 sẽ là năm của Node.js. Liệu có còn đúng? (phần 1)

53

Năm 2015, JavaScript trở thành kĩ năng giá trị nhất mà 1 dev cần phải học hoặc cần phải rèn luyện. JavaScript đa dạng 1 cách đáng kinh ngạc và phổ quát theo cách riêng cực kì độc đáo. Javascript chạy nguyên bản trên hầu hết mọi nền tảng điện toán và không có bất kì công nghệ nào tương tự như vậy trên hành tinh này.

Nếu bạn đang lập trình các sản phẩm chạy trên trình duyệt web hoặc trên mobile web, tôi thực lòng khuyên bạn nên chú ý đến Node.js chạy JavaScript trên server.

Những bước khởi đầu khiêm tốn

Trong 20 năm qua, JavaScript nổi tiếng chuẩn mực với ECMAScript và bạn có thể sẽ bất ngờ khi biết rằng Node.js ra đời lần đầu tiên cách đây 7 năm với mục tiêu tạo 1 trang web responsive, nhanh và linh hoạt. Có thể nói, Node.js đã chứng minh được vai trò của mình với Thung lũng Silicon và các “đại gia bán lẻ” như Uber, PayPal và WalMart.

Thời gian phản hồi của PayPal nhanh hơn 35% trong khi khả năng vận hành của server tăng gấp đôi. Đặc biệt, PayPal ước lượng được sự hài lòng và nâng suất cao hơn ở các lập trình viên. WalMart phục vụ hơn 1.4 tỷ trang mà không phải “vắt kiệt sức” các servers của mình.

Đầu năm 2015, Node.js trở thành “viên đạn ma thuật” chấm dứt “mọi đau thương”, để cuối cùng phần còn lại của thế giới công nghệ có thể bắt đầu chấp nhận Node.js như 1 công nghệ an toàn. Vào thời điểm hiện tại, 1 công nghệ bền vững và trưởng thành sẽ tốn khoảng 2 năm đi từ phiên bản 0.10 sang phiên bản 0.12. Trong sự kiện Node Road Show tổ chức bởi Capital One Labs tại Washington DC, lời hứa về tính ổn định bền vững chính là thông điệp được gửi đến cộng đồng của nhóm tài trợ Node.js – Joyent. Tuy nhiên, điều bất ngờ đã xảy ra sau đó.

Rắc rối và vinh quang

Cuối năm 2014, những người đảm việc vai trò duy trì cộng đồng nguồn mở Node.js đã quyết định phân Node.js thành nhiều nhánh để tạo 1 dự án với tên goị io.js. Họ cho rằng đây là phương án cần thiết vì nhiều tính năng mới đã được triển khai thực hiện trong Node 0.11 đã bị Joyent thẳng thừng bỏ qua. Node 0.11 có quá nhiều tính năng bất ổn và việc Joyent chú ý đến vấn đề này là chính xác. Tuy nhiên, Joyent lại phản ứng thái quá và đã không thực hiện kế hoạch giới thiệu lại các tính năng quan trọng trong thời gian tới. Cộng đồng hiểu rằng để Node.js tiếp tục giữ được vai trò quan trọng thì Node.js phải được cập nhật thường xuyên.

Kết quả hình ảnh cho nodejs google chrome

Node.js chạy trên hệ thống V8 JavaScript của Google Chrome. Google không ngừng cập nhật V8 để đáp ứng nhu cầu của trình duyệt Chrome, tương đương với 1 phiên bản chính ra mắt vào mỗi 6 tuần. Những tính năng ngôn ngữ mới được mô tả theo các chuẩn mực của JavaScript như EcmaScript 2015 (hoặc ES6) cần được triển khai đầu tiên trong V8 vì các tính năng này đã có mặt ở Node.js. Dự án io.js sẽ gồm nhiều tính năng mới đã được giới thiệu trong Node 0.11 nhưng lại không có các vấn đề bền vững ra mắt trong code base. Dự án, tuy ổn định, nhưng vì vướng phải Node.js trong quá khứ nên không thể bắt kịp với đà phát triển của web không mang đến lợi ích nào cho cộng đồng. Tuy nhiên, việc 1 dự án nguồn mở dựa trên cộng đồng có thể đem đến sản phẩm server đáng tin cậy được phát hành với tiến độ 6 tuần trong khi vẫn tích hợp tất cả những tính năng ngôn ngữ mới nhất vẫn là điều chưa có gì chắc chắn.

Không chỉ là code

Xuyên suốt mùa hè 2015, tôi đã tham dự sự kiện NodeConf 2015 – 1 hội nghị để các thành viên cống hiến nhiều nhất của cộng đồng Node tập hợp bàn luận và dạy Node.js. Không khí không thực sự vui vẻ. Cuộc “ly hôn” với Joyent khá áp lực và làm mất sinh khí của sự kiện. Một trong những chủ đề được bàn tán sôi nổi nhất tại NodeConf 2015 là sự cân bằng giữa nhu cầu doanh nghiệp và các nhà kĩ thuật – những người không bận tâm đến việc chạy các phiên bản mới nhất của Node.js/io.js trong giai đoạn production. Tôi gợi lên vấn đề thảo luận bằng cách đại diện cho các tập đoàn không muốn cập nhật các phiên bản mới nhất nhiều hơn 1 lần trong 1 năm.

Chủ đề chính khác là tính toàn diện của cộng đồng và liệu cộng đồng có thể phát triển hơn nhóm những người duy trì chính cũng như đưa ra những quy định chống phân biệt mạnh mẽ.

Khía cạnh con người của các dự án nguồn mở là 1 trong những tính năng tốt nhất nhưng cũng gây nhiều tranh cãi của Node.js. Sự kiện NodeConf đã cho thấy trong vấn đề này, cộng đồng Node đang đi trước vài bước so với nền công nghiệp chung. Chúng ta đều phải làm việc để tiếp cận các nguyên tắc Code of Conduct minh bạch tại các sự kiện chúng ta tổ chức nhằm gìn giữ môi trường toàn diện và hợp tác.

Nguồn: IDE Academy via Excella