TGViewer
Стой под стрелой Стой под стрелой @nikitonsky_pub · 11.9K subscribers
Post #135 8.94K
Проклятие Джавы распространяется не только на десктопные UI, но и на билд-системы.

Ant, кажется, был ничего? Эдакий make, только писать надо на XML (времена были тяжелые, XML казался хорошей идеей). Ну я не пользовался особо, но видел.

Где-то начиная с Maven что-то пошло не так. В Maven впервые в полную силу была реализована идея «ты что-то пишешь, а потом оно где-то в совсем другой момент используется». Типа, твои действия привязываются к stages, но stages ты явно не вызываешь, они вызываются неявно, когда ты вызываешь команды, причем пачками. То есть тебе нужно не просто куда-то свой плагин вставить, но и убедиться, что он не вставился туда, куда не нужно. Короче, сложно, я за 15 лет так и не разобрался.

Лучше всего абсурдность Maven подчеркивает Lein, система сборки для Clojure. Lein сел на ту же инфраструктуру, что и Maven, буквально: в те же репозитории ходит, те же jar-ки использует. Но при этом Lein это самая простая, логичная, лаконичная, удобная система сборки из вообще всего, что я когда-либо видел (как и многое в Clojure, впрочем). То есть понимаете, да? Делает то же самое, использует те же вводные, но делает это НОРМАЛЬНО. А джависты — ну, джависты это джависты.

Так вот. На Maven мысль, к сожалению, не остановилась. XML начал потихоньку умирать (спека на 125 ТЫСЯЧ букв, кто ж такое вытерпит?), чем заменили бы его здравомыслящие люди? Ну, JSON-ом, наверное? YAML в худшем случае. Ну это здравомыслящие. А джависты взяли Groovy, язык, нигде вообще не использовавшийся в принципе. Потому что могут.

Так появился Gradle. Groovy, конечно, шаг вперед по сравнению с XML все равно. Но вот чего не учли создатели: на Groovy стало очень удобно программировать билд. На Maven программировать тоже можно было, но гораздо неудобнее: надо плагин создавать, компилять его как-то, выкладывать куда-то публично, и только потом использовать.

А вот на Груви можно писать прям в билд-файле. И это катастрофа. Потому что любят Джава-программисты больше всего? Правильно, писать абстрактный код. И вот это катастрофа. Билды превращаются в свою отдельную систему, с функциями, классами, взаимными импортами, умолчаниями, абстракциями, архитектурой. Архитектурой, блин! В билд-файле! Хуже того, она и построена еще вся на умолчаниях: ты что-то куда-то добавляешь, а потом оно где-то совсем в другом месте, никак не связанном с первым, тебе аукнется. Как это понять? А никак, надо знать заранее.

Я уж не говорю про всякие мелочи, типа того, что Gradle сам себя скачивает, отдельно в каждый проект. То есть у начинающего Джава программиста в среднем в системе стоит пять-десять копий Gradle одновременно.

Или, например, у Gradle три конфига вместо одного. Почему три? Да фиг его знает. Но запомнить где что я тоже так и не смог. Просто щелкаю их все по очереди, пока не найду то что надо.

Котлинисты, кстати, знаете как решили эту проблему для себя? Никак, лол. Заменили Groovy на Kotlin, оставив все остальные проблемы ровно на том же месте, где они изначально лежали.

А теперь я расскажу вам о той самой идеальной билд системе, которая порешала все недостатки Maven и Gradle и сделала жизнь джавистов и котлинистов счастливой. Вот она:
  • 💯 1
More from @nikitonsky_pub
  1. Oct 2, 2026Поскольку я больше не безработный, напоминание себе на следующий раз о поиске работы, пото…
  2. Sep 26, 2026По соцсетям гуляет контроверсивный ролик с недавнего Rails World, в котором DHH со сцены с…
  3. Sep 21, 2026Самое обидное это конечно что ты вынашиваешь какую-то там идею неделю, две, месяц, год, жи…
  4. Sep 15, 2026Возник еще вопрос, почему не подписать поле ввода внутри, а когда на него нажимаешь, подпи…
  5. Sep 15, 2026Просто подпишите поля Есть такой тренд — писать название поля на форме внутри, плейсхолдер…
  6. Sep 11, 2026Мы все ругаем русских локализаторов и конечно за дело, но я вот как-то пошел у себя в Берл…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →