Почти месяц назад ESLint анонсировали отказ от правил форматирования , что, безусловно, является правильным решением: правил много и их надо поддерживать, остальные форматтеры покрывают больше кейсов, возникают конфликты между линтером и форматером. В общем, не нужно оно в том виде, в котором существует сейчас.
А 10 дней назад Christopher Chedeau более известный как Vjeux и автор Prettier анонсировал челендж — тот кто портирует prettier на rust, получит $10 000. К нему присоединился Guillermo Rauch (CEO Vercel) — итого $20 000. Основной критерий — 95% тестов преттиера должны выполняться. Так же там по мелочи ($2.5к) дают за компиляцию в WASM и поддежку NAPI-RS.
И, кажется, у этого челенджа есть победитель — Biome (ex Rome, я много писал о них, можете поискать по каналу).
В Biome очень хорошо консолидировались и за полторы недели достигли цели. У них получилось это сделать так быстро, т.к. форматтер и до этого покрывал большое количество тестов, что-то около 92%.
Так же в челендже была замечена команда Oxc — за неделю они успели покрыть 21% кейсов. А создатель SWC решил, что у него нет на это времени.
В целом, я рад за биом — им деньги нужны как никогда. Но я точно не могу назвать преттиер медленным. И у меня возникает вопрос — а этот челендж действительно имеет смысл? Так же думает и Isaac Schlueter, создатель npm и подмечает, что самая быстрый способ — не совершать работу в принципе, кешировать и параллелизировать.
Кстати, у преттиера уже есть кеширование:
yarn prettier --cache --cache-strategy content
Чего преттиеру не хватает, так это параллельности.
Кристофер, как затейник всего челенджа, признаётся, что одна из идей — найти героя, который найдет узкие места в самом преттиере.
К примеру, преттиер резолвит .editorconfig для каждого файла. Кеширование резовла конфига сокращает резолв с 12 секунд до 13 милисекунд при форматировании 20 000 файлов. Ну и вот ишью об этом.
В целом, история с челенджем странная. Мне кажется правильней было бы объявить баунти для самого преттиера… Ну и посмотрим на сколько биом будет быстрее, если, конечно, будет.
Ну и тем временем biome пытаются интегрировать в репозиторий ноды, но консенсуса пока не наблюдается. Один из жирных минусов — 100мб для каждой версии биома в репозитории.
Ну а ESLint не остался в стороне. Anthony Fu, член команды Vue, решил поддерживать правила форматирования и вынес их в проект ESLint Stylistic. Что-что, а это я точно считаю неправильным решением — нам нужно меньше форматеров, а не больше…