So sánh Node.js và PHP

So sánh một vài điểm khác biệt giữa Node.js và PHP qua một khoảng thời gian mình làm quen với Node.js, bài viết này ở mức khá cơ bản

Điều khác biệt lớn nhất giữa Node.js và PHP là gì?
Lập trình bất động bộ trong Node.js
Giống như javascript trên trình duyệt, Node.js hỗ trợ lập trình bất đồng bộ (asynchronous) trong khi PHP thì không. Đây là một điểm đáng yêu của Node.js. Điều này giống như việc bạn có thể mở nhiều website một lúc rồi đọc tab nào load xong trước (rất hữu ích trong trường hợp bị đứt cáp quang) trong khi với PHP bạn chỉ có thể mở lần lượt từng trang và chờ đợi là hạnh phúc.
Trong lập trình, việc giao tiếp với các thiết bị bên ngoài như đĩa cứng, thiết bị mạng gần như luôn luôn cần thiết (truy cập cơ sở dữ liệu, kết nối socket), tuy nhiên trong các tác vụ này có nhiều khoảng thời gian mà CPU chỉ chờ đợi kết quả mà không biết làm gì hơn, nếu như tận dụng được khoảng thời gian lãng phí này để làm các việc khác thì sẽ cải thiện rất tốt tốc độ chương trình.
PHP có hỗ trợ multi thread bằng việc cài thêm extension pthreads (việc này có thể giúp lập trình đa nhiệm, không phải bất đồng bộ) có thể làm cho người lập trình PHP đỡ khó chịu phần nào nhưng có vẻ đây không phải là tính năng chủ yếu của PHP nên rất ít người sử dụng.
Nếu bạn chưa bao giờ lập trình bất động bộ, đây có thể là thứ mà bạn thích.

Bạn không có nhiều thời gian đầu tư cho việc code, bạn còn phải xem phim, chơi game, đi chơi với bạn gái … nền tảng nào sẽ dễ dàng hơn?
Tất nhiên rồi, PHP có rất nhiều framework, cộng đồng lớn người sử dụng sẽ giúp đỡ bạn khi cần thiết
Không cần phải so sánh khoản này với Node.js mà với bất kỳ nền tảng nào khác PHP cũng sẽ là người chiến thắng. Số lượng framework, CMS cho PHP có thể nói là không đếm suể, các framework cơ bản giống nhau và khá dễ tìm hiểu có thể giúp bạn phát triển ứng dụng nhanh gọn. Đặc biệt hiện nay có phalconphp là framework được buid thành extension của php cho hiệu năng khá cao.
Trong khi Node.js là chàng trai trẻ trong thế giới lập trình nên có nhiều điều còn “ngơ ngác” bạn sẽ tốn nhiều thời gian hơn để tìm hiểu và thậm chí sẽ phải phân vân khi sử dụng các thư viện có sẵn do chưa có cộng đồng sử dụng lớn. Tuy nhiên, việc hỗ trợ npm (package manager) mặc định kèm với bộ cài nodejs tương tự như bower trong PHP làm Node.js khá thuận tiện trong việc phát triển sử dụng ứng dụng bên thứ 3.
Nếu như bạn cần rút ngắn thời gian phát triển những ứng dụng không đòi hỏi độ phức tạp cao, hãy sử dụng PHP

Việc triển khai ứng dụng nền tảng nào sẽ đơn giản hơn?
Tin tôi đi, việc cài đặt một ứng dụng Node.js cũng đơn giản như PHP.
Node.js cũng hộ trợ đa nền tảng Unix, Windows, OSX. Việc cài đặt có thể sẽ tốn một chút thời gian của bạn khi bắt đầu tìm hiểu, nhưng nên nhớ lần đầu tìm hiểu PHP có thể còn khó khăn hơn vậy. Tuy nhiên lưu ý về môi trường triển khai PHP có vẻ dễ dàng hơn khi có quá nhiều hosting cho bạn lựa chọn (quá nhiều lựa chọn sẽ làm bạn đau khổ) trong khi hosting dành cho ứng dụng Node.js chưa có nhiều có thể kể đến openshift.com, hoặc bạn sẽ phải cài đặt VPS hay server để chạy ứng dụng.

Bạn là nhà đầu tư, chi phí cho việc phát triển ứng dụng nào cao hơn?
Câu trả lời sẽ nêu tên chàng trai trẻ Node.js
Chân dài hơn, đẹp hơn nên bạn cũng sẽ phải tốn nhiều tiền hơn để nuôi em ấy. Chi phí cho nhân sự cũng như môi trường triển khai ứng dụng thì Nodejs có nhỉnh hơn PHP một chút (đây cũng là điều dễ hiểu như đã nói ở trên) tuy nhiên nếu bạn còn lăn tăn về điều này hãy chú ý đến các ưu điểm của Node.js

Vậy tôi sẽ chọn nền tảng nào đây?
Câu trả lời muôn thuở: Tùy vào mục đích sử dụng của bạn.
Đừng vì một vài điểm mới lạ của Node.js mà vội vàng chuyển nền tảng. Nếu như bạn đòi hỏi ứng dụng có performace cao, đòi hỏi các tác vụ mà PHP không đảm nhiệm được, chấp nhận chi phí và thời gian phát triển ban đầu cao hơn chút hãy thử sức với Node.js. Nếu bạn cảm thấy quen với PHP hơn và không thấy việc sử dụng Node.js cần thiết hãy sử dụng PHP

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.