microJUG – Telegram
microJUG
982 subscribers
155 photos
1 video
2 files
237 links
Мысли о Java.
Основной канал: @miniJUG
Буст: https://news.1rj.ru/str/microJUG?boost
Чат: https://news.1rj.ru/str/micro_JUG
Таблица JEP'ов: https://minijug.org/jeps.html
Download Telegram
Новость месячной давности, но всё же. Microsoft (совместно с Azul) выпустил первый EA билд порта OpenJDK под Apple M1. Да-да, Microsoft. Под Apple.
На вопрос, зачем им это нужно, продуктовый менеджер сказал, что многие разработчики в Microsoft работают на маках, и скоро они будут обновляться на новые макбуки 😄.
#microsoft #applem1
Удивительно, насколько близки наши с Tonsky взгляды относительно контейнеров, Gradle и всей этой прочей херни. Даже немного удивлён.
Gradle это худшее, что случилось с джавой за всю её историю, на мой взгляд.
Стоит конечно признаться, я избалован 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.

Вот уж воистину, сколько плюсов от того, что просто делаешь не что-то сверхординарное, а просто логично и нормально. По нашим временам — редкость.
Капец, Lombok не работает на Java 16, потому что за каким-то дьяволом лезет в закрытые классы JDK. И пока из обходных путей это прописать кучу флагов --add-opens в конфигурации 🤦‍♂️.
Вот вроде ж девятка вышла 3 года назад. Столько времени было исправить. Или 3 лет не хватило?
#java16 #lombok
Вчера посмотрел Tenet и обратил внимание, что там корабль называется Gogland. А вот Котлина в фильме не заметил. Жаль, была бы очень прикольная пасхалочка для погромистов :)

Если вдруг кто не в курсе, то Гогланд и Котлин - это два острова в Финском заливе. В честь них JetBrains назвал свой язык и IDE для Go, но позже переименовал в Goland.
Я решил завести Твиттер для @miniJUG. Подписываемся: https://twitter.com/mini_JUG
Ничего себе новости. Американские спецслужбы, по словам авторов статьи, предполагают, что русские хакеры через JetBrains TeamCity организовывали кибератаки на пользователей, в результате чего были взломаны государственные министерства и частные компании. Об этом написали не какие-то малоизвестные новостные агентства, специализирующиеся на IT, а аж New York Times и Wall Street Journal.
В статьях написано, что в отношении JetBrains сейчас идёт расследование и устанавливается его роль в атаке. Максим Шафиров написал в Твиттере, что впервые узнал о расследовании из прессы. Затем он выложил официальный пост, где написал, что JetBrains никак не может быть причастен к атаке и что компания не была извещена о расследовании, но полностью готова к сотрудничеству в этом вопросе.
Увидел вот такой код в нашем проекте:

private static final char[] CHARS = new char[] {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };

Сразу подумал, что надо переписать. Но понял, что не знаю как. Все варианты получаются слишком громоздкими. Есть идеи?
Имя пакета omg в CORBA прям в точку

Можно было бы вообще назвать org.😱.CORBA
Меня забанили в Твиттере на 12 часов
Интересно, все мои твиты заменились на такой вот текст
Разблокировали!
В связи с 25-летием JDK 1.0 опрос. Какая была ваша первая версия Java, с которой вы начали работать за деньги?
Final Results
0%
Java 1.0/1.1
2%
Java 1.2
2%
Java 1.3
7%
Java 1.4
7%
Java 5
23%
Java 6
22%
Java 7
32%
Java 8
1%
Java 9+
4%
Я (ещё) не писал на Java за деньги
Количество Java-чемпионов на 100 млн. населения
Как вы произносите null в разговорной речи?
Final Results
31%
нулл
68%
налл
1%
нуль
0%
ноль
Согласитесь, испытываешь некое чувство гордости, когда удаётся написать код без использования Stream'ов? 😂
Где-то неделю программирую на Java 11. Пока в основном радуюсь новшествам в API, а не в синтаксисе. Прям сильно зашёл HttpClient. Сокращает код в разы по сравнению с HttpURLConnection. Ещё заюзал Files.writeString и String.isBlank. Из синтаксиса пока только удалось написать анонимный класс с оператором бубна. var пока не решаюсь использовать. А вы пишете var?