Исполнительный комитет JCP не утвердил модульную систему в Java 9

Исполнительные комитет JCP (Java Community Process) отклонил принятие спецификации JSR 376 (Java Platform Module System), в рамках которой развивалось ключевое улучшение платформы Java 9, релиз которой запланирован на 27 июля 2017 года. JSR 376 отражает изменения, подготовленные в рамках проекта Jigsaw, и предлагает принципиально новые для Java средства разбиения программ и JDK на модули.

Против добавление в Java средств для разбиения на модули проголосовало 13 из 23 активных участников комитета. Среди проголосовавших против: IBM, Red Hat, Eclipse Foundation, Hewlett Packard Enterprise, SAP и Twitter. Из участников, голосовавших за принятие JSR 376, можно отметить Intel, Fujitsu, Goldman Sachs, Oracle. В течение 30 дней планируется выставить на голосование обновлённый вариант спецификации, в случае одобрения которого ещё удастся выпустить Java 9 в срок.

По мнению сторонников проекта Jigsaw разбиение кода платформы Java на модули упростит создание, сопровождение и распространение больших приложений, позволив избавиться от наблюдаемых в настоящее время проблем с монолитными JAR и распространением наборов классов. Система модулей даст возможность легко выделять функциональность и формировать настраиваемые конфигурации, адаптируемые как для развёртывания на больших серверах, так и на встраиваемой технике. Модульные приложения, построенные на основе модульной платформы Java, потребуют загрузки меньшего объёма данных и позволят достигнуть более высокой производительности за счёт более эффективной оптимизации специфичных для используемой конфигурации модулей.

Основными противниками принятия JSR 376 стали компании IBM и Red Hat. Остальные в основном присоединились к мнению IBM или проголосовали против, так как среди участников совета не был достигнут консенсус и остаются нерешёнными спорные вопросы. Компания IBM проголосовала против, так как считает, что спецификация ещё не готова для утверждения и требует дополнительной доработки.

Компания Red Hat полагает, что внедрение Jigsaw приведёт к нарушению работы уже существующих приложений и, как следствие, инициирует раскол экосистемы и фрагментацию сообщества: с одной стороны окажутся системы на базе Jigsaw, в с другой все остальные решения, включая Java SE ClassLoader и OSGi. Отмечается также негативное влияние на выпуск Java EE 9, который невозможно будет построить на базе Jigsaw, так как это потребует разорвать обратную совместимость, переносимость и паритет в функциональности с прошлыми выпусками спецификаций Java EE. Оппоненты утверждают, что Red Hat пытается защитить уже поставляемую в платформе WildFly нестандартную систему загрузки модулей JBoss Modules, которую трудно будет сохранить в неизменном виде после внедрения Jigsaw.

©  OpenNet