Файл: История возникновения и развития языка программирования С++ и java.pdf
Добавлен: 01.04.2023
Просмотров: 96
Скачиваний: 2
СОДЕРЖАНИЕ
1. Особенности возникновения и развития языка программирования Java.
1.1 История возникновения языка Java
1.2 Эволюция языка программирования Java
1.3 Современное состояние языка программирования Java
2. Особенности происхождения и развития языка программирования C++
2.1 История зарождения языка программирования C++
2.2 Особенности развития языка программирования C++
Как правило, интерпретируемая программа выполняется медленнее, чем скомпилированная в машинный код. Но для кода Java отличия в быстродействии не очень существенны. Ведь байт-код оптимизирован, и поэтому программа выполняется под управлением виртуальной машины значительно быстрее, чем следовало ожидать. [11, c.31]
Хотя язык Java был задуман в качестве интерпретируемого языка, ничто не препятствует ему выполнять компиляцию кода виртуальной машины в машинозависимый код “на лету” для повышения производительности. Поэтому вскоре после выпуска Java появилась технология HotSpot. Эта технология предоставляет оперативный компилятор (Justin-Time — JIT) кода виртуальной машины. Когда JIT- компилятор является составной частью машины JVM, избранные фрагменты кода виртуальной машины один за другим компилируются в исполняемый код в реальном времени, по соответствующим запросам. Важно понимать, что одновременная компиляция всей программы Java в исполняемый код нецелесообразна, посколькуJava выполняет различные проверки, которые могут быть осуществлены только во время выполнения. Вместо этого во время работы JIT-компилятор компилирует код по мере необходимости. Более того, компилируются не все фрагменты кода виртуальной машины, а только те, которым компиляция принесет выгоду. Остальной код просто интерпретируется. Однако подход JIT-компиляции все же обеспечивает значительное повышение производительности. Даже в случае применения к коду виртуальной машины динамической компиляции, характеристики переносимости и безопасности сохраняются, поскольку машина JVM по-прежнему отвечает за целостность среды исполнения.
Рассмотрение истории создания и развития языка Java было бы неполным без описания специфичной терминологии Java. Основные факторы, обусловившие изобретение Java, — необходимость обеспечения переносимости и безопасности, однако другие факторы также сыграли свою роль в формировании окончательной версии языка. Группа разработки Java обобщила основные понятия в следующем перечне терминов:
простота - язык java был задуман в качестве простого в изучении и эффективного в использовании профессиональными программистами языка.;
объектная ориентированность - объектная модель Java проста и легко расширяема. В то же время элементарные типы, такие как целые числа, сохраняются в виде высокопроизводительных компонентов, не являющихся объектами.
При программировании на Java у вас нет выбора: язык вынуждает вас работать только с объектами , как и должно быть в современном объектно-ориентированном мире компьютерных программ. [2, с.30]
устойчивость - многоплатформенная среда веб предъявляет к программам повышенные требования, поскольку они должны надежно выполняться в разнообразных системах. Так что одним из главных приоритетов при проектировании Java была способность создавать устойчивые программы;
многопоточность - язык Java был разработан в ответ на потребность создания интерактивных сетевых программ. Для достижения этой цели Java поддерживает написание многопоточных программ, которые могут одновременно выполнять много действий.;
архитектурная нейтральность - одной из главных проблем, стоявших перед программистами во время создания языка Java, было отсутствие гарантий того, что код, созданный сегодня, будет успешно выполняться завтра, даже на том же самом компьютере;
интерпретируемость и высокая производительность - как уже говорилось, выполняя компиляцию программ в промежуточное представление, называемое кодом виртуальной машины, Java позволяет создавать многоплатформенные программы;
распределенный характер - язык Java предназначен для распределенной среды Интернет, поскольку он поддерживает протоколы семейства TCP/IP;
динамический характер - программы Java несут много информации во время выполнения для проверки правильности обращения к объектам во время выполнения. Это свойство позволяет динамически безопасно связать код.
Первоначальная версия Java не содержала никаких особо революционных решений, но она не ознаменовала собой завершение эры быстрого совершенствования этого языка.
В отличие от большинства других систем программирования, совершенствование которых происходило небольшими, последовательными шагами, язык Java продолжает стремительно развиваться. Уже вскоре после выпуска версии Java 1.0 разработчики создали версию Java 1.1. Добавленные в эту версию функциональные возможности значительно превосходили те, которые можно было ожидать, судя по изменению младшего номера версии. Разработчики добавили много новых библиотечных элементов, переопределили способ обработки событий и изменили конфигурацию многих свойств библиотеки версии 1.0. Кроме того, они отказались от нескольких свойств (признанных устаревшими), которые первоначально были определены в Java 1.0. Таким образом, в версии Java 1.1 были как добавлены новые атрибуты, так и удалены некоторые, определенные в первоначальной спецификации.
Следующей базовой версией Java стала версия Java 2, где “2” означает “второе поколение”. Создание Java 2 явилось знаменательным событием, означавшим начало “современной эры” Java. Первой версии Java 2 был присвоен номер 1.2. Это может казаться несколько странным. Дело в том, что вначале номер относился к внутреннему номеру версии библиотек Java, но затем он был распространен на всю версию в целом. С появлением версии Java 2 компания Sun начала выпускать программное обеспечение Java в виде пакета J2SE (Java 2 Platform Standard Edition — Стандартная версия платформы Java 2), и теперь номера версий применяются к этому продукту.
В Java 2 была добавлена поддержка ряда новых средств, таких как Swing и Collections Framework. Кроме того, были усовершенствованы виртуальная машина Java и различные средства программирования. Из Java 2 был исключен также ряд свойств. Наибольшие изменения претерпел класс потока Thread, в котором методы suspend(), resume() и stop() были представлены как устаревшие.
Версия J2SE 1.3 была первой серьезной модернизацией первоначальной версии Java J2SE. В основном, модернизация заключалась в расширении существующих функциональных возможностей и “уплотнении” среды разработки. В общем случае программы, написанные для версий 1.2 и 1.3, совместимы по исходному коду. Хотя версия 1.3 содержала меньший набор изменений, чем три предшествующие базовые версии, это не делало ее менее важной.
Версия J2SE 1.4 продолжила совершенствование языка Java. Эта версия содержала несколько важных модернизаций, усовершенствований и добавлений. 4 8 Часть I. Язык Java Например, в нее было добавлено новое ключевое слово assert , цепочки исключений и подсистема ввода-вывода на основе каналов. Изменения были внесены и в инфраструктуру Collections Framework, и сетевые классы. Эта версия содержала также множество небольших изменений. Несмотря на значительное количество новых функциональных возможностей, версия 1.4 сохранила почти стопроцентную совместимость по исходному коду с предшествующими версиями.
В следующей версии Java, именуемой J2SE 5, был внесен ряд революционных изменений. В отличие от большинства предшествующих модернизаций Java, которые предоставляли важные, но постепенные усовершенствования, J2SE 5 коренным образом расширяет область применения, возможности и диапазон языка. Чтобы оценить объем изменений, внесенных в язык Java в версии J2SE 5, ознакомьтесь с перечнем основных новых функциональных возможностей:
обобщения;
аннотации;
автоупаковка и автораспаковка;
перечисления;
усовершенствованный, поддерживающий стиль for - each , цикл for;
список аргументов переменной длины (varargs);
статический импорт;
форматированный ввод-вывод;
утилиты параллельной обработки.
В этом перечне не указаны незначительные изменения или постепенные усовершенствования. Каждый пункт перечня представлял значительное добавление в языке Java. Одни из них, такие как обобщения, усовершенствованный цикл for и список аргументов переменной длины, представляли новые синтаксические элементы. Другие, такие как автоупаковка и автораспаковка, изменяли семантику языка. Аннотации внесли в программирование совершенно новое измерение. В любом случае влияние всех этих добавлений вышло за рамки их прямого эффекта. Они полностью изменили сам характер языка Java.
Важность новых функциональных возможностей нашла отражение в примененном номере версии — “5”. Если следовать привычной логике, следующим номером версии Java должен был быть 1.5. Однако новые свойства столь значительны, что переход от версии 1.4 к версии 1.5 не отражал бы масштаб внесенных изменений. Поэтому, чтобы подчеркнуть значимость этого события, в компании Sun решили присвоить новой версии номер 5. Поэтому версия продукта была названа J2SE 5, а комплект разработчика — JDK 5. Тем не менее для сохранения единообразия в компании Sun решили использовать номер 1.5 в качестве внутреннего номера версии, называемого также номером версии разработки. Цифру 5 в обозначении версии называют номером версии продукта.
Следующая версия Java получила название SE 6. С выходом этой версии компания Sun решила в очередной раз изменить название платформы Java. В названии была опущена цифра 2. Таким образом, теперь платформа называется Java SE, а официальное название продукта —Java Platform, Standard Edition 6 (Платформа Java, стандартная версия 6). Комплект разработчика Java был назван JDK 6. Как и в обозначении версии J2SE 5, цифра 6 в названии Java SE 6 означает номер версии продукта. Внутренним номером разработки этой версии является 1.6.
Версия Java SE 6 была построена на основе версии J2SE 5 с рядом дальнейших усовершенствований. Она не содержала дополнений к числу основных функций языка Java, но расширяла библиотеки API, добавляя несколько новых пакетов и предоставляя рад усовершенствований времени выполнения. Было сделано еще несколько модификаций и внесено несколько дополнений. В целом версия Java SE 6 призвана закрепить достижения, полученные в J2SE 5.
1.3 Современное состояние языка программирования Java
Мир стоит на пороге четвёртой промышленной революции. Индустрия 4.0. ознаменуется массовым внедрением искусственного интеллекта в нашу жизнь. Человеческий труд уступит место машинному: по прогнозам в ближайшие 20 лет более 40 % рабочих мест будет автоматизировано. Но появятся и новые специальности, связанные с обслуживанием работы машин. Наступает эра IT, где владение языками программирования — гарантия стабильности. Какой язык выбрать? Эксперты уверены: Java будет востребован ещё не одно десятилетие.
Семь перспективных направлений, в которых без Java не обойтись:
1. Android-приложения
Хотите писать под Android? Учите Java.
2007 год: компания Google утверждает Java в качестве основного языка программирования для мобильных устройств на базе Android. [2, c.27]
2. Финансовые услуги
Мировые инвестиционные банки используют Java для обработки данных, написания серверных приложений, создания фронтэнда и бэкенда.
Так же поступают трейдеры. Например, на этом языке написано популярное приложение «Murex».
3. Веб-приложения
Java выбирают и коммерческие, и государственные структуры. Приложения для сфер здравоохранения, образования и страхования написаны на этом языке.
4. Программные средства
Такие приложения, как Eclipse, IntelliJ Idea, Netbeans IDE воплощены в жизнь благодаря Java.
5. Встраиваемые системы
Эта сфера — «родина» Java. Язык разрабатывался для встраиваемых систем под лозунгом: «пиши один раз, запускай где угодно». Люди стремятся упрощать жизнь, и Java делает это возможным. Сфера применения широка: от мобильных телефонов и бытовой техники до систем управления предприятиями. Директор по маркетингу компании Microtec уверен: Java только набирает обороты на рынке встраиваемых систем и вскоре получит широкое распространение.
6. Большие данные
Пока Java не доминирует в этой области, но у него есть все шансы вырваться вперёд. Это случится, если Hadoop или ElasticSearch расширятся.
7. Наука
В научных приложениях Java используется по умолчанию. Одно из направлений работы — обработка естественных языков: устной и письменной речи. Помните притчу о Вавилонской башне и возникновении разных языков, разобщивших народы? Программисты решили исправить ситуацию и создали синхронный переводчик.
Дальше — больше: идут работы над нейроинтерфейсами для «управления мыслями» и передачи ощущений на расстояние. Это возможно благодаря дополненной реальности. Чтобы попасть в неё, достаточно смартфона и специальных очков. Пока такое общение напоминает компьютерную игру, внутри которой вы находитесь. Но это только начало.
Для достижения целей потребуются разные языки программирования: кроме Java, эксперты делают ставку на R, Erlang, Go и Swift. Вероятно, появятся и новые языки, но они ещё долго будут играть вспомогательную роль. История Java началась ещё в 1990 году и всё это время язык совершенствовался. Сегодня Java — самый востребованный язык программирования в мире.