Статьи

Прощай, Джойент, Фонд Hello Node.js

В декабре прошлого года мир серверного JavaScript был навсегда изменен с выпуском io.js. С момента своего выпуска io.js оказал непосредственное влияние на мир серверного JavaScript, поскольку создал альтернативную платформу для Joyent Node.js, или, проще говоря, Node. Те, кто стоял за io.js, создали платформу, чтобы быть в курсе последних возможностей движка JavaScript v8, чего не смог сделать Node.js. В результате влияния io.js, Joyent решил передать единоличное владение проектом фонду Node.js, сторонней компании, состоящей из разработчиков из некоторых ведущих мировых технологических компаний. Хотя фонд Node.js постоянно обращался к io.js, чтобы объединиться со своим предшественником, в конечном итоге, io.js согласится объединиться с фондом Node.js за несколько месяцев. Он будет работать под названием Node.

Чтобы помочь вам получить наиболее полный обзор успеха io.js, в этой статье я расскажу о том, что спровоцировало создание новой платформы, ключевые лица, стоящие за ней, и модель управления, которая, по моему мнению, сделала этот проект невероятно успешным ,

nodejs-логотип

Что зажгло io.js

Как ни странно, многие из основных разработчиков в Joyent стояли за созданием io.js из-за небольшого разногласия между командой разработчиков, создающей платформу, и администрацией, отвечающей за внедрение новых сборок. Чтобы помочь решить эту проблему, разработчики из Joyent разработали новую модель в качестве фона для разработки платформы. Однако их разговоры с администрацией ни к чему не привели. Зачастую разработчикам, работающим на платформе Node.js, приходится смотреть код, которому они посвящают много времени, сидя на полке, что приводило в уныние. Время шло, напряжение продолжало расти. Ситуация изменилась, когда Федор Идутный, основной разработчик Node, позволил себе раскошелиться на Node.js, что ознаменовало создание io.js. Идутный знал, что он пользуется поддержкой коллег, и был уверен, что проект будет успешным в предоставлении платформы, обеспечивающей новейшую поддержку ES6 на стороне сервера.

Непосредственное влияние io.js

Влияние io.js на сообщество JavaScript просто замечательно. Всего за три месяца успех io.js заставил Joyent осознать, что они не обслуживали Node должным образом и что им нужно было внедрить новое решение. Поэтому Джойент отказался от единоличного владения Node и основал Фонд Node.js , который приветствовал разработчиков из Microsoft, IBM, PayPal и других компаний, известных своим технологическим мастерством. Это было более или менее эквивалентно тому, как Джойент размахивал белым флагом io.js, который уже начал показывать себя в качестве законной платформы. После создания фонд Node.js немедленно обратился к io.js для слияния. Тем не менее Технический комитет io.js решил остаться верным своим первоначальным намерениям и не сливаться с Node.js до тех пор, пока они действительно не поверят, что обе команды разделяют одно и то же видение.

В течение нескольких недель сообщество io.js контролировало скорость разработки JavaScript на стороне сервера. Они постоянно внедряли обновленные версии платформы с функциональностью, намного превышающей функциональность Node, что, в свою очередь, оказалось вредным для Joyent. С самого начала сообщество io.js успешно создавало платформу с гораздо более совершенной версией двигателя v8. Последний основной выпуск Node, 0.12.0, построен на основе версии 3.28.73 движка JavaScript v8, выпущенного в августе 2014 года. С другой стороны, io.js v2.2.1 поставляется с версией 4.2 v8. 77,20. Использование устаревшей функциональности от имени Joyents было недопустимо. В частности, это отсутствие функциональности отягощало разработчиков по всему миру, которые хотели познакомиться с использованием новейших функций ECMAScript на сервере.

Если вы посетите iojs.org , вы заметите цитату «Привнесение ES6 в сообщество Node.js», и это именно то, что сделала новая платформа. Кроме того, обеспечение функциональности ES6 — не единственная область, в которой io.js преуспел. С момента выхода io.js Raygun.io провел две серии тестов, сравнивающих платформы ; самый последний эксперимент io.js v2.0.0 сравнивался с версией 0.12.2 и 0.10.38 узла. Во время обоих тестов io.js оказался более быстрой платформой, и платформа даже показала увеличение производительности по сравнению с более ранней серией тестов, в которых сравнивался io.js v1.2.0. Хотя это только одна серия тестов, io.js превзошел Node.js при использовании модулей http, express и Koa. Как указано в статье Raygun.io:

диаграммы действительно дают некоторую интересную пищу для размышлений и могут предоставить вам трамплин для выполнения ваших собственных реальных испытаний и, возможно, для значительного ускорения.

На мой взгляд, они действительно представляют интересную информацию о сырой мощи платформы.

Open Source преобладает с моделью открытого управления

Трудно представить этот успех без поддержки io.js, полученной от сообщества открытого кода. Чтобы получить такой отклик, должна была быть чрезвычайно надежная модель, которая могла бы управлять проектом с открытым исходным кодом такого масштаба. К счастью, многие из ключевых людей в io.js имели непосредственный опыт решения проблем, возникших в Joyent, и этот опыт оказал чрезвычайно позитивное влияние на создание модели открытого управления, в которой io.js в конечном итоге преуспел бы. ,

На вершине этой модели управления находится технический комитет (TC) — группа из шести-двенадцати человек, отвечающая за обеспечение надлежащего технического руководства для платформы, изменение руководящих принципов проекта и многое другое. TC был создан для того, чтобы команда io.js оставалась на курсе. Существуют строгие правила для членства в ТС. Например, не более одной трети членов ТК могут работать на одного и того же работодателя, чтобы обеспечить баланс сил между членами. Ниже ТК находится группа сотрудников, назначаемых комитетом после того, как они внесли значительный вклад в проект. Эти сотрудники отвечают за рассмотрение запросов извлечения, сделанных участниками, и за внесение изменений в проект.

По мере развития проекта ТК io.js собирался каждую неделю, чтобы обсудить текущее состояние дел. Постоянное общение между ТС, соавторами и участниками способствовало последовательному продвижению этого проекта. Более того, широкая публика не только постоянно информируется о новых возможностях, но и активно участвует в обсуждении. Таким образом, группа быстро достигла большого успеха в результате. Они реализовали такие вещи, как еженедельный бюллетень на средней странице io.js. который резюмирует любые изменения в платформе и держит людей в курсе последних обновлений. Можно сказать, что сравнивать постоянный приток информации и роста io.js с темпами роста Node в течение прошлого года — все равно что сравнивать день и ночь.

Слияние

Поскольку io.js продолжал расти, значительное количество времени и ресурсов было вложено в проект, в котором не было никаких коммерческих ресурсов. В статье под названием Growing Up — io.js нужен фундамент , Микаэль Роджерс обсуждает, почему должно быть время для слияния, прежде чем проекты станут слишком большими. Я настоятельно рекомендую вам взглянуть на это. Автор объясняет, что, хотя сообщество open-source отлично справляется с управлением io.js, проекту такого вещества нужно больше, чем просто сообщество open-source, чтобы процветать.

Выводы

В заключение мы должны признать, что даже если Joyent не был лучшей администрацией при работе с Node, они предоставили необходимые активы для финансирования, маркетинга, юридических вопросов и все другие ресурсы, необходимые для проекта такого размера. При этом io.js, который теперь будет называться Node.js, прошел невероятно успешно.