Minecraft уходит от использования Java

Мы упустили эту новость на прошлой неделе, но тогда её пропустило и почти всё Java-сообщество, поэтому обратим внимание теперь. Из анонса Microsoft на выставке E3 следует, что теперь основным вариантом Minecraft станет написанный на C++, а не оригинальная Java-версия.

Почему это важно? Во-первых, Minecraft — самая популярная в мире игра на Java. Во-вторых, у неё очень активное мод-сообщество: множество людей писали на Java свои модификации Minecraft. Отчасти такая активность была вызвана большим количеством Java-разработчиков в мире, но в то же время это и приводило в Java новых людей. В итоге на игру регулярно ссылались в текстах вроде «Is Java Dead? No! Here’s Why…», и она была ярким примером использования Java за пределами энтерпрайза. Теперь всё это заканчивается: с версией, которая становится основной, все существующие Java-моды несовместимы.

Чем вызваны перемены? Ещё в 2011-м, помимо оригинальной десктопной Java-версии, появилась мобильная Pocket Edition — написанная на C++, чтобы движок работал на iOS (где Java не поддерживается). Позже появилась версия Windows 10 Edition — по сути, порт Pocket Edition, также на C++. А теперь в Microsoft объединяют миры Pocket Edition, Windows 10 Edition и консольных версий, позволяя пользователям разных платформ играть друг с другом, и все эти версии переименовывают просто в Minecraft. А вот пользователи оригинальной Java-версии на этот общий праздник не приглашены, и её, наоборот, переименовывают в Minecraft: Java Edition, превращая в отдельный легаси-загончик. Microsoft обещает продолжать поддержку Java Edition, но на развитие теперь рассчитывать вряд ли стоит, и основная геймерская активность явно будет происходит не там.

На Reddit печалятся о произошедшем, называя это большой потерей для мод-сообщества: мол, значимым фактором было то, что Java-код хорошо подходит для реверс-инжиниринга, а с C++ такое не пройдёт.

Любопытно, что Java со своим «write once, run anywhere» споткнулась на том, что всё-таки не вполне anywhere: если бы была поддержка на iOS, возможно, всё иначе пошло бы. И жаль, конечно, что теперь Java-разработчики больше не будут сталкиваться с яркими багами, проводя всю жизнь в борьбе со скучными NPE:

Tags from the story