- vừa được xem lúc

Toang rồi, Node.js sắp "bay màu" à? App Express của tôi còn chưa kịp nóng máy!

0 0 2

Người đăng: Ryan Stone

Theo Viblo Asia

Chào anh em! Hôm nay các bác có thấy lo âu công nghệ không?

Bởi vì mấy cái group chat lập trình viên của tôi đang nổ tung cả lên. Sáng ngủ dậy đã thấy một cái thông báo cứ như một cặp đôi nổi tiếng tuyên bố chia tay: OpenAI chính thức thông báo họ đang rút công cụ AI mới của mình, Codex CLI, ra khỏi vòng tay ấm áp của Node.js và ném nó vào ghế lái của một con quái vật hiệu năng mang tên Rust.

Mô tả hình ảnh

Và thế là, cả cõi mạng như phát điên.

Tôi gần như có thể nghe thấy tiếng than thở tập thể từ các lập trình viên trên khắp thế giới: "Đùa à? Tôi vừa mới tốt nghiệp khóa bootcamp ba tháng để làm dev full-stack Node.js. Giờ nó lỗi thời rồi sao?" "Thư mục node_modules của tôi có cứu được không? Hay là tôi nên xóa béng nó đi để lấy dung lượng ổ cứng học Rust?" "Trong CV, tôi có cần phải đổi 'Thành thạo Node.js' thành 'Từng có quan hệ tình cảm với Node.js' không?"

Nhìn thấy sự hoảng loạn quen thuộc, cứ dăm bữa nửa tháng lại xuất hiện này, tôi nhấp một ngụm cà phê và bật cười. Bình tĩnh nào, các bác. Ngồi xuống cả đi. Chuyện thường ở huyện thôi mà. Vậy, có thật là Node.js sắp bị đá ra rìa không? Có phải tất cả chúng ta nên bỏ hết mọi thứ để đi học cách kết bạn với một chú cua (linh vật của Rust, Ferris) không?

Cứ bình tĩnh, đừng vội gỡ cài đặt NVM

Là một gã đã lăn lộn trong thế giới code điên rồ này vài năm, để tôi nói cho các bác nghe lời thật lòng: Đừng hoảng loạn. Động thái này của OpenAI gần như chẳng liên quan gì đến việc Node.js "tốt" hay "tệ" cả. Hãy nghĩ về nó giống như một công ty đang tuyển đúng người cho một công việc rất cụ thể thì hơn.

Tại sao lại đổi? Lý do rất đơn giản, để tôi giải thích bằng ngôn ngữ đời thường nhé:

  • Họ muốn phân phối một file duy nhất, chứ không phải cả cái chậu rửa bát. Hãy tưởng tượng bạn đưa cho người dùng một công cụ dòng lệnh nhỏ xinh, nhưng để chạy nó, họ phải cài cả một cái runtime Node.js cồng kềnh. Yêu cầu này hơi quá đáng. OpenAI muốn một thứ mà người dùng có thể tải về và nhấp đúp là chạy – một file duy nhất. Không phụ thuộc, không rườm rà, không phiền phức. Rust là nhà vô địch trong lĩnh vực này; nó biên dịch ra một file nhị phân duy nhất, độc lập. Gọn gàng và sạch sẽ.

  • Đây là công việc nặng nhọc, và bạn cần một lực sĩ để làm nó. Cốt lõi của công cụ AI này là một "vòng lặp tác tử" (agent loop), nói một cách hoa mỹ thì nó là một bài tập cường độ cao 24/7. Node.js xuất sắc ở sự khéo léo – xử lý hàng ngàn yêu cầu I/O cùng lúc, giống như một ngôi sao giao tiếp tại bữa tiệc. Nhưng Rust là một ngôn ngữ hệ thống. Nó cho bạn khả năng kiểm soát bộ nhớ với độ chính xác phẫu thuật và không có những "quãng nghỉ" do bộ dọn rác (garbage collector) gây ra làm gián đoạn luồng xử lý. Đối với loại công việc "cần hiệu năng thuần túy" này, sử dụng Rust giống như nhờ Arnold Schwarzenegger đi cử tạ. Nó là công cụ phù hợp cho công việc.

Vậy đó, bạn thấy không, đây không phải là do Node.js thất bại. Mà là do sự không phù hợp về mô tả công việc. Bạn không thể gọi một chiếc xe Công thức 1 là đồ bỏ đi chỉ vì nó không thể đi off-road. Trong thế giới của máy chủ web, API gateway, và phát triển full-stack, Node.js vẫn là G.O.A.T. (Vĩ Đại Nhất Mọi Thời Đại). OpenAI chỉ đơn giản là đã tìm thấy một tài xế phù hợp hơn cho chiếc xe dòng lệnh cụ thể của họ.

Và đây mới là cú chốt hạ! Đoán xem OpenAI còn nói gì nữa không? Phiên bản Rust mới cuối cùng sẽ hỗ trợ các phần mở rộng được viết bằng JavaScript!

Mô tả hình ảnh

Thấy chưa? Họ đâu có ý định "bơ đẹp" cộng đồng JS. Họ chỉ đang xây dựng trên một nền tảng vững chắc hơn, trong khi vẫn cho phép bạn trang trí căn hộ penthouse theo cách bạn thích.

Khoan đã, vậy đâu mới là cơn đau đầu thực sự?

Được rồi, khủng hoảng đã qua. Node.js không chết. Nhưng giờ một suy nghĩ mới len lỏi vào đầu: "Vậy, mình có nên học Rust ngay bây giờ không? Thêm một kỹ năng cũng đâu có hại, phải không?"

Bạn mở terminal lên, sẵn sàng chiến đấu. Nhưng rồi bạn nhìn vào mớ thiết lập trên máy mình và một cảm giác mệt mỏi ập đến.

Ngay bây giờ, máy tính của bạn có lẽ là một mớ hỗn độn:

  • Bạn có ba phiên bản Node.js (v18, v20, v22) được quản lý bằng nvm vì dự án A cần phiên bản cũ, còn dự án B cần các tính năng mới coóng.
  • Bạn vừa cài đặt toolchain của Rust bằng rustup để nghịch thử bản nightly build.
  • Homebrew của bạn vẫn còn bám víu một phiên bản PHP 7.4 từ một dự án WordPress tự do bạn làm từ hai năm trước.
  • Một container PostgreSQL và Redis cô đơn vẫn đang chạy trong Docker, tàn dư của một thí nghiệm nào đó đã bị lãng quên từ lâu.

Mỗi khi bạn bắt đầu một dự án mới, bạn mất nửa ngày chỉ để vật lộn với môi trường, chuyển đổi phiên bản, và chiến đấu với biến PATH, thứ mà giờ đây đã bắt đầu trông dài hơn cả bộ truyện Chúa tể những chiếc nhẫn.

Và nó đây rồi. Kẻ phản diện thực sự đang hành hạ chúng ta, những người lập trình, chưa bao giờ là 'Tôi nên học ngôn ngữ nào?'. Mà nó luôn là, 'Làm thế quái nào để tất cả các ngôn ngữ và cơ sở dữ liệu này hoạt động hòa bình trên máy của tôi?!'

Đó mới là nỗi đau chung, nỗi đau thực sự.

Người lớn không lựa chọn. Người thông minh lấy tất cả.

Tôi đã quá mệt mỏi với trận chiến hỗn loạn diễn ra bên trong chiếc Mac của mình, cảm giác như máy của tôi sắp khủng hoảng danh tính trên toàn hệ thống. Rồi tôi tìm thấy ServBay, và cảm giác như vừa khám phá ra lực lượng gìn giữ hòa bình của Liên Hợp Quốc dành cho việc phát triển cục bộ.

Thứ này đúng là một cứu tinh cho những kẻ "đa thê công nghệ" như chúng ta, những người muốn chơi với tất cả các món đồ chơi bóng bẩy.

  • (Lo âu về Node.js? Biến mất.) Bạn muốn gắn bó với Node.js v22 đáng tin cậy của mình cho API mới đó? Trong bảng điều khiển của ServBay, bạn nhấp vào Node.js, chọn phiên bản của mình, và dịch vụ sẽ khởi động trong một giây.

Mô tả hình ảnh

  • (Lo âu về Rust? Biến mất.) Bạn muốn nhảy lên con thuyền Rust và biên dịch một công cụ nhỏ? Không thành vấn đề. ServBay vừa mới hỗ trợ Rust. Một cú nhấp chuột, và mọi thứ đã được thiết lập. cargo cứ thế hoạt động trong terminal của bạn, không có địa ngục biến môi trường thủ công nào cả.

Mô tả hình ảnh

  • (Tính năng "chí mạng" - 'Tôi muốn tất cả'): Phần hay nhất là bạn có thể để dịch vụ Node.js và dự án Rust của mình chạy song song, chia sẻ cùng một cơ sở dữ liệu MariaDB mà bạn cũng khởi động chỉ bằng một cú nhấp chuột. Chúng không can thiệp vào nhau. Hoàn toàn hòa hợp. Khi bạn làm xong, bạn chỉ cần tắt chúng đi, và hệ thống của bạn vẫn sạch sẽ như ngày bạn mới mua nó.

Vậy, hãy quay lại câu hỏi ban đầu. OpenAI đang hẹn hò với Rust. Chúng ta nên làm gì?

Câu trả lời là: Đừng hoảng loạn. Mở ServBay lên, pha một ly cà phê. Nếu hôm nay bạn muốn viết Node, hãy viết Node. Nếu ngày mai bạn muốn chơi với Rust, hãy chơi với Rust. Người lớn không lựa chọn; chúng ta chỉ chọn công cụ cho phép chúng ta có tất cả.

Đừng lãng phí cuộc đời và mái tóc của bạn vào những cuộc chiến ngôn ngữ nữa. Hãy dành thời gian của bạn để tạo ra những thứ tuyệt vời. Hãy thử xem và cứ để môi trường dev trên Mac của bạn tự vật lộn với nhau, còn bạn thì cứ ung dung thư giãn.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Chuyện cái comment

Chuyện cái comment. Chuyện rằng, có một ông bạn nọ có cái blog ở trên mạng, cũng có dăm.

0 0 38

- vừa được xem lúc

Đừng đánh nhau với borrow checker

Đừng đánh nhau với borrow checker. TL;DR: Đừng bao giờ đánh nhau với borrow checker, nó được sinh ra để bạn phải phục tùng nó .

0 0 33

- vừa được xem lúc

Chuyện biểu diễn ma trận trên máy tính

Chuyện biểu diễn ma trận trên máy tính. Cách đây mấy hôm mình có share cái screenshot trên Facebook, khoe linh tinh vụ mình đang viết lại cái CHIP-8 emulator bằng Rust.

0 0 46

- vừa được xem lúc

Rust và Lập trình Web

Rust và Lập trình Web. Bài viết được dịch lại từ bản gốc "Rust for the Web" đăng tại phiên bản blog tiếng Anh của mình.

0 0 42

- vừa được xem lúc

Viết ứng dụng đọc tin HackerNews bằng Rust

Viết ứng dụng đọc tin HackerNews bằng Rust. Dạo này mình toàn viết bài linh tinh, lâu rồi chưa thấy viết bài kĩ thuật nào mới nên hôm nay mình viết trở lại, mất công các bạn lại bảo mình không biết co

0 0 30

- vừa được xem lúc

Cài đặt Rust trên Arch Linux

Cài đặt Rust trên Arch Linux. Việc cài đặt Rust trên môi trường Arch Linux khá là đơn giản.

0 0 48