JSCS, CST і новий початок

JSCS, CST і новий початок

Ми нарешті випустили JSCS версії 3.0, і треба сказати, що крім ентузіазму, ми відчуваємо ще й деякий смуток. Над новою мажорною версією ми працювали багато і довго, це було досить цікаво і місцями захоплююче. Сумно від того, що це буде останньою версією JSCS.

За допомогою вас, JavaScript розробників, які допомагали JSCS, проект зміг досягти успіху. Близько 5 тисяч зірок на гітхабі і понад 27 тисяч скачувань npm пакета на день. Тим не менш, ми прийняли рішення не випускати нових мажорних версій і згодом припинити роботу над проектом.

Історія JSCS 3.0

Таке рішення було прийняти дуже складно. За довгим списком кімтів видно, як багато ми працювали над JSCS 3.0. Але чого ви там не побачите - так це роботи над новим проектом CST, який ліг в основу JSCS 3.0.

Ми одного разу згадували CST в анонсі JSCS 2.2.0. У якийсь момент JSCS, який, як і багато інших проектів, використовував esprima, зіткнувся з неможливістю робити складні зміни в коді. Тоді ми і придумали CST (Concrete Syntax Tree), мета якого - вирішити сучасні проблеми інструментів для стильової і логічної перевірки коду. За допомогою CST вже зараз можна видаляти невикористовувані змінні, мертвий код.... виправити все, що лінтер може виправити у ваших найбільш диких мріях:-)

Таким чином, ми написали власний Scope Analyzer. Переписали кожне правило в JSCS, фіксили, фіксили, боролися за продуктивність і знову фіксили... Так навіщо ж ми вирішили зупинитися на третій версії як на останній?

Вартість підтримки

Проекти на кшталт JSCS потребують величезного вкладення енергії і часу. Рев'ю кулл-реквестів, виправлення багів, написання документації. Як і підтримка веб-сайту проекту. Як і відповіді (бувало, що і ночами) на запитання користувачів у Gitter.

Команда JSCS працювала у вільний час, зазвичай вечорами після основної роботи або у вихідні. Але зі зменшенням зворотного зв'язку від спільноти проект став занадто тяжкий, щоб його можна було продовжувати на чистому ентузіазмі.

Приєднання до ESLint

Як ми побачили, ESLint і JSCS вже вирішують різними способами одну і ту ж проблему. А спільнота з більшою радістю буде використовувати один лінтер, а не розриватися між двома різними. І ми вирішили допомогти спільноті.

Замість того, щоб продовжувати змагатися з ESLint, ми вирішили приєднатися до ESLint і привнести в нього свій досвід та інструменти, які ми розробили за час розвитку JSCS.

Тому сьогодні ми раді поділитися з вами новиною про те, що велика частина команди розробки JSCS приєднується до команди ESLint. Ми продовжимо підтримувати JSCS три наступні місяці: виправляти баги, але без нових фіч. Сховище JSCS нікуди не дінеться, і ви завжди можете форкнути і використовувати код на свій розсуд. Ми також продовжимо працювати над CST: ми віримо, що це майбутнє JS-лінтерів. Ми сподіваємося, що зможемо допомогти ESLint розробити якісний і функціональний механізм автоматичного виправлення помилок стилю і логіки.

І тим не менш

Ми будемо раді, якщо ви допоможете нам протестувати CST у справі і оновите свій JSCS до версії 3. Нам дуже цікаво, як CST себе покаже в різних проектах.

У майбутньому рекомендуємо вам переходити на ESLint. Ми працюємо з командою ESLint над інструментами і документацією, які зроблять перехід менш болючим. В ідеалі перехід взагалі буде непомітним:-)

Подяки

Ми дуже вдячні всім, хто допомагав нам з JSCS. Тільки завдяки вам JSCS зміг стати таким популярним. І тепер ми запрошуємо вас приєднатися до нас у роботі над ESLint.

Команда розробників JSCS