Sự khác biệt giữa node.js và io.js là gì?


132

Sự khác biệt giữa io.jsnode.js là gì? Gần đây hơn io.jslà rẽ nhánh node.js, và hơn nữa được thực hiện bởi một số người đã thực hiện node.js.

Sự khác biệt chính đã dẫn đến ngã ba này là gì và nó có ý nghĩa gì đối với toàn bộ cộng đồng node.js?



8
Độc giả nên lưu ý, trong khi câu hỏi có ý nghĩa vào thời điểm đó, io.js và node.js đã hợp nhất trở lại với nhau. Thực tế mà nói, io.js không thực sự tồn tại nữa.
Boinst

7
tl; dr Xem tuyên bố này trên trang web io.js : io.js đã hợp nhất với dự án Node.js một lần nữa. Sẽ không có bất kỳ bản phát hành io.js nào nữa. Tất cả các tính năng trong io.js đều có sẵn trong Node.js v4 trở lên .
Boaz

Câu trả lời:


123

io.js là một nhánh của Node.js của Joyent

Sự khác biệt là gì?

io.js:

  • Nút chuyển tiếp về cơ bản đang được hợp nhất vào io.js
  • rẽ nhánh trên cơ sở phát triển dựa vào cộng đồng và các chu kỳ phát hành tích cực
  • bao gồm nhiều nhà phát triển Node.js ban đầu
  • có mục tiêu trong tương lai là "hợp nhất trở lại với Node.js"

Kho lưu trữ này bắt đầu như một ngã ba GitHub của joyent / nút nơi đóng góp, phát hành và đóng góp theo mô hình quản trị mở.

Chúng tôi dự định hạ cánh, với tính thường xuyên ngày càng tăng, các bản phát hành tương thích với hệ sinh thái npm đã được xây dựng cho đến nay cho node.js.

Node.js:

  • phần mềm gốc
  • đã làm chậm sự phát triển trong thời gian gần đây
  • được tài trợ bởi Joyent
  • Joyent sở hữu nhãn hiệu Node.js

Tại sao họ chia tay?

Nó chủ yếu được phân chia vì ba lý do: phát hành nhanh hơn, tích cực hơn và phát triển theo hướng 1.0.0phát hành, vì sự phát triển dựa vào cộng đồng nhiều hơn là Ban cố vấn và sử dụng semver để phát hành.

Là gì ban cố vấn ?

Ban cố vấn là kế hoạch của Joyent nhằm mang đến cho Node.js một cách tập trung hơn, nhanh hơn để lên kế hoạch phát triển và lên kế hoạch cho các tính năng trong tương lai dọc theo con đường hướng tới 1.0.0phát hành. Điều này đã được lên kế hoạch để thực hiện bằng cách tập hợp một hội đồng gồm các công ty lớn hơn sử dụng Node.js

Trích dẫn từ blog của Joyent:

Khi cộng đồng trở nên phức tạp hơn, điều quan trọng là chúng tôi tìm cách cân bằng nhu cầu của tất cả các thành phần và cung cấp một nền tảng cho các tổ chức này kết hợp với nhau và cung cấp đầu vào cho dự án.

Tại sao ban cố vấn bị ghét?

Trước đây, Node.js đã được chạy qua danh sách gửi thư, các sự cố GitHub và bất kỳ ai cũng có thể đóng góp ý tưởng của họ. Ý tưởng này bắt đầu trở nên đáng ghét vì nó mang lại sự kiểm soát từ người đóng góp trung bình, hàng ngày của bạn và chuyển sức mạnh sang "những cú hích lớn": các công ty như Walmart , Yahoo , IBM , Microsoft , Joyent , NetflixPayPal .

Nguồn bên ngoài về điều này


Một số mô-đun phổ biến cũng đã kết thúc hỗ trợ cho Node.js và chuyển sang io.js (tức là jsdom )
taco

9
Nó đã thực sự chia một phần becasue của toàn mâu thuẫn pronoun giới tính mà kết thúc ở hầu hết các đóng góp của họ để lại .. Có nhiều lý do khác, nhưng đó là rơm mà phá vỡ lạc đà trở lại
evandentremont

19
Sự đúng đắn về chính trị là hoàn toàn xấu xa và không có chỗ trong một dự án công nghệ (muốn tiếp tục là một dự án công nghệ). Cần tập trung vào kết quả và công đức. Đáng buồn thay, ngày càng nhiều dự án đang áp dụng các chính sách và thái độ này. Mozilla đã làm điều tương tự khi tôi nhớ lại một trong những người chủ chốt của họ. Ngay khi tôi thấy lực kéo vô nghĩa như vậy trong một dự án, tôi đã chỉ ra và phản đối sự mất tập trung. Nếu nó cứ tiếp tục tôi rút. Mọi người nên. developers.slashdot.org/
Kẻ

4
io.js được sáp nhập trở lại với Node.js tôi đoán infoworld.com/article/2923081/javascript/...
Dinkar Thakur

4
"io.js đang hợp nhất trở lại với node.js" - cả hai đã hợp nhất ngay bây giờ. Tin tốt !! iojs.org/vi
Deen John

19

Trong thực tế, có những khác biệt thực tiễn giữa Node.jsio.js . Một số sự kiện bị lãng quên bởi các câu trả lời khác:

Tại sao? Bởi vì io.js 1.6.2 xuất xưởng với Google V8 4.1.0.25 và Node.js 0.12.1 vận chuyển với V8 3.28.73. Ngoài ra, các cờ cho ECMAScript 6 khác nhau giữa Node.js và io.js. Hướng dẫn của io.js về cờ ECMAScript 6 có thể được tìm thấy ở đây .


2
Một điều thú vị là, bảng so sánh mà bạn đề cập không được hiển thị chính xác nếu JS bị vô hiệu hóa trong trình duyệt (phải là mặc định. Thời gian. Và trước khi bạn hỏi: Chúng tôi đang nói về phía máy chủ JS, không phải phía Trình duyệt!)
Tino

18
Bạn thực sự đã tắt JS trong trình duyệt của mình?! Bạn phải là người khiến hàng triệu nhà phát triển web thở dài khi nghe thấy 'nó có hoạt động mà không kích hoạt javascript không?'
Zasz

15

TL; DR io.js là sự hiện thân trong tương lai của node.js.

Trang web io.js cho biết : "io.js là một nền tảng javascript tương thích với nút & npm." Đó là một bộ công cụ (bộ thực thi / VM, trình quản lý gói, v.v.) tương thích với những gì hiện đang tồn tại dưới dạng nút. Bất kỳ sự khác biệt nào có lẽ sẽ nằm trong triển khai cơ bản và bất kỳ tiện ích mở rộng nào mà io.js thêm vào ngoài bộ tính năng node.js.

(Tại sao một cái gì đó tương thích với những gì đã tồn tại lại chia rẽ cộng đồng? Tại sao đó lại là một điều xấu?)

Lưu ý rằng io.js thậm chí chưa được phát hành! Tuy nhiên , lộ trình của io.js minh họa một số khác biệt có liên quan đặc biệt giữa nút và io.

  • "Node khá ổn định rồi" và Node vẫn chưa đạt 1.0; hiện tại là 0,10,33.
  • "Toàn bộ hệ sinh thái sử dụng semver trong khi nút sử dụng cấu trúc phát hành chẵn / lẻ khó hiểu." Bằng cách giới thiệu tên mới cho dự án (ish) mới, họ sẽ có thể khắc phục điều đó.

Vì vậy, theo tôi hiểu, io.js là phiên bản 1.0-alpha1 và phát hành nút trong tương lai, nhưng với:

  • phiên bản phát hành khác nhau (lành mạnh)
  • cố tình phát hành thường xuyên
  • quản trị bởi một ủy ban kỹ thuật

15
"hóa thân trong tương lai" câu trả lời này là thiên vị pro-io.js.
Brendan

27
"Thực tế có một thiên vị tự do nổi tiếng" - Stephen Colbert
Matt Ball

2
@BrendanAshworth: Ngay cả khi đó là sự thật, điều đó dường như không biện minh cho một downvote. Trong trường hợp có bất kỳ đối số chống io.js nào, vui lòng cho chúng tôi biết chúng!
Bergi

3
@Bergi Tôi thực sự đã không đánh giá thấp câu trả lời - chỉ vì nó thiên vị không có nghĩa đó không phải là một câu trả lời hay . Có một upvote :)
Brendan

3
@BrendanAshworth Về mặt kỹ thuật, tuyên bố 'hóa thân trong tương lai' không chính xác. io.js đang thúc đẩy sự tiến bộ của node.js (cụ thể là hỗ trợ ES6) và được dẫn dắt bởi những người tạo ban đầu của node.js. Xem xét rằng nodejitsu (nhà điều hành NPM) đã được GoDaddy mua lại và chỉ cần đăng ký nhãn hiệu trên tên 'npm' và tên 'node.js' được thương hiệu bởi Joyent, hệ sinh thái node.js / npm có thể gặp nguy hiểm. Nếu mọi thứ đi về phía nam, việc di chuyển sang io.js là hoàn toàn có thể.
Evan Plaice

9

io.js là một nhánh của node.js. Nhưng bây giờ io.js và node.js lại hợp tác. Vì vậy, đó là lý do tại sao node.js trực tiếp nhảy từ 0.12.x trực tiếp lên 4.0.0 vì phiên bản node.js 4.0.0 bao gồm tất cả các bản cập nhật chính từ io.js phiên bản 3.0.0

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.