Tailwind — это круто. Но я от него отказываюсь.

MMaximilian Schwarzmüller
Computing/SoftwareSmall Business/StartupsAdult EducationInternet Technology

Transcript

00:00:00Для некоторых новых проектов, над которыми я сейчас работаю, — точнее, для большинства из них —
00:00:05я решил отказаться от Tailwind. В этих проектах я его больше не использую,
00:00:11соответственно, и Shadcn тоже. И на то есть причина. Дело вовсе не в том, что Tailwind плох,
00:00:18конечно же нет. Как раз наоборот — это потрясающая библиотека. Хочу прояснить этот момент.
00:00:22Мне даже немного неловко записывать это видео, этот выпуск, потому что
00:00:27всего несколько недель назад я рассказывал об огромных финансовых трудностях, с которыми столкнулся Tailwind.
00:00:32К счастью, с тех пор ситуация значительно улучшилась. Появилось много новых спонсоров. И сейчас,
00:00:38как мне кажется, их финансовое положение стало намного стабильнее. Ведь Tailwind действительно крут.
00:00:43Над этим проектом работают люди с большой душой и энергией. И я вовсе не хочу сказать,
00:00:49что он плохой, или убеждать кого-то не использовать его. Я просто использую этот канал,
00:00:56чтобы делиться мыслями, мнением и тем, как я работаю. Подумал, что это может быть
00:01:01интересно. Так почему же я не использую Tailwind, если считаю его потрясающим? Давайте сделаем
00:01:07шаг назад. Пару лет назад, до революции ИИ или до того, как ИИ стал так хорош в коде,
00:01:15я использовал Tailwind, как и большинство разработчиков повсюду. В основном,
00:01:21по одной главной причине: он позволял мне очень быстро вносить изменения в код. Знаете, я никогда
00:01:28особо не пользовался Figma или подобными инструментами. В том числе потому, что чаще всего работаю один.
00:01:34А когда работаешь над проектами в одиночку, тебе не обязательно использовать дизайнерские инструменты. Для меня
00:01:40всегда было быстрее пробовать варианты дизайна прямо в коде. Я мог просто писать код.
00:01:45С Tailwind, когда классы находятся прямо внутри DOM или JSX-кода, можно было
00:01:50мгновенно обновлять стили и пробовать разные варианты. Подправить отступ — и готово.
00:01:57Это был очень эффективный рабочий процесс. И это была главная причина для меня, а возможно, и
00:02:04для других разработчиков. Хотя я знаю, что для многих других —
00:02:10может быть, для большинства — веским поводом является просто ненависть к CSS. Знаю, CSS не особо популярен
00:02:17среди веб-разработчиков. И я понимаю почему. Он может казаться очень сложным. Там сотни и тысячи
00:02:23свойств и значений. Да, это может пугать. Однако стоит признать: современный CSS
00:02:31сделал огромный шаг вперед. Сейчас многие вещи делать гораздо проще, чем раньше. Тот же Flexbox
00:02:37уже давно не новинка, но он сильно упростил жизнь. А теперь представьте Flexbox в других областях,
00:02:44где работа с цветами стала намного проще. Теперь в CSS есть относительные цвета (relative colors).
00:02:51Кстати, на моем канале Akatamine я выпустил несколько видео о современных возможностях браузеров
00:02:55и CSS, таких как цвета, относительные цвета или контейнерные запросы (container queries). Они просто незаменимы
00:03:01для создания адаптивных компонентов, размер которых зависит не от экрана, а от доступного им места.
00:03:08Так что CSS сильно развился. Суть в том, что все эти современные фишки можно использовать и в Tailwind,
00:03:14по сути, большинство из них, но также можно писать чистый (vanilla) CSS. И сейчас,
00:03:23с появлением ИИ, это стало еще проще. Даже если вы терпеть не можете CSS,
00:03:28вам достаточно просто знать о существовании определенных функций и их поддержке браузерами. Можно указать ИИ
00:03:34на нужные функции, добавить документацию или статьи с MDN, и ИИ сам
00:03:39напишет код за вас. Вы спросите: «Зачем это делать? Почему просто не использовать Tailwind?»
00:03:45Ведь там тоже есть все эти функции. У меня на это есть полторы причины.
00:03:51Менее важная причина — Tailwind не всегда сразу поддерживает все новейшие фишки,
00:03:58но что более важно: ИИ определенно знает не обо всех возможностях Tailwind. У Tailwind
00:04:05куча функций, но ИИ не использует их все. Он часто выдает одни и те же классы, а иногда
00:04:13даже старый синтаксис, так что вы упускаете некоторые возможности. Конечно, то же самое
00:04:17может случиться и с чистым CSS. Если не сказать ИИ использовать конкретную функцию,
00:04:22он может этого не сделать. Но вы можете выучить несколько ключевых функций CSS, которые вам нужны,
00:04:29и попросить ИИ применить их. Я понимаю ваш аргумент: можно сделать то же самое и для Tailwind,
00:04:34назвав конкретные функции Tailwind. Просто, возможно, легче назвать пару ключевых
00:04:40функций CSS, чем классы Tailwind. Но опять же, это не главный мой аргумент.
00:04:48Моя основная мысль в том, что я всегда старался минимизировать количество библиотек в своих проектах.
00:04:53И на это есть две причины. Во-первых, я создаю образовательный контент, поэтому привык,
00:05:01что сторонние библиотеки — это скорее минус. Если я делаю курс по React
00:05:07и использую в нем Tailwind, то в случае критических изменений в Tailwind
00:05:12многие части моего кода или курса внезапно перестают работать. Я начинаю получать кучу вопросов
00:05:17от студентов, хотя сама основная тема, React, никак не изменилась. Я понимаю, что это специфическая
00:05:23проблема, которая касается лично меня, а не большинства обычных сайтов. Но даже если вы строите рядовой
00:05:29веб-сайт, я бы сказал, что иметь как можно меньше сторонних библиотек (в разумных пределах) — это хорошая идея.
00:05:38При этом я не призываю фанатично отказываться от всего подряд. Для использования определенных библиотек
00:05:44есть веские основания. Если вы делаете сайт
00:05:50с продвинутым текстовым редактором, использование чего-то вроде Tiptap вполне оправдано,
00:05:54потому что свой редактор писать долго. С ИИ это, конечно, проще, чем раньше,
00:05:59но вы столкнетесь с кучей крайних случаев и проблем, которые придется решать самому. С ИИ —
00:06:06да, но ИИ не делает всё идеально. Вы это знаете, если работали с ним. Так что
00:06:11есть причины использовать сторонние решения. Я просто считаю, что стилизация, как я уже объяснял,
00:06:16— это то, что вполне можно заменить. Опять же, я не говорю, что все должны так делать,
00:06:21но мне такой подход подходит. И это та библиотека, от которой я могу избавиться, потому что
00:06:28мне несложно проверить CSS-код, который выдает ИИ, и поправить стили вручную
00:06:37на чистом CSS, если что-то пойдет не так. А при использовании ИИ ошибки рано или поздно случатся.
00:06:44Но меня это не пугает. Если вы на дух не переносите CSS-код, то такой вариант,
00:06:50очевидно, не для вас. Но я теперь могу спокойно убрать Tailwind. Могу отказаться и от
00:06:56Shadcn, например, потому что сам строю свои компоненты. К тому же Shadcn, хоть и не
00:07:00является традиционной библиотекой, использует Radix UI, а у этой библиотеки сейчас сомнительный
00:07:08статус поддержки, насколько мне известно. И вот здесь кроется реальная причина, почему я хочу
00:07:16избегать лишних библиотек, даже если не брать в расчет образовательный контент. Любая
00:07:21библиотека в проекте может стать обузой, если её перестанут поддерживать. В какой-то момент
00:07:29уязвимости безопасности перестанут исправлять. Баги перестанут фиксить. Например,
00:07:35баги верстки в Tailwind. Новые фичи не будут добавляться. Если появится новая функция CSS,
00:07:41а Tailwind перестанет обновляться (хотя сейчас он обновляется), вы
00:07:46никогда не сможете её использовать. И, честно говоря, с Tailwind мы были близки к этому.
00:07:52В том видео, где я говорил об их проблемах, я упоминал пост главного создателя Tailwind, в котором он
00:07:58писал: если финансовый вопрос не решится, Tailwind может стать заброшенным проектом.
00:08:03Возможно, это было сказано слишком резко, может быть, для привлечения внимания. Тем не менее,
00:08:11главная проблема большинства сторонних библиотек — риск того, что в будущем их перестанут поддерживать,
00:08:17в зависимости от того, кто ими вообще занимается. Именно поэтому я
00:08:22лично снова полюбил использовать чистый CSS. Это важный момент, ведь я всегда так делал.
00:08:28И повторюсь: я желаю Tailwind только лучшего и до сих пор использую его
00:08:35во многих проектах. У меня нет к нему ненависти. Это просто эксперимент,
00:08:41попытка не использовать его в некоторых новых работах. И неважно, Tailwind это или что-то
00:08:46совсем другое — я бы всегда (и это было актуально еще до эпохи ИИ) советовал дважды подумать,
00:08:53прежде чем подключать стороннюю библиотеку. Есть много хороших причин их использовать — например,
00:08:57Better Auth для аутентификации просто великолепен. Его я бы точно взял. Но если библиотеку можно легко заменить,
00:09:04возможно, стоит еще раз всё взвесить.

Key Takeaway

Автор отказывается от Tailwind в пользу чистого CSS, аргументируя это развитием браузерных технологий, возможностями ИИ и стремлением минимизировать риски, связанные с поддержкой сторонних библиотек.

Highlights

Переход на чистый CSS обоснован развитием современных веб-стандартов, таких как Flexbox и Container Queries.

Использование ИИ значительно упрощает написание и отладку нативного CSS-кода, делая Tailwind менее необходимым.

Минимизация сторонних библиотек снижает риски зависимости от их долгосрочной поддержки и финансовой стабильности.

Специфика создания образовательного контента требует стабильного кода, не ломающегося при обновлении внешних зависимостей.

Tailwind по-прежнему остается качественным инструментом, но автор выбирает гибкость нативного решения для новых проектов.

Timeline

Введение и прояснение позиции по Tailwind

Автор объявляет о решении отказаться от использования Tailwind и Shadcn в своих новых проектах. Он сразу подчеркивает, что это не связано с плохим качеством библиотеки, которую он по-прежнему считает потрясающей. Упоминается недавнее улучшение финансового положения проекта Tailwind благодаря новым спонсорам. Видео позиционируется как личный опыт и мысли о рабочем процессе, а не призыв к массовому отказу. Автор хочет поделиться логикой своего выбора, сохраняя уважение к создателям инструмента.

Ретроспектива: Почему Tailwind был важен раньше

В этом разделе обсуждается, почему Tailwind стал стандартом индустрии до эпохи активного внедрения ИИ. Главным преимуществом была скорость внесения изменений напрямую в коде без использования инструментов дизайна вроде Figma. Для независимых разработчиков это позволяло мгновенно подправлять отступы и стили внутри JSX-кода. Автор также затрагивает тему нелюбви многих программистов к CSS из-за его сложности. Однако он отмечает, что страх перед CSS часто мешает увидеть прогресс современных стандартов.

Современный CSS и роль искусственного интеллекта

Спикер подробно рассматривает эволюцию нативного CSS, включая Flexbox, относительные цвета и контейнерные запросы. Он утверждает, что современные возможности браузеров позволяют создавать адаптивные компоненты без лишних надстроек. Появление ИИ кардинально меняет ситуацию, так как нейросети могут писать сложный CSS-код по запросу пользователя. Теперь разработчику достаточно знать о существовании функций, а реализацию можно делегировать чат-боту. Это делает использование специфических классов Tailwind менее критичным для продуктивности.

Проблемы ИИ в контексте Tailwind и чистого CSS

Автор анализирует ограничения ИИ при работе с конкретными библиотеками стилей. Он отмечает, что нейросети не всегда знают о самых новых функциях Tailwind и могут выдавать устаревший синтаксис. В то же время, управление чистым CSS через ИИ кажется автору более гибким и предсказуемым процессом. Хотя можно просить ИИ использовать конкретные классы Tailwind, работа с нативными свойствами зачастую оказывается проще. Основной акцент делается на том, что знание основ CSS дает больше контроля над итоговым результатом.

Риски зависимостей и образовательный аспект

Здесь раскрывается ключевая причина отказа — стремление минимизировать количество сторонних библиотек. Для создателя курсов лишние зависимости становятся обузой, так как обновления библиотек могут «сломать» учебный материал. Это приводит к потоку жалоб от студентов, даже если основная технология (например, React) работает исправно. Автор проводит черту между оправданным использованием сложных решений, таких как редакторы текста, и стилизацией. Он считает, что визуальную часть проекта легче всего поддерживать самостоятельно, не полагаясь на внешних разработчиков.

Долгосрочная поддержка и выводы

В финальной части обсуждается риск прекращения поддержки сторонних инструментов, на примере Radix UI и потенциальных угроз для Tailwind. Любая библиотека может перестать обновляться, что приведет к проблемам с безопасностью и невозможности использовать новые фичи браузеров. Автор напоминает о посте создателя Tailwind о финансовых трудностях как о тревожном сигнале для долгоживущих проектов. В заключение он советует зрителям всегда взвешивать необходимость каждой библиотеки. Если инструмент можно легко заменить нативным кодом, это стоит сделать ради стабильности проекта.

Community Posts

View all posts