ความแตกต่างระหว่าง node.js และ io.js คืออะไร?


132

ความแตกต่างระหว่างio.jsและnode.jsคืออะไร? ล่าสุดio.jsถูกแยกออกจากnode.jsกันและยังสร้างขึ้นโดยคนกลุ่มเดียวกันกับที่สร้างnode.jsขึ้น

อะไรคือความแตกต่างที่สำคัญที่นำไปสู่ทางแยกนี้และโดยรวมหมายความว่าอย่างไรสำหรับชุมชน node.js



8
ผู้อ่านควรทราบในขณะที่คำถามมีความหมายในขณะนั้น io.js และ node.js ได้รวมกลับเข้าด้วยกัน ในทางปฏิบัติ io.js ไม่มีอยู่จริงอีกต่อไป
59

7
tl; dr ดูคำสั่งนี้บนเว็บไซต์io.js : io.js ได้รวมเข้ากับโปรเจ็กต์ Node.js อีกครั้ง จะไม่มีการเผยแพร่ io.js เพิ่มเติม คุณสมบัติทั้งหมดใน io.js มีอยู่ใน Node.js v4 ขึ้นไป
Boaz

คำตอบ:


123

io.jsเป็นส่วนแยกของJoyent's Node.js

อะไรคือความแตกต่าง?

io.js:

  • โดยพื้นฐานแล้วNode-forwardจะรวมเข้ากับ io.js
  • แยกตามการพัฒนาที่ขับเคลื่อนโดยชุมชนและรอบการเผยแพร่ที่ใช้งานอยู่
  • รวมถึงผู้พัฒนา Node.js ดั้งเดิมจำนวนมาก
  • มีเป้าหมายในอนาคตในการ "รวมกลับกับ Node.js"

พื้นที่เก็บข้อมูลนี้เริ่มต้นจาก GitHub fork ของ joyent / node ที่การมีส่วนร่วมการเผยแพร่และการมีส่วนร่วมอยู่ภายใต้รูปแบบการกำกับดูแลแบบเปิด

เราตั้งใจที่จะลงจอดด้วยความสม่ำเสมอที่เพิ่มขึ้นการเผยแพร่ที่เข้ากันได้กับระบบนิเวศ npm ที่สร้างขึ้นจนถึงปัจจุบันสำหรับ node.js

Node.js:

  • ซอฟต์แวร์ดั้งเดิม
  • ได้ชะลอการพัฒนาในช่วงเวลาที่ผ่านมา
  • สนับสนุนโดยJoyent
  • Joyent เป็นเจ้าของเครื่องหมายการค้า Node.js

ทำไมพวกเขาถึงแยก?

โดยหลักแล้วแบ่งออกด้วยเหตุผล 3 ประการ ได้แก่ การเผยแพร่ที่เร็วขึ้นมีการใช้งานมากขึ้นและการพัฒนาไปสู่การ1.0.0เผยแพร่เพื่อการพัฒนาที่ขับเคลื่อนโดยชุมชนมากกว่าคณะกรรมการที่ปรึกษาและการใช้ semver สำหรับการเผยแพร่

อะไรคือสิ่งที่คณะกรรมการที่ปรึกษา ?

คณะกรรมการที่ปรึกษาเป็นแผนการของ Joyent ที่จะทำให้ Node.js เป็นวิธีที่รวมศูนย์มากขึ้นและเร็วขึ้นในการวางแผนการพัฒนาและวางแผนคุณลักษณะต่างๆในอนาคตไปสู่การ1.0.0เปิดตัว สิ่งนี้ถูกวางแผนให้ทำโดยการรวบรวมคณะกรรมการของ บริษัท ขนาดใหญ่ที่ใช้ Node.js

อ้างจากบล็อกของ Joyent:

เมื่อชุมชนมีความซับซ้อนมากขึ้นสิ่งสำคัญคือเราต้องหาวิธีที่จะสร้างความสมดุลระหว่างความต้องการของทุกองค์ประกอบและจัดเตรียมแพลตฟอร์มสำหรับองค์กรเหล่านี้ในการรวมตัวกันและให้ข้อมูลเข้าในโครงการ

ทำไมคณะที่ปรึกษาถึงเกลียด?

ก่อนหน้านี้ Node.js ถูกเรียกใช้ผ่านรายชื่อส่งเมลปัญหา GitHub และทุกคนสามารถมีส่วนร่วมในแนวคิดของตนได้ ความคิดนี้เริ่มได้รับความเกลียดชังเพราะมันทำให้การควบคุมออกไปจากค่าเฉลี่ยส่วนร่วมในชีวิตประจำวันของคุณและย้ายไฟเข้ากับ "ภาพใหญ่": บริษัท เช่นWalmart , Yahoo , IBM , Microsoft , Joyent , NetflixและPayPal

แหล่งข้อมูลภายนอกเกี่ยวกับเรื่องนี้


โมดูลยอดนิยมบางโมดูลได้ยุติการสนับสนุน Node.js และย้ายไปที่ io.js (เช่นjsdom )
taco

9
จริงๆแล้วมันถูกแบ่งออกเป็นบางส่วนเนื่องจากความขัดแย้งของสรรพนามเพศที่จบลงเมื่อผู้ร่วมให้ข้อมูลส่วนใหญ่จากไป .. มีสาเหตุอื่น แต่นั่นคือฟางที่ทำให้อูฐหักกลับ
evandentremont

19
ความถูกต้องทางการเมืองเป็นสิ่งที่ชั่วร้ายอย่างยิ่งและไม่มีที่ใดในโครงการเทคโนโลยี (ที่ต้องการให้เป็นโครงการเทคโนโลยีต่อไป) ควรมุ่งเน้นที่ผลลัพธ์และคุณธรรม น่าเศร้าที่มีโครงการจำนวนมากขึ้นเรื่อย ๆ ที่นำนโยบายและทัศนคติเหล่านี้มาใช้ Mozilla ทำอะไรคล้าย ๆ กันขณะที่ฉันนึกถึงคนสำคัญคนหนึ่งของพวกเขา ทันทีที่ฉันเห็นเรื่องไร้สาระดังกล่าวได้รับแรงฉุดในโครงการฉันชี้ให้เห็นและคัดค้านสิ่งที่ทำให้ไขว้เขว ถ้ามันยังคงดำเนินต่อไปฉันถอนตัว ทุกคนควร Developers.slashdot.org/…
Ben Scherrey

4
io.js ถูกรวมกลับมาพร้อมกับ Node.js ฉันเดาinfoworld.com/article/2923081/javascript/...
Dinkar Thakur

4
"io.js กำลังรวมกลับกับ node.js" - ตอนนี้ทั้งสองได้รวมเข้าด้วยกัน ข่าวดี !! iojs.org/en
Deen John

19

ในความเป็นจริงมีความแตกต่างในทางปฏิบัติระหว่างNode.jsและio.js คำตอบอื่นลืมข้อเท็จจริงบางประการ:

  • ปัจจุบัน io.js มีหลายด้านเร็วกว่า Node.js เล็กน้อย ถือเป็นเกณฑ์มาตรฐานประสิทธิภาพการทำงานที่สามารถพบได้ที่นี่
  • การสนับสนุนECMAScript 6ของ io.js นั้นกว้างกว่า Node.js มาก เปรียบเทียบสามารถพบได้ที่นี่

ทำไม? เนื่องจาก io.js 1.6.2 มาพร้อมกับ Google V8 4.1.0.25 และ Node.js 0.12.1 มาพร้อมกับ V8 3.28.73 นอกจากนี้แฟล็กสำหรับ ECMAScript 6 ยังแตกต่างกันระหว่าง Node.js และ io.js คู่มือ io.js เพื่อ ECMAScript 6 ธงสามารถพบได้ที่นี่


2
สิ่งที่น่าสนใจคือตารางเปรียบเทียบที่คุณพูดถึงจะแสดงไม่ถูกต้องหากปิดใช้งาน JS ในเบราว์เซอร์ (ซึ่งควรเป็นค่าเริ่มต้นช่วงเวลาและก่อนที่คุณจะถาม: เรากำลังพูดถึง JS ฝั่งเซิร์ฟเวอร์ที่นี่ไม่ใช่ฝั่งเบราว์เซอร์!)
Tino

18
คุณปิดการใช้งาน JS ในเบราว์เซอร์ของคุณจริงหรือ! คุณต้องเป็นผู้ชายคนนั้นที่ทำให้นักพัฒนาเว็บหลายล้านคนถอนหายใจเมื่อได้ยินว่า 'มันจะทำงานได้โดยไม่ต้องเปิดใช้จาวาสคริปต์หรือไม่?'
Zasz

15

TL; DR io.js คือการเกิดในอนาคตของ node.js

เว็บไซต์ io.js ระบุว่า : "io.js เป็นแพลตฟอร์มจาวาสคริปต์ที่เข้ากันได้กับโหนดและ npm" เป็นชุดเครื่องมือ (รันไทม์ / VM ตัวจัดการแพ็คเกจ ฯลฯ ) ซึ่งเข้ากันได้กับสิ่งที่มีอยู่ในปัจจุบันเป็นโหนด ความแตกต่างใด ๆ ที่น่าจะเกิดขึ้นในการนำไปใช้งานและส่วนขยายใด ๆ ที่ io.js เพิ่มนอกเหนือจากชุดคุณลักษณะ node.js

(ทำไมสิ่งที่เข้ากันได้กับสิ่งที่มีอยู่แล้วทำให้ชุมชนแตกแยกทำไมถึงเป็นเรื่องเลวร้าย?)

โปรดทราบว่า io.js ยังไม่ได้เปิดตัว! อย่างไรก็ตามแผนงาน io.jsแสดงให้เห็นความแตกต่างที่เกี่ยวข้องโดยเฉพาะบางอย่างระหว่างโหนดและ io

  • "โหนดค่อนข้างเสถียรอยู่แล้ว" แต่โหนดยังไม่ถึง 1.0; ขณะนี้อยู่ที่ 0.10.33 น.
  • "ระบบนิเวศทั้งหมดใช้ semver ในขณะที่โหนดใช้โครงสร้างรีลีสคู่ / คี่ที่สับสน" ด้วยการแนะนำชื่อใหม่สำหรับโปรเจ็กต์ (ish) ใหม่พวกเขาจะสามารถแก้ไขได้

ตามที่ฉันเข้าใจแล้ว io.js คือ 1.0-alpha1 และโหนดในอนาคต แต่มี:

  • การกำหนดเวอร์ชันการเผยแพร่ที่แตกต่างกัน (มีเหตุผล)
  • เผยแพร่บ่อยโดยเจตนา
  • การกำกับดูแลโดยคณะกรรมการด้านเทคนิค

15
"ภพชาติในอนาคต" คำตอบนี้มีอคติ pro-io.js
Brendan

27
"ความเป็นจริงมีอคติเสรีนิยมที่รู้จักกันดี" - Stephen Colbert
Matt Ball

2
@BrendanAshworth: แม้ว่าจะเป็นเรื่องจริง แต่ก็ดูเหมือนจะไม่เป็นเหตุให้การโหวตลดลง ในกรณีที่มีข้อโต้แย้งต่อต้าน io.js โปรดแจ้งให้เราทราบ!
Bergi

3
@Bergi ที่จริงผมไม่ได้ downvote คำตอบ - เพียงเพราะมันจะลำเอียงไม่ได้หมายความว่ามันไม่ได้เป็นคำตอบที่ดี มีการโหวตเพิ่ม :)
เบรนแดน

3
@BrendanAshworth ในทางเทคนิคคำสั่ง 'ชาติหน้า' ไม่ถูกต้อง io.js กำลังผลักดันความก้าวหน้าของ node.js (รองรับ ES6 โดยเฉพาะ) และนำโดยผู้สร้างดั้งเดิมของ node.js เมื่อพิจารณาว่า GoDaddy ได้รับ nodejitsu (ผู้ให้บริการ NPM) และเพิ่งยื่นเครื่องหมายการค้าในชื่อ "npm" และชื่อ "node.js" เป็นเครื่องหมายการค้าของ Joyent ระบบนิเวศ node.js / npm อาจตกอยู่ในอันตราย หากสิ่งต่างๆไปทางใต้การย้ายข้อมูลไปยัง io.js จะเป็นไปได้อย่างสมบูรณ์
Evan Plaice

9

io.js เป็นทางแยกของ node.js แต่ตอนนี้ io.js และ node.js ทำงานร่วมกันอีกครั้ง นั่นคือสาเหตุที่ node.js กระโดดจาก 0.12.x โดยตรงไปที่ 4.0.0 เนื่องจาก node.js เวอร์ชัน 4.0.0 รวมการอัปเดตที่สำคัญทั้งหมดจาก io.js เวอร์ชัน 3.0.0

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.