Некоторые языки программирования, например, Rust, Go и TypeScript, считаются крутыми. Другие, в том числе Cobol и Java, «скучны». Однако пусть Java, которому 23 мая этого года исполнилось тридцать лет, может, и не самый захватывающий язык, он остаётся одним из самых важных. 

Путь Java начался 23 мая 1995 года, когда его выпустила компания Sun Microsystems. За прошедшее время благодаря удачному видению разработчиков и адаптивности он превратился из нишевого проекта для потребительской электроники в мощный фундамент энтерпрайз-, облачной и веб-разработки.

Хоть Java исполнилось тридцать, его история гораздо дольше. Корнями этот язык уходит в 1991 год, когда инженеры Sun Джеймс Гослинг, Майк Шеридан и Патрик Ноутон приступили к созданию языка для интерактивного телевидения и встроенных устройств. Этот проект назвали Green Project. Его цель заключалась не столько в написании нового языка, сколько в создании того, что бы мы сегодня назвали контроллером Интернета вещей. Ещё один разработчик Java Тим Линдхольм, описал его как «своего рода гибрид между КПК и универсальным пультом дистанционного управления».

Устройство под названием Star7 было цифровым беспроводным КПК на основе процессора SPARC с пятидюймовым цветным ЖК-экраном. К сожалению, он оказался слишком мощным и дорогим для того времени, поэтому устройству не удалось найти свой рынок.

С языком же вышла другая история. Версия Java, изначально называвшаяся Oak, использовала синтаксис в стиле C++, но, по словам Гослинга, Oak/Java был подобен «C++ без ружей и ножей». Почему бы просто не использовать C++? Этот язык плохо подходил для создания приложений, которые, по словам Линдхольма, могли «легко перемещаться по Интернету; по крайней мере, их сложно было запускать на разных архитектурах. Кроме того, на C++ было достаточно трудно писать код менее опытным программистам, на привлечение которых мы надеялись».

Гослинг проектировал Java как язык с автоматическим управлением памятью (сборкой мусора), что снижало количество ошибок и уязвимостей безопасности, свойственных ручному управлению памятью в C++. Кроме того, он предложил философию Java «напиши один раз — запускай везде», реализация которой стала возможной благодаря Java Virtual Machine (JVM), сделавшей Java хорошо портируемым и платформонезавимимым языком, при том, что код на C++ необходимо компилировать отдельно для каждой платформы.

Конечно, все эти преимущества замечательны, но как может пригодиться язык, спроектированный для провалившегося проекта потребительской электроники? К счастью, Гослинг и его команда завершали разработку Java приблизительно ко времени публикации World Wide Web в 1993 году. Java оказался нужным языком в нужное время.

Важнейшим аспектом языка стала его платформонезависимость. В отличие от других языков, требовавших переписывания кода под разные операционные системы, программы на Java компилируются в байт-код, работающий на любом устройстве с JVM. Благодаря философии «напиши один раз — запускай везде» Java стал любимым языком для разработки веб-апплетов, а позже и для энтерпрайз-приложений.

Чтобы подчеркнуть полезность Java, в 1995 году Гослинг выпустил браузер под названием WebRunner. Этот прототип веб-браузера так и не добился коммерческого успеха, однако продемонстрировал, как браузер может отображать HTML-контент в сочетании с Java-апплетами. 

С этого момента ситуация начала активно развиваться. Сначала WebRunner превратился в HotJava, а потом домашний веб-сайт Java java.sun.com открыл его для публичного доступа. Sun не могла использовать название Oak из-за проблем с торговыми марками. После долгих обсуждений команда решила, что назовёт язык в честь любимого напитка — кофе.

Java быстро эволюционировал. Первым существенным изменением стал релиз Java Development Kit 1.1 в 1997 году. В этой версии появились JavaBeans, сильно упростившие разработчикам объектно-ориентированное программирование. Также в неё была добавлена Java Database Connectivity (JDBC). Этот стандартный для Java интерфейс программирования приложений (API) позволяет программам на Java работать с базами данных.

В году 1998 году Java подверглась изменениям: в неё была добавлена библиотека Swing, расширившая возможности Java в разработке графического интерфейса пользователя (GUI), появились плагины Java и фреймворк Java Collections. Наверно, самым заметным различием стало разделение Java на три ветви: J2SE (Standard Edition) для десктопных приложений общего назначения, J2EE (Enterprise Edition) для серверных приложений и J2ME (Micro Edition) для мобильных устройств и встроенных систем. Все три версии и сегодня живы и хорошо себя чувствуют.

В последующие годы в языке появилось множество усовершенствований, однако самым важным изменением, вероятно, стало то, что в 2006 году Sun сделала Java опенсорсным. Эталонная реализация Java — это Open Java Development Kit (OpenJDK), свободно распространяемая с открытым кодом по GNU General Public License (GPL) version 2 с исключением Classpath

Это исключение позволяет разработчикам компоновать системные библиотеки Java со своим кодом, вне зависимости от лицензии кода, и распространять полученные исполняемые файлы на любых условиях. Это исключение может в некоторых ситуациях немного усложнить применение Java. Об этом лучше всего расскажет Google, которая вела долгие юридические бои с нынешним владельцем Java, компанией Oracle, по поводу применения Java в Android. 

Есть и ещё один аспект важности Java для опенсорсного ПО, о котором часто забывают. Как сказал основатель компании Sonatype Брайан Фокс, файлы Java ARchive (JAR) упростили создание удобны модулей кода, а благодаря появлению Apache Maven стало возможным управление зависимостями Java.

Эти концепции сильно упростили создание опенсорсных проектов из кода. Брайан Фокс так вспоминает времена до наступления этого этапа: «Я чётко помню, как мне впервые удалось собрать опенсорсный проект. Чтобы что-то собрать могла потребоваться целая неделя». Можно считать, что пока Линус Торвальдс не создал Git, система пакетов кода JAR и Maven была самым важным улучшением в сфере сборки опенсорсных программ. 

Когда компания Oracle купила Sun, то она закрыла множество проектов Sun, однако продолжила поддержку Java. Сообщество разработчиков на Java по-прежнему могло выражать своё мнение посредством Java Community Process (JCP), но окончательное решение оставалось за Oracle. 

В течение трёх десятков лет Java эволюционировала вместе с меняющимся миром технологий. Язык, в начале своего пути управлявший динамическим веб-контентом, стал доминирующим в энтерпрайз-разработке ПО, мобильных приложениях, а позже и в разработке облачных нативных проектов и решений big data. Благодаря своей прочной экосистеме, включающей в себя такие фреймворки, как Spring BootJakarta EE и Hibernate, он стал незаменимым для организаций, стремящихся к надёжности, масштабируемости и безопасности.

В отличие от других старых языков наподобие Cobol и Fortran (по-прежнему используемых, но почти всегда лишь в легаси-проектах), Java постоянно развивалась, пытаясь удовлетворить новые потребности и сохраняя при этом обратную совместимость.

Несмотря на рост популярности таких более новых языков, как Kotlin и Scala, Java остаётся одним из самых широко применяемых в мире языков программирования. Согласно индексу популярности языков программирования ZDNET, Java вместе с Python и JavaScript — это три самых популярных языка. И не нужно быть гением, чтобы понять причины этого. Гибкость Java, её поддержка облачных нативных архитектур, способность справляться с потребностями ИИ и big data гарантируют, что этот язык продолжит формировать будущее разработки ПО.

Станет ли когда-нибудь Java ярким, хайповым языком? Вероятно, нет. Он немного медленный, управление памятью в нём может причинять боль, а его многословность и сложный синтаксис чертовски раздражают некоторых программистов. Тем не менее, Java ещё на десятки лет останется жизненно необходимым.

Комментарии (2)


  1. dyadyaSerezha
    02.06.2025 15:14

    Хехе, а я писал ещё на первой версии, причём не что-нибудь для утюга, а некий Corel Office, который задумывался как прямой конкурент MS Office. Идея абсолютно бредовая, потому что только офисная оболочка (с общими модулями) загружалась около полутора минут. Я сделал почтовый клиент, но конечно всё это было похерено, а над проектом работало около года много человек.


  1. Ydav359
    02.06.2025 15:14

    Вероятно, нет.

    Точно нет