☕️ Java стала похожа на Rust. Кто-то явно пропустил несколько обновлений
В X сравнили два фрагмента кода. Сверху современная Java, снизу Rust. Оба описывают температуру в Цельсиях и Фаренгейтах, разбирают варианты и обрабатывают результат преобразования строки в число.
И если ваша Java до сих пор состоит из геттеров, сеттеров и бесконечных instanceof, верхняя половина картинки может удивить.
В Java здесь работают вместе:
☑️ Records – чтобы описать данные без простыни служебного кода.
☑️ Sealed interface – чтобы ограничить набор допустимых вариантов.
☑️ Pattern matching в switch – чтобы сразу разобрать вариант и достать его содержимое.
☑️ Условия when – чтобы прямо в ветке проверить значение.
В Rust похожая задача решается через enum и match. Синтаксис отличается, но ход мысли уже очень близкий - описали возможные состояния → явно обработали каждое.
Правда, как в том анекдоте, есть нюанс. Оказанный в Java Result.of(...) – не стандартный аналог растовского Result. Его реализация на скриншоте не раскрыта. Так что принимать всю картинку за возможности Java из коробки не стоит.
Но повод пересмотреть старые претензии к языку вполне есть. Шутки про многословную Java помнят все. А до records и pattern matching в собственном проекте добрались ещё не все.
👀 У вас современная Java уже в коде или пока только номер версии в сборке?
В X сравнили два фрагмента кода. Сверху современная Java, снизу Rust. Оба описывают температуру в Цельсиях и Фаренгейтах, разбирают варианты и обрабатывают результат преобразования строки в число.
И если ваша Java до сих пор состоит из геттеров, сеттеров и бесконечных instanceof, верхняя половина картинки может удивить.
В Java здесь работают вместе:
☑️ Records – чтобы описать данные без простыни служебного кода.
☑️ Sealed interface – чтобы ограничить набор допустимых вариантов.
☑️ Pattern matching в switch – чтобы сразу разобрать вариант и достать его содержимое.
☑️ Условия when – чтобы прямо в ветке проверить значение.
В Rust похожая задача решается через enum и match. Синтаксис отличается, но ход мысли уже очень близкий - описали возможные состояния → явно обработали каждое.
Правда, как в том анекдоте, есть нюанс. Оказанный в Java Result.of(...) – не стандартный аналог растовского Result. Его реализация на скриншоте не раскрыта. Так что принимать всю картинку за возможности Java из коробки не стоит.
Но повод пересмотреть старые претензии к языку вполне есть. Шутки про многословную Java помнят все. А до records и pattern matching в собственном проекте добрались ещё не все.
👀 У вас современная Java уже в коде или пока только номер версии в сборке?