[Перевод] Краткая история Java

Команда Spring АйО подготовила перевод статьи, посвящённой истории Java — одного из самых популярных языков программирования. 

В статье вы найдёте не только краткую историю языка, но и его ключевые характеристики, которые сделали этот язык программирования таким востребованным.

1. Обзор

Java — один из самых популярных языков программирования в мире. Он был создан Джеймсом Гослингом и Патриком Ноттоном, сотрудниками компании Sun Microsystems, при поддержке Билла Джоя, сооснователя Sun Microsystems.

Компания Sun официально представила язык Java на конференции SunWorld 23 мая 1995 года. Затем, в 2009 году, компания Oracle купила компанию Sun, что объясняет, почему сейчас язык принадлежит Oracle.

В этой статье мы рассмотрим историю языка программирования Java.

2. Что такое Java

Java описывается как многоцелевой, строго типизированный, объектно-ориентированный язык программирования. По замыслу, Java обладает минимальным количеством зависимостей от конкретных реализаций.

Этот язык программирования позволяет создавать приложения на множестве устройств. Его применение очень широкое, включая разработку программного обеспечения для мобильных устройств, POS-терминалов, банкоматов, Интернета вещей (IoT), а также веб-страниц.

Несмотря на то, что Kotlin стал предпочтительным языком для разработки Android-приложений в 2021 году, Java по-прежнему остается основным языком для разработки приложений под Android. Это связано с тесной интеграцией Android с Java. В частности, части операционной системы, такие как пользовательский интерфейс и некоторые основные библиотеки, написаны на Java.

3. Краткая история

Давайте погрузимся в историю проекта Java и посмотрим, как он начался и развивался с течением времени.

3.1 Начало

Проект Java зародился в 1991 году в недрах компании Sun Microsystems, когда трое инженеров — Джеймс Гослинг, Майк Шеридан и Патрик Ноттон — стремились создать язык, работающий на небольших электронных устройствах.

Вскоре они запустили проект под названием Green Project для изучения влияния конвергенции между цифрово управляемыми бытовыми приборами и компьютерами.

Используя синтаксис, похожий на C++, они создали цифровой пульт дистанционного управления, оснащенный графическим и анимированным сенсорным экраном. Пульт, результат нескольких месяцев интенсивных исследований, обладал удивительной возможностью управления всем оборудованием в гостиной. Он был запрограммирован на новом языке, полностью независимом от процессора, на котором работал, что делало его уникальным.

В конечном итоге Джеймс Гослинг, один из участников Green Project, разработавший этот язык, назвал его Oak.

Проект получил развитие, когда к нему присоединились американские кабельные операторы. Oak был переименован в FirstPerson. Однако проект FirstPerson не имел коммерческого успеха, вероятно, из-за того, что опередил своё время в индустрии, где основным приоритетом была прибыльность.

3.2 Появление протокола HTTP и браузера Mosaic

В 1993 году появление протокола HTTP и браузера Mosaic стало ключевым событием для проекта Java. В этот период команда осознала, что интернет станет идеальным каналом для продвижения их продукта.

В 1995 году Джеймс Гослинг представил браузер под названием WebRunner, который был способен отображать HTML-контент, смешанный с апплетами Java. Этот момент стал отправной точкой для дальнейшего развития проекта. Вскоре WebRunner был переименован в HotJava, а сайт java.sun.com был официально открыт для публики.

Со временем технология получила название «Java» (что в американском сленге означает «кофе») в честь любимого напитка программистов. Частично производство этого напитка осуществляется на острове Ява, откуда и происходит название.

После этого компании Sun и Netscape объявили о своем намерении интегрировать новую технологию в свои браузеры, что окончательно запустило язык в массовое использование. Версии Java стали выпускаться последовательно: от версии 1 в 1996 году до версии 17 в 2021 году.

Скрытый текст

На данный момент, последняя версия JDK — 22, а последняя LTS версия — 21, выпущенная в сентябре 2023.

4. Характеристики

Благодаря своим отличным характеристикам, Java стала популярным и полезным языком программирования. Компания Sun охарактеризовала его как:

  • Компилируемый и интерпретируемый

  • Платформонезависимый и переносимый

  • Объектно-ориентированный

  • Надежный и безопасный

  • Распределенный

  • Знакомый, простой и компактный

  • Многопоточный и интерактивный

  • Высокопроизводительный

  • Динамичный и расширяемый

Источник: «Programming with Java» — E Balagurusamy.

Далее мы подробно рассмотрим каждую из этих характеристик.

4.1. Компилируемый и интерпретируемый

Java объединяет мощь компилируемых языков и гибкость интерпретируемых языков.

Компилятор (javac) компилирует исходный код в байт-код, затем Виртуальная Машина (JVM) выполняет этот байт-код, преобразуя его в код, понятный машине.

4.2. Платформонезависимый и переносимый

Двухступенчатый процесс компиляции лежит в основе самой значимой особенности Java: независимости от платформы, что обеспечивает переносимость.

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

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

4.3. Объектно-Ориентированный

Java поддерживает концепции объектно-ориентированного программирования, такие как инкапсуляция, абстракция и наследование.

Все инструкции и данные в программе на Java должны быть организованы внутри класса или объекта.

4.4. Надежный и Безопасный

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

Одна из самых важных — это система управления памятью вместе с автоматическим сборщиком мусора (Garbage Collector, GC). В отличие от языков, таких как C/C++, Java избегает использования явных указателей и не требует от программистов ручного управления выделенной памятью.

Вместо этого сборщик мусора берет на себя заботу о удалении неиспользуемых объектов для освобождения памяти.

Кроме того, Java является строго типизированным языком, что помогает уменьшить количество ошибок в приложении, а также предоставляет механизмы обработки исключительных ситуаций.

4.5. Распределенный

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

Этого можно достичь с помощью концепций RMI (Remote Method Invocation — удаленный вызов методов) и EJB (Enterprise JavaBeans).

4.6. Простой и Знакомый

Во-первых, Java прост благодаря своему стилю кодирования, который очень чистый и легкий для понимания. Кроме того, Java не использует сложные и трудные для освоения функции других языков, такие как явные указатели.

Наконец, Java знакомый, поскольку его синтаксис основан на существующих языках, таких как C++, и включает многие функции этих языков.

4.7. Многопоточный и Интерактивный

Многопоточность, известная также как многозадачность на основе потоков, — это характеристика, позволяющая выполнять несколько потоков одновременно.

Короче говоря, мы можем писать программы на Java, которые выполняют множество задач одновременно, определяя несколько потоков. Преимущество многопоточности заключается в том, что она не занимает отдельную память для каждого потока — все потоки используют общую область памяти.

4.8. Высокопроизводительный

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

4.9. Динамический и Расширяемый

Эта функция предоставляет возможность динамически подключать новые библиотеки классов, методы и объекты. Java высоко динамична, так как может адаптироваться к изменяющейся среде.

5. Важность JRE

Чтобы программа могла работать, ей необходимо окружение, которое позволяет ей функционировать — обычно это операционная система, такая как Linux, Unix, Microsoft Windows или macOS. В отсутствие других поддерживающих окружений программы ограничены возможностями операционной системы и её ресурсами.

Среда Выполнения Java (JRE) действует как переводчик и посредник между программой и операционной системой. Она работает поверх операционной системы, предоставляя дополнительные ресурсы, специфичные для Java.

6. Заключение

Благодаря своим особенностям язык Java получает значительную часть возможностей других существующих языков, одновременно устраняя некоторые из их основных недостатков.

Таким образом, Java является языком, общепризнанно считающимся относительно современным, с хорошо установленным потенциалом.

346a1a23911d387cf0993eb019cf90e7.png

Присоединяйтесь к русскоязычному сообществу разработчиков на Spring Boot в телеграм — Spring АйО, чтобы быть в курсе последних новостей из мира разработки на Spring Boot и всего, что с ним связано.

Ждем всех,  присоединяйтесь!

© Habrahabr.ru