- PVSM.RU - https://www.pvsm.ru -
Мы наконец-то выпустили JSCS версии 3.0, и надо сказать, что помимо энтузиазма, мы испытываем еще и некоторую грусть. Над новой мажорной версией мы работали много и долго, это было довольно интересно и местами захватывающе. Грустно от того, что это будет последней версией JSCS.
С помощью вас, JavaScript разработчиков, которые помогали JSCS, проект смог достичь успеха. Около 5 тысяч звезд на гитхабе [1] и более 27 тысяч скачиваний npm пакета [2] в день. Тем не менее, мы приняли решение не выпускать новых мажорных версий и впоследствии прекратить работу над проектом.
Такое решение было принять очень сложно. По длинному списку коммитов видно, как много мы работали над JSCS 3.0. Но чего вы там не увидите — так это работы над новым проектом CST, который лег в основу JSCS 3.0.
Мы однажды упоминали CST в анонсе JSCS 2.2.0 [3]. В какой-то момент JSCS, который, как и многие другие проекты, использовал esprima, столкнулся с невозможностью производить сложные изменения в коде. Тогда мы и придумали CST (Concrete Syntax Tree), цель которого — решить современные проблемы инструментов для стилевой и логической проверки кода. С помощью CST уже сейчас можно удалять неиспользуемые переменные, мертвый код…. исправить все, что линтер может исправить в ваших самых диких мечтах :-)
Таким образом, мы написали собственный Scope Analyzer. Переписали каждое правило в JSCS, фиксили, фиксили, боролись за производительность и снова фиксили… Так зачем же мы решили остановиться на третьей версии как на последней?
Проекты вроде JSCS требуют огромного вложения энергии и времени. Ревью пулл-реквестов, исправление багов, написание документации. Как и поддержка веб-сайта проекта. Как и ответы (бывало, что и по ночам) на вопросы пользователей в Gitter.
Команда JSCS работала в свободное время, обычно вечерами после основной работы или в выходные. Но с уменьшением обратной связи от сообщества проект стал слишком тяжёл, чтобы его можно было продолжать на чистом энтузиазме.
Как мы увидели, ESLint и JSCS уже решают разными способами одну и ту же проблему. А сообщество с большей радостью будет использовать один линтер, а не разрываться между двумя разными. И мы решили помочь сообществу.
Вместо того, чтобы продолжать соревноваться с ESLint, мы решили присоединиться к ESLint и привнести в него свой опыт и инструменты, которые мы разработали за время развития JSCS.
Поэтому сегодня мы рады поделиться с вами новостью о том, что большая часть команды разработки JSCS присоединяется к команде ESLint. Мы продолжим поддерживать JSCS три следующих месяца: исправлять баги, но без новых фич. Репозиторий JSCS никуда не денется, и вы всегда можете форкнуть и использовать код по своему усмотрению. Мы также продолжим работать над CST: мы верим, что это будущее JS-линтеров. Мы надеемся, что сможем помочь ESLint разработать качественный и функциональный механизм автоматического исправления ошибок стиля и логики.
Мы будем рады, если вы поможете нам протестировать CST в деле и обновите свой JSCS до версии 3. Нам очень интересно, как CST себя покажет в разных проектах.
В будущем рекомендуем вам переходить на ESLint. Мы работаем с командой ESLint над инструментами и документацией, которые сделают переход менее болезненным. В идеале переход вообще будет незаметным :-)
Мы очень благодарны всем, кто помогал нам с JSCS. Только благодаря вам JSCS смог стать таким популярным. И теперь мы приглашаем вас присоединиться к нам в работе над ESLint.
Команда разработчиков JSCS
Автор: mdevils
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/118065
Ссылки в тексте:
[1] звезд на гитхабе: https://github.com/jscs-dev/node-jscs/
[2] скачиваний npm пакета: https://www.npmjs.com/package/jscs
[3] анонсе JSCS 2.2.0: https://github.com/jscs-dev/node-jscs/blob/v2.2.0/CHANGELOG.md#-つ-_-つ--give-cst
[4] Источник: https://habrahabr.ru/post/281635/
Нажмите здесь для печати.