TGViewer
Java Developer Java Developer @java_developer · 6.35K subscribers
Post #757 6.11K

Forwarded from Стой под стрелой

Стоит конечно признаться, я избалован Java. Казалось бы, самая немодная технология в мире, однако:

Когда хайпили контейнеры, я пожимал плечами. JVM ставится вообще без каких-либо зависимостей, просто копированием папки, и... все! Все работает. Хочешь в /home положи, хочешь десяток JVM рядом держи и запускай хоть параллельно. Даже никакие переменные прописывать не надо.

Когда каждый язык изобретал свой package management, я опять пожимал плечами. Раздутые node_modules? В Maven каждая зависимость иммутабельна, скачивается один раз в жизни и дальше шарится между вообще всеми возможными приложениями. Lock-файлы? В Maven версии прописываются не диапазонами, граф зависимостей однозначен в любой момент времени настоящего и будущего, безо всяких .lock-файлов. Удалить из Maven Central ничего нельзя, так что драмы вроде left-pad тоже невозможны. Что такое reproducible builds я тоже никогда не понимал: как в принципе можно так напрограммировать, что билд будет не reproducible? История о том, что node_modules надо периодически удалять, если где-то что-то застряло, стабильно вызывали смех: вы там что, даже файл надежно скачать не можете?

Когда я пытаюсь скомпилять какой-нибудь C/C++ проект, каждый раз с нежностью вспоминаю Java: просто запустил и просто работает. Сетап у всех одинаковый, тулинг одинаковый, препроцессора нет, ручек у компилятора тоже. В системе не должно стоять магического набора говна, про которое надо каким-то образом догадаться да еще и версии угадать. Конечно, от такой жизни захочешь Докер.

К сожалению, с появлением Gradle преимущества Java в простоте сборки потихоньку сходят на нет: попытаться запустить проект на Gradle так же сложно, как и на C++. Но я еще помню хорошие времена. Особенно когда новая версия JVM выходила раз в пять лет, и тупо вообще весь мир сидел на одной и той же.

А, я не говорил, что JVM-тулинг вообще весь кросс-платформенный? Если вы свели сборку/запуск к <mvn что-то>, то она запустится на Windows так же тривиально, как и на macOS/Linux.

Вот уж воистину, сколько плюсов от того, что просто делаешь не что-то сверхординарное, а просто логично и нормально. По нашим временам — редкость.
More from @java_developer
  1. Apr 20, 2025Что посмотреть на выходных — 20 Наткнулся в Ютубе на классное шоу. Такой мини-формат Своей…
  2. Apr 6, 2025Впечатления от JPoint 2025 моего коллеги Впечатления позитивные: большинство докладов понр…
  3. Apr 5, 2025JPoint 2025 Вчера сходил на JPoint — Java-конференцию для опытных разработчиков. Билет мне…
  4. Feb 4, 2025video post
  5. Feb 4, 2025яндексоиды, без негатива )
  6. Dec 24, 2024Kafka Какие есть гарантии доставки сообщений Ответ: 1. At most once (не более одного раза)…
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 →