Java
Java (джава, ява, жарг. жаба) — объектно-ориентированный язык программирования высокого уровня типа интерпретатора, разработанный фирмой Sun Microsystems (в последующем приобретенной компанией Oracle).
История создания
Язык разрабатывался с 1991 года и официально выпущен 23 мая 1995 года. Изначально новый язык программирования назывался Oak и был предназначен для бытовой электроники, но впоследствии был переименован в Java и стал использоваться для написания апплетов, приложений и серверного программного обеспечения.
Язык Java сходен с языком C++ и нашел применение для написания программных продуктов (приложений), ориентированных на работу в сетевых системах типа «клиент-сервер» и «файл-сервер» под управлением операционных систем (Windows, OS/2). Язык рассчитан на передачу по Интернет текстов программ, которые на всех компьютерах должны выполняться одинаковым образом. Основное достоинство, привлекшее к этому языку специалистов, заключается в предоставляемой им возможности разработки платформо-независимых программ. Считается, что своим успехом этот язык обязан фирме Netscape Communication, которая лицензировала его интерпретатор в свой браузер Web-страниц (Navigator 2.0). Общими характеристиками языка Java являются: простота, значительный объем библиотеки подпрограмм, возможность распространения на любой тип компьютеров, независимость от архитектуры компьютера, защищенность создаваемых программ, динамичность языка, обеспечивающая гибкое введение изменений в программы. Язык Java лицензировали фирмы IBM, Microsoft, Borland, Symantec, Macromedia.
В феврале 1997 года фирма JavaSoft выпустила новую версию усовершенствованного инструментального пакета разработки программ на языке Java — JDK 1.1. (Java Development Kit). Он облегчает работу по составлению программ, поддерживает средства работы с национальными кодировками и имеет улучшенный оконный интерфейс. Последующие версии языка Java — JavaOne`98 (март 1998), JavaOne`99 (май 1999), JavaOne`2000 (май 2000), JavaOne`2001 (июнь 2001), JavaOne`2002 (март 2002).
Программы на Java могут быть транслированы в байт-код, выполняемый на виртуальной джава-машине (JVM) — программе, обрабатывающей байтовый код и передающей инструкции оборудованию, как интерпретатор, но с тем отличием, что байтовый код в отличие от текста обрабатывается значительно быстрее. Достоинство подобного способа выполнения программ — в независимости байт-кода от ОС и оборудования, что позволяет выполнять Java приложения на любом устройстве, которое поддерживает виртуальную машину. Особенностью технологии Java является гибкая система безопасности. Операции, которые превышают установленные полномочия программы (попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают прерывание. Это позволяет пользователям загружать программы, написанные на Java, на их компьютеры (или другие устройства, например, мобильные телефоны) из неизвестных источников, не опасаясь заражения вирусами, пропажи ценной информации.
Java — интерпретируемый язык. Исходный код на Java компилируется не в исполнимый код, как в компилируемых языках, а в промежуточный байт-код, унифицированный для всех операционных систем и аппаратных платформ. Затем байт-код интерпретируется специальной средой — виртуальной машиной Java, которая для каждой среды и платформы реализуется отдельно. Благодаря этому и достигается переносимость кода — код, написанный в одной среде, будет без изменений выполняться в другой.
Классификация платформ Java
- Java SE — Java Standard Editon, основное издание для создания пользовательских приложений, в первую очередь — для настольных систем; содержит компиляторы, API, Java Runtime Environment.
- Java EE — Java Enterprise Editon — содержит набор спецификаций для создания программного обеспечения уровня предприятия; (в 2017 году проект Java EE был передан Eclipse Foundation, после был переименован в Jakarta EE. Модули Java EE удалены из Java SE, начиная с 11-й версии.
- Java ME — Java Micro Edition, для использования в устройствах, ограниченных по вычислительной мощности, в том числе мобильных телефонах, КПК, встроенных системах.
- Java Card — технология предоставляет безопасную среду для приложений, работающих на смарт-картах и других устройствах с очень ограниченным объемом памяти и возможностями обработки.
История языка программирования Java
Язык Java имеет интересную и непростую историю создания и развития с начала 1990-х годов. Первоначально Java язык вовсе не предусматривался в качестве языка программирования для прикладного программного обеспечения.
Язык разрабатывался для программирования бытовых устройств. Создание языка Java тесно связано с именем James Arthur Gosling (Джеймс Артур Гослинг), которого часто называют «Доктор Ява», канадского ученого, известного как основателя и ведущего дизайнера языка Java.
Команда для разработки нового языка
Платформа и язык Java начинались как внутренний проект в Sun Microsystems в декабре 1990 года, предоставляя альтернативу языкам программирования C и C++. Инженер Patrick Naughton (Патрик Нотон, американский разработчик программного обеспечения) организовал команду, в которую входили Джеймс Гослинг (James Gosling), Майк Шеридан (Mike Sheridaп), Крис Уарт (Chris Warth) и Эд Франк (Ed Frank).
Команда начала работу над Green Project предусматривающим разработку операционной системы для электронных бытовых устройств. В разработке и развитии нового языка приняли участие немало других специалистов: Билл Джой (Bill Joy), Артур ван Хофф (Arthur van Hoff), Джонатан Пэйн (Jonathan Payne), Франк Йеллин (Frank Yellin) и Тим Линдхольм (Тlm Lindholm) которые внесли основной вклад в развитие исходного прототипа Java.
Поиск базы для нового языка
Первоначально команда рассматривала возможность использования модифицированного языка C++, но отклонила его по причинам требовательности к объемам памяти и высокой сложности. Отсутствие в С++ сборки мусора означало, что программистам приходилось вручную управлять системной памятью, сложной и подверженной ошибкам задачей. Тем более что они разрабатывали встроенную систему с ограниченными ресурсами. Наконец, они хотели получить платформу, которую будет легко портировать на любые типы устройств. Но все же синтаксис Java во многом заимствован из C и C ++, а объектно-ориентированные функции смоделированы на основе языков С++, Smalltalk and Objective-C.
Язык программирования Oak
Разработкой нового языка вплотную занимался Джеймс Гослинг и изначально назвал его Оak (в переводе с английского Дуб). Рядом с офисом разработчика действительно рос дуб. Наверное Джеймс, работая в офисе, поглядывал в окно и видя крепкий дуб, излучающий здоровье и долголетие, решил назвать новый язык в честь зеленого дерева. К лету 1992 года команда смогла продемонстрировать части новой платформы, включая операционную систему Green OS, язык Oak, библиотеки и аппаратное обеспечение.
Их первая попытка, продемонстрированная 3 сентября 1992 года, была сосредоточена на создании устройства PDA (Personal Digital Assistant, карманный компьютер) под названием Star7, которое имело графический интерфейс и смарт-агента под названием «Duke» для помощи пользователю. Карманный компьютер Star7 был принципиально новым устройством, которое намного опередило своё время, но из-за высокой стоимости не смогло произвести переворот в мире технологии и постепенно было забыто. Возможно, в настоящее время именно оно вернулось к нам в виде умных андроид устройств.
Происхождение названия Java
1994 году язык Oak был переименован в виду того, что название «Oak» уже использовалось как торговая марка компании Oak Technology (американская организация, поставщик электронных компонентов). Oak был переименован в Java, в честь марки кофе которое получило название одноименного острова Ява. Поэтому на официальной эмблеме изображена чашка с горячим кофе. Существует и другая версия происхождения названия языка, связанная с шутливым намеком на кофе-машину как пример бытового устройства, для программирования которых изначально язык и создавался. Наконец Java 1.0 была окончательно выпущена в 1996 году.
Предпосылки Java
До появления языка Java программистам, приходилось выбирать между языками, которые обеспечивали только узкий спектр характеристик. Первые языки программирования BASIC, COBOL и FORTRAN были разработаны без учета принципов структурирования. Структурированный язык Pascal не был предназначен для написания разнообразных программ. Язык С++ частично решал эти проблемы. Но трудность применения С и С++ состоит в том, что написанные на них программы должны компилироваться для конкретной платформы.
Пытаясь найти решение этих проблем, Джеймс Гослинг и другие разработчики начали работу над переносимым, не зависящим от конкретной платформы языком. Исходный код, созданный на таком языке, должен был выполняться на разнотипных процессорах в различных операционных системах. И в итоге их усилия привели к созданию первого в мире кроссплатформенного языка под названием Java.
Концепции языка Java
- простота
- безопасность
- переносимость
- объектная ориентированность
- надежность
- многопоточность
- архитектурная нейтральность
- интерпретируемость
- высокая производительность
- распределённость
- динамичность
Java и С++
Многие особенности Jаvа унаследованы от языков С и С++. Вместе с тем языку Java присущи значительные практические и концептуальные отличия. Хотя С++ оказал влияние на характеристики Jаvа, но всё же язык программирования Java не является усовершенствованной версией С++. Разумеется, у него немало сходств с языком С++, и в исходном коде программы на Java программист С++ будет чувствовать себя почти как дома.
Но есть и коренные отличия двух языков: программа на C++ компилируется только для конкретной среды выполнения, что делает C++ зависимым от платформы языком. В Java исходный код сначала преобразуется в байт-код во время компиляции. Этот байт-код затем интерпретируется интерпретатором и средой выполнения для создания выходных данных, которые делают Java независимым от платформы языком. Язык Jаvа предназначен не для замены С++, а для решения других задач, для которых язык С++ не годится.
Java и C#
Платформа .NET представляет собой примерно то же самое, что и виртуальная машина Java (JVM) и библиотеки Java, а язык C# имеет явное сходство с языком Java. Вне всяких сомнений это лучшее, что создала компания Microsoft в области языков и сред программирования. Впервые с момента своего появления y Java появился реальный соперник.
Языки C# и Java появились в разное время. Язык Java был создан задолго до появления C#. Таким образом, если Java создавался, опираясь в большей степени на опыт языков Objective-C и C, С++, то для C# такой опорой уже являлись C++ и сам Java. И, несмотря на своё название, C# оказался ближе к Java, чем к C++.
С точки зрения разработчика языки Java и C# очень похожи. Оба языка являются строго типизированными, объектными. Оба языка опираются на сборку мусора. Оба языка сопровождаются богатыми коллекциями библиотек. Но есть в языках также свои особенности и различия. C# учёл многие недостатки Java, и исправил их в своей реализации. Но и Java не стоит на месте, развиваясь параллельно с C#.
Современный Java
И сегодня Java остается в лидерах языков программирования. Индекс TIOBE Programming Community — показатель популярности языков программирования, обновляемый ежемесячно. Рейтинги основаны на количестве квалифицированных инженеров по всему миру, курсов и сторонних поставщиков. Популярные поисковые системы также используются для расчета рейтинга. Если взять статистику с 2000 по 2020 годов видно, что язык программирования Java уверенно держится в лидерах, не опускаясь ниже 3-его места. У Java программистов рынок труда один из самых больших. Кроме того, высокая популярность языка означает, что в интернете по нему легко можно найти практически любую информацию.
В мире не может быть более распространенного компьютерного кода, чем на Java. Java везде — практически на каждом мобильном устройстве, сервере, ИТ-системе и сети. Язык Java используется для создания мобильных приложений под операционную систему Android. При этом программы компилируются в нестандартный байт-код. Для такой компиляции используется Android SDK, разработанный компанией Google.
В настоящее время язык и платформа Java активно развивается. 3 миллиарда устройств работают под управлением Java—дома, в автомобиле и офисе. 12 миллионов разработчиков Java по всему миру. Недавно было объявлено, что для Java будет использоваться шестимесячный цикл выпуска. Java сегодня успешна, потому что даже код, написанный 20 лет назад, совершенно точно работает.
Общий вывод получается таким: насчёт «самого популярного» языка можно спорить, но что Java «один из самых популярных» — безусловно.
- https://ru.wikipedia.org/wiki/Java
- https://en.wikipedia.org/wiki/Oak_(programming_language)
- https://www.oracle.com/ru/index.html
- https://www.educba.com/c-plus-plus-vs-java/
- Книга: Библиотека профессионала Java. Кей Хорстманн, Гари Корнелл, 9 издание
- Книга: Java 8 Полное руководство, Герберт Шилдт, 9 издание
- Книга: Философия Java, Брюс Эккель, 4-е полное издание