آموزش iojs

در این بخش می خوانید:

معرفی و تاریخچه io.js

اول از همه باید بدانید io.js یک انشعاب از Node.js است و توسط Fedor Indutny منشعب شده است. با این اوصاف، Fedor رهبر پروژه نیست، io.js به عنوان یک ساختار حکومتی متن باز منتشر شده است.

اما چرا این انشعاب رخ داد؟

در ژوئیه 2014، آنها شروع به کار با Joyent کردند تا اطمینان حاصل شود که مشارکت کنندگان و جامعه از توانایی کمک به رفع مشکلاتی که Node.js با آن روبروست یا مواجه خواهد شد، کمک کنند. سپس در ماه اوت Node Forward برای کمک به بهبود Node.js شروع به کار کرد. به دلیل محدودیت های علامت تجاری، نمی توانستند نسخه ای جدید را منتشر کنند - اما خوشبختانه برای این جامعه، تمام این تلاش ها منجر به انتشار io.js شد. پس از این، فدور تصمیم گرفت Node.js را با نام io.js منشعب کند.

تفاوت های اصلی

همانطور که قبلاً متوجه شده اید io.js یک SemVer مناسب معرفی می کند که با 1.0.0 شروع به کار می کند. همچنین، io.js دارای امکانات شبانه است.

اما آنچه در این نسخه واقعاً عالی است موتور V8 به روز شده است (از نسخه 3.14.5.9 در Node.js v0.10.35 و 3.26.33 در Node.js v0.11.14 تا 3.31.74.1 برای io.js v1.0.0) ، که حداقل ویژگی هایی که در V8 به flag نیاز ندارند یعنی ویژگی های ES6 را بدون harmony flag-- برای ما به ارمغان می آورد.

ویژگی های io.js

ویژگی های staging/in-progress

تمام ویژگی های جدیدی که با عنوان staging/in-progress توسط تیم V8 در نظر گرفته می شود، تحت پرچم هایی که با harmony—آغاز می شوند قابل دسترسی است. البته این موارد برای سیستم های تولید نیستند.

تغییرات در ماژول های اصلی

io.js نه تنها ES6 را برای ما به ارمغان می آورد ، بلکه ماژول های اصلی جدید (تجربی) و ویژگی های جدید/رفع اشکال موجود را نیز به ارمغان می آورد.

ویژگی های موجود ES6 در io.js

لیست ویژگی های زیر بدون استفاده از پرچم در دسترس است:

  • Block scoping (let, const)
  • Collections (Map, WeakMap, Set, WeakSet)
  • Generators
  • Binary and Octal literals
  • Promises
  • New String methods
  • Symbols
  • Template strings

معرفی و تاریخچه io.js

شما همیشه می توانید بررسی کنید که io.js نصب شده شما از کدام نسخه V8 استفاده می کند، تنها کافی است بنویسید:

iojs -p process.versions.v8

با استفاده از این اطلاعات می توانید ویژگی های موجود را بررسی کنید. همچنین می توانید جدول سازگار ES6 را نیز بررسی کنید.

ماژول های جدید

io.js با ماژول های اصلی آزمایشی جدید همراه است:

  • Smalloc: به شما این امکان را می دهد که حافظه خام خارجی را allocation/ deallocation/کپی را در جاوا اسکریپت انجام دهید
  • v8: رویدادها و رابط های خاص نسخه V8 build را با node نشان می دهد

چرا انشعاب Node.js؟

تیم تولید io.js بیشتر از مشارکت کنندگان اصلی Node.js تشکیل شده بود. در ماه آگوست ، تیم Node Forward را ایجاد کرد که تلاش جامعه برای کمک به بهبود Node.js صورت پذیرد. به این ترتیب تلاش گسترده جامعه برای بهبودNode ، JavaScript و اکوسیستم آنها از طریق همکاری باز صورت گرفت. در اینجا به این نکته اشاره می کنیم که چرا جامعه در این مرحله مجبور به ایجاد انشعاب nodejs شد:

برخی از مشکلات به مالکیت و مشارکت گسترده تری نسبت به آنچه که قبلاً اعمال می شد، نیاز دارند، در حالی که برخی دیگر آنقدر بین پروژه های کوچک پراکنده شده اند که برای رشد نیاز به فضای همکاری مشترک جدید دارند. Node Forward مکانی است که همکاری لازم برای حل این مسائل می تواند انجام شود. در نهایت، کار جامعه تحت محدودیت علامت تجاری Node منتشر نشد، بنابراین یک انشعاب ساخته شد و io.js متولد شد. اما آنها امیدوارند هر دو پروژه در آینده با هم ادغام شوند.

نظرتون درباره این نوشته چیه؟ عالیه بد نیست خوب نبود