IO.js або старі граблі під новим соусом



«Сталося! Node.js отримало розвиток у вигляді форк io.js! Привіт ES6! Привіт новий V8!» раділи розробники. Поліз дивитися з надією, що ось сейяас, почавши з нуля, хлопці виправили фундаментальні косяки!

Які фундаментальні помилки допущені і чому без їх виправлення промисловий масштаб є спірним або просто недосяжним.



Зворотна сумісність

Ні, мова не про сумісністю з node.js, а мова про відсутність гарантій, що після чергового» оновлення ядра движка, не відвалиться. Таку гарантію дає JAVA, нехай безліч методів вважається deprecated і компілятор того гляди почне лаятися матом, тим не менш код, написаний на 2-ой яві працює і в 7-ій, 8-ій, і ми знаємо, що буде працювати надалі. Так само відсутні гарантії на рівні документації (див. нижче)
Це критично для розвивається платформи, движка.

Компилируемые модулі

Компилируемые модулі це відмінна штука! Але дуже небезпечна, на жаль, нестабільна (в плані складання), та ще й часто платформозависимая. Тому не вистачає такої перевірки для менеджера пакетів, як «уникати модулів з компилируемыми бібліотеками». Те, що збереться легко на amd64 може не зібратися на Windows і розгортання просто не вийде.
Це критично для движка, який позиціонує себе, як багатоплатформовий і абстрагирующий розробника від потреби відстежувати платформу, на якій все виконується.

Документація

Доки трохи поліпшили, але все одно це повна фігня. Перерахування методів і функціональності це документація, а, швидше, її чернетку.
Аргументи, їх типи, параметри і типи повертаються в коллбэкфункции, фатальні помилки, які «викинуть» ще до виклику callback це вже документація. Думаю Гуру можуть доповнити цей список.
Особливу увагу варто приділити тому, що відсутність документації говорить про невпевненість авторів і розробників движка в тому, що все так і залишиться. А значить немає ніяких гарантій, що це не зміниться, типи і порядок аргументів не поміняють і т. д.
Критично для проекту, який використовують багато розробників.

Unstable методи і модулі

Хто стикався з
fs.watch
зрозуміє про що кажу. Напрошується режим виконання, при якому весь запускається код перевірить і виведе модулі або скрипти, які використовують нестабільні методи та/або модулі. Так як є шаблони, які дозволяють обходити нестабільність, хотілося б їх бачити в деяких анотаціях в документації.
Критично для проектів, які цінують надійність.

Висновок

Якщо потрібно склепати сайт-візитку, маленький інет-магазин, чатик або форум, то не зрозуміло, чого не вистачає в node.js. USS Enterprise ж не годяться обидва движка по хорошому рахунку. Про плюси IO.js вже писали і, навіть, зовсім недавно про розвитку движка і їх, безперечно, варто взяти до уваги.
Я ж сподіваюся, що не заминусуют, а допоможуть достукатися до розробників, щоб отримати гарантії, документацію, виправлення і розвиток проекту!

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.