TG Telegram Group & Channel
Питонические атаки | United States America (US)
Create: Update:

Про ruff (5/5)

Давайте и про минусы тоже поговорим. Не бывает же всё только хорошо.

1. Нет поддержки структурного паттерн-матчинга из 3.10. Линтер просто не понимает эту синтаксическую конструкцию. Так что если вы прогрессивные и у вас уже весь код на match-case, то вам пока придётся подождать. Хотя я слышал про людей, которые просто отказались от match-case как раз из-за ruff — преимущества линтера перевесили пользу от паттерн-матчинга. Линтер использует парсер из RustPython — это такой интерпретатор Python, написанный на Rust, проект-долгострой. Только парсер, сам интерпретатор не используется. А у RustPython есть отставание от CPython по фичам и поддерживаемому синтаксису.

2. Написано на Rust. Это не только плюс, но и минус. Так просто код почитать уже не зайдёшь, баг-фикс левой пяткой не отправишь. Тут думать придётся, Rust учить, а это довольно высокий порог входа и крутая кривая обучения. Автор, конечно, максимально дружелюбен, и приглашает всех приходить и делать фиксы, даже если вы только-только начали учить язык и не уверены в правильности подходов. За плохой код обещает не гнобить, оказывать всяческую моральную поддержку. Он сам питонист и далеко не эксперт в расте, и это вообще его первый серьёзный проект.

3. Написано на Rust. Как рядовой пользователь, вы этого скорее всего даже и не заметите, потому что линтер легко устанавливается через pip, есть предсобранные колёса для всех популярных платформ, включая даже Alpine Linux. Но если вам вдруг повезло пользоваться чем-то менее мейнстримным, то будьте готовы ставить весь тулчейн Rust и собирать линтер из исходников. Хотя, у вас, наверное, и без того жизнь сложная. Линтер какой-то скомпилировать — это мелочь.

4. Нет системы плагинов, пока что. Сейчас автор сконцентрирован на том, чтобы затащить как можно больше уже существующих правил внутрь тулзы. Но он отдаёт отчёт, что все на свете проверки заимплементить невозможно, и нужно дать юзерам возможность иметь свои кастомные правила, которые не будут жить внутри ruff. Говорит, что можно будет писать свои правила как на расте, так и на питоне. Звучит-то хорошо, но я не понял, как он собирается это сделать. И не начнёт ли от этого сильно проседать скорость работы? Посмотрим.

5. Проект все ещё на очень ранней стадии. Новые релизы выкладывает почти каждый день, и каждый из них потенциально несёт в себе ломающие изменения, потому что никаких гарантий обратной совместимости на этом этапе дать нельзя. Использовать только смелым и отчаянным. Когда исправят проблему с паттерн-матчингом, то сделают стабильный релиз.


Сначала я вообще не понял идею и был настроен очень скептически. А сейчас под впечатлением, что такую простую вещь, как линтер, можно, оказывается, сделать намного лучше. Ненавижу эти кликбейтные заголовки по шаблону "X — убийца Y?", но тут реально иначе и не скажешь. ruff точно закрепится в наборе инструментов рядового питониста и убьёт многих из своих конкурентов, если они срочно не прыгнут выше головы. Как выяснилось, убивать нынешние стагнирующие линтеры совсем не сложно.

Исходники и документация вот здесь: https://github.com/charliermarsh/ruff

Ставьте и делитесь впечатлениями!

Про ruff (5/5)

Давайте и про минусы тоже поговорим. Не бывает же всё только хорошо.

1. Нет поддержки структурного паттерн-матчинга из 3.10. Линтер просто не понимает эту синтаксическую конструкцию. Так что если вы прогрессивные и у вас уже весь код на match-case, то вам пока придётся подождать. Хотя я слышал про людей, которые просто отказались от match-case как раз из-за ruff — преимущества линтера перевесили пользу от паттерн-матчинга. Линтер использует парсер из RustPython — это такой интерпретатор Python, написанный на Rust, проект-долгострой. Только парсер, сам интерпретатор не используется. А у RustPython есть отставание от CPython по фичам и поддерживаемому синтаксису.

2. Написано на Rust. Это не только плюс, но и минус. Так просто код почитать уже не зайдёшь, баг-фикс левой пяткой не отправишь. Тут думать придётся, Rust учить, а это довольно высокий порог входа и крутая кривая обучения. Автор, конечно, максимально дружелюбен, и приглашает всех приходить и делать фиксы, даже если вы только-только начали учить язык и не уверены в правильности подходов. За плохой код обещает не гнобить, оказывать всяческую моральную поддержку. Он сам питонист и далеко не эксперт в расте, и это вообще его первый серьёзный проект.

3. Написано на Rust. Как рядовой пользователь, вы этого скорее всего даже и не заметите, потому что линтер легко устанавливается через pip, есть предсобранные колёса для всех популярных платформ, включая даже Alpine Linux. Но если вам вдруг повезло пользоваться чем-то менее мейнстримным, то будьте готовы ставить весь тулчейн Rust и собирать линтер из исходников. Хотя, у вас, наверное, и без того жизнь сложная. Линтер какой-то скомпилировать — это мелочь.

4. Нет системы плагинов, пока что. Сейчас автор сконцентрирован на том, чтобы затащить как можно больше уже существующих правил внутрь тулзы. Но он отдаёт отчёт, что все на свете проверки заимплементить невозможно, и нужно дать юзерам возможность иметь свои кастомные правила, которые не будут жить внутри ruff. Говорит, что можно будет писать свои правила как на расте, так и на питоне. Звучит-то хорошо, но я не понял, как он собирается это сделать. И не начнёт ли от этого сильно проседать скорость работы? Посмотрим.

5. Проект все ещё на очень ранней стадии. Новые релизы выкладывает почти каждый день, и каждый из них потенциально несёт в себе ломающие изменения, потому что никаких гарантий обратной совместимости на этом этапе дать нельзя. Использовать только смелым и отчаянным. Когда исправят проблему с паттерн-матчингом, то сделают стабильный релиз.


Сначала я вообще не понял идею и был настроен очень скептически. А сейчас под впечатлением, что такую простую вещь, как линтер, можно, оказывается, сделать намного лучше. Ненавижу эти кликбейтные заголовки по шаблону "X — убийца Y?", но тут реально иначе и не скажешь. ruff точно закрепится в наборе инструментов рядового питониста и убьёт многих из своих конкурентов, если они срочно не прыгнут выше головы. Как выяснилось, убивать нынешние стагнирующие линтеры совсем не сложно.

Исходники и документация вот здесь: https://github.com/charliermarsh/ruff

Ставьте и делитесь впечатлениями!
👍18🔥12🤩4❤‍🔥1


>>Click here to continue<<

Питонические атаки






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)