Российский вклад в развитие Java

Сегодня исполнилось одиннадцать лет Центру разработки Oracle в Санкт-Петербурге. Он был основан в 2004 году и стал играть существенную роль в развитии всех продуктов компании. При его участии создана Oracle Linux с поддержкой файловой системы Btrfs, написана половина кода VirtualBox и многие компиляторы, но самым приоритетным направлением остаётся платформа Java.

«Сейчас у нас крупнейший центр разработки Oracle по Java за пределами США, – комментирует директор Центра Григорий Лабзовский. – Заказчиком для нас выступает только корпорация Oracle. Мы ничего не отдаем на аутсорсинг».

J2SE 5.0 - первая версия, созданная после открытия Центра разработок Oracle в Санкт-Петербурге (изображение: eduonix.com).
J2SE 5.0 — первая версия, созданная после открытия Центра разработок Oracle в Санкт-Петербурге (изображение: eduonix.com).

Первый релиз платформы Java под руководством Oracle был выпущен спустя год после приобретения Sun Microsystems – в конце августа 2011 года. Ей стала Java Standard Edition 7, в разработке которой принимали активное участие сообщества OpenJDK Community и Java Community Process (JCP).

В Java SE 7 появился новый интерфейс прикладного программирования, позволяющий разбивать задачи на потоки в многоядерных системах. Тогда же были добавлены новые сетевые функции, поддержка большего числа файловых атрибутов и стандарта Unicode 6.0.

С начала XXI века Java остаётся одним из самых популярных языков программирования. В 2005 году компания TIOBE, анализирующая частоту поисковых запросов о различных языках и средствах разработки, назвала Java языком года. С тех пор ему приходилось то уступить позиции Си, то отвоёвывать их заново. За последние восемь месяцев популярность Java выросла с 13,5% до 17,8%, и она снова стала самым популярным языком для кросс-платформенных разработок.

Динамика популярности языков программирования (изображение: tiobe.com).
Динамика популярности языков программирования (изображение: tiobe.com).

«Java выдержала испытание временем и широким спектром приложений: от игр на небольших устройствах до крупных корпоративных систем», – отметил Аль Хильва (Al Hilwa), директор исследований в сфере программного обеспечения компании IDC.

Текущая версия Java SE 8 появилась в конце марта этого года накануне празднования двадцатилетия платформы. Она стала крупнейшим обновлением со времён выхода в январе 1996 года первого стабильного релиза – JDK 1.0.2.

В Java SE 8 появилась поддержка лямбда-выражений – блоков кода с переменными и параметрами, которые можно выполнять отдельными потоками или в отложенном режиме. При необходимости их можно даже преобразовать в функциональные интерфейсы.

Также появился набор компактных профилей, которые содержат предопределенные подмножества и позволяют запускать код на небольших устройствах без необходимости развёртывания всей платформы целиком. Для оптимизации использования ресурсов была добавлена возможность удаления области памяти из виртуальной машины HotSpot JVM и полностью переработаны подходы к обеспечению безопасности.

«Российская команда составляет около трети всех программистов, работавших над Java 8, – комментирует Григорий Лабзовский. – Она отвечает за новые и старые графические библиотеки (AWT, SWING, J2D, JavaFX), за производительность новой платформы, за качество Java 8 целиком. Огромное внимание в новой платформе уделялось безопасности, и в этой задаче российские разработчики были на одной из ключевых ролей».

В качестве хеш-функции теперь используется SHA с длиной дайджеста сообщения 224 бита. Поддерживаются новые алгоритмы шифрования и проверки подлинности. На стороне клиента протокол TLS 1.2 включён по умолчанию.

Пользователи могли заметить, что начиная с Java 8 update 20 из панели управления удалён средний уровень безопасности. Доступными остались только уровни «высокий» и «очень высокий». Вот как было в версии 1.7.45:

Средний уровень безопасности в Java 1.7.45.
Средний уровень безопасности в Java 1.7.45.

Раньше пользователь мог разрешить запуск любых Java-приложений, даже если они не удовлетворяли требованиям безопасности. Например, автор апплета не подписал его валидным цифровым сертификатом – это довольно частая ситуация. С другой стороны, при такой свободе действий повышался риск запуска вредоносных программ, особенно при посещении заражённых сайтов. На Java удобно писать не только различные утилиты, но и трояны-дропперы из-за повсеместного распространения платформы. Поэтому в Java 1.8.xx настройки ужесточили, и теперь они выглядят так:

Изменение настроек безопасности и список исключений в Java 1.8.45.
Изменение настроек безопасности и список исключений в Java 1.8.45.

В восьмой версии у конечного пользователя могут запускаться только приложения, удовлетворяющие новым требованиям безопасности. Это существенно повышает защищённость, но может и принести некоторые неудобства. Технически решение проблемы соответствия апплетов спецификациям новой платформы лежит на их авторах, которые должны выпустить соответствующие обновления. На практике же пока остаётся много старых программ, которые их разработчики не планируют обновлять.

Если такие программы размещены на веб-узлах, то их можно добавить в список исключений (ESL – Exception site list). Для локальных программ в корпоративной среде исключения задаются через набор правил развёртывания (DRS – Deployment Rule Set). Затруднения остаются в том случае, если несовместимое приложение встроено в прошивку сетевого устройства, для которого нет обновления. Поскольку доступ в этом случае выполняется не по DNS-записи, а по IP-адресу, добавить его в ESL не получится. В качестве временного решения можно держать параллельно старую версию платформы Java SE, хотя это и не рекомендуется Oracle.

Несколько версий Java в одной ОС.
Несколько версий Java в одной ОС.

Ещё одно изменение в новой версии Java – это наметившаяся тенденция к сближению редакций Micro Edition (ME) и Standart Edtion (SE). Java ME использует полную прикладную модель. Она позиционируется как платформа для «умных» устройств и программная основа «интернета вещей». Теперь в ней появилась масса новых возможностей, включая согласование языка и API-интерфейса с Java SE 8. Также была добавлена поддержка новых функций, современных сетевых протоколов, прикладных интерфейсов для управления питанием и взаимодействия с широким спектром периферийных устройств.

Ориентированность на мобильную среду и растущий рынок IoT подтверждается и сотрудничеством с ведущими компаниями в этом сегменте. «ARM и Oracle активно сотрудничают в определении и интеграции технологических компонентов, чтобы сделать Интернет вещей более жизнеспособным для бизнеса и разработчиков, — сообщил Иэн Дрю (Ian Drew), главный директор по маркетингу и исполнительный вице-президент по развитию бизнеса в компании ARM. – Выпуск Oracle JDK 8 демонстрирует результаты нашего партнерства по развитию стандартов и поддержке открытой экосистемы, давая разработчикам возможность создавать приложения для самых разных сфер применения, от интеллектуальных устройств для Интернета вещей до серверов».

Центр разработок Oracle в России (фото: itmozg.ru).
Центр разработок Oracle в России (фото: itmozg.ru).

Сегодня на Java работает более 3 млрд устройств и свыше 10 млрд. смарт-карт (Java Card). Платформа продолжает быстро развиваться, и существенную роль в этом играют российские программисты.

«Вклад российских разработчиков в Java весьма заметный, – комментирует глава представительства Oracle в России и странах СНГ Валерий Лановенко. – Мы считаем, что эти инвестиции корпорации подтверждены профессиональным мастерством команды, которая здесь работает, и полностью оправданы. Центр Разработки Oracle в Санкт-Петербурге и его широкая деятельность – без преувеличения, наша гордость».

Что будем искать? Например,ChatGPT

Мы в социальных сетях