Файл: История возникновения и развития языка программирования Си (С++) и Java (ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 31.03.2023

Просмотров: 119

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

С использованием C++ написано множество программного обеспечения. И, конечно, его необходимо поддерживать. С учётом того, что C++ стал намного удобнее в работе с выходом новых стандартов, идея писать модули/дополнения на современном C++ имеет место быть и не выглядит безумной. В дальнейшем такой код будет куда проще поддерживать. В то же время — это всё тот же производительный C++, с обширнейшим набором возможностей. А дополненная стандартная библиотека позволит использовать уже готовые решения без необходимости изобретения собственных решений.

На этом фронте дела идут не слишком гладко: С++ не слишком популярный язык среди начинающих программистов и существенно проигрывает таким языкам, как C# или Java. Тут можно выделить несколько причин. [23]

1. Высокий порог вхождения.

Наверное, нет такого программиста, который бы не слышал о сложности С++. Безусловно, язык обширен, нюансов — несчётное множество. Производительность и глубинный контроль происходящих процессов (особенно если несколько спуститься с C++ к чистому C). Тут опять же следует упомянуть про стандарт C++11, который более приветлив к новичкам, предлагая удобный синтаксис, различного рода контейнеры, алгоритмы и прочие удобные вещи, предназначенные облегчить жизнь и написание кода.

2. Слабое продвижение.

Ни для кого не секрет, как продвигаются такие языки как C# или Java корпорациями-владельцами: Microsoft и Oracle, со стороны Microsoft продвижения весьма заметно. Большинство технологий Microsoft затачиваются именно под C#. Хакатоны, проводимые Microsoft, опять же проходят с использованием C#. [2, 4]

Для C++ такой поддержки нет. Да, для него выпускаются различные инструменты, позволяющие облегчить работу и процесс создания приложений. Тут стоит вспомнить тот же Qt, недавно вышедший ReSharper C++ от JetBrains. В Visual Studio 2015 ввели поддержку некоторых нововведений из последних стандартов, плюс некоторые дополнительные функции — работать стало удобнее. Но с масштабом вышеупомянутых продвижений это всё же в сравнение не идёт. [23]

3. Специализация.

Несмотря на то, что C++ — язык, дающий разработчику, как говорится, все карты в руки, область его применения не всеобъемлюща и занимает определённую нишу. Конкуренты есть, это тоже оказывает свое влияние. Взять, например, мобильную разработку. Основные платформы заняты теми или иными языками: Windows Phone — C#, Android — Java, iOS — Objective-C. И это вовсе не означает, что под эти платформы нет возможности писать на C++, вопрос лишь в том, насколько это будет удобно и будет ли также эффективно. Для веба, разработка под который с каждым годом становится популярнее и популярнее, C++ тоже не очень подходит. Возможность работы с сокетами есть, библиотеки, наподобие Wt, есть. С учётом того, что мобильная и веб-разработка стали очень популярны и только набирают обороты, понятен выбор начинающих в пользу других языков.


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

Как видно из рисунка 2, по сравнению с прошлым годом C++ немного сбавил позиции, но на май 2020 года всё-таки находится в лидерах, на четвертом месте, а вот язык С, наоборот, улучшил свои позиции, и теперь снова возглавляет рейтинг. [22, 23]

Рисунок 2 — Рейтинг языков программирования от TIOBE [22]

С++ продолжает активно использоваться и занимает свою определённую нишу. Выходящие стандарты добавляют новшеств в язык, делая его удобнее и проще в обращении. Программное обеспечение, написанное на этом языке, также никуда не делось и требует поддержки. В определённых областях C++ как нельзя лучше подходит для написания программного обеспечения, а это, в совокупности с вышеописанным, означает одно — C++ актуален, развивается и сдавать позиции не намерен. [13]

В рамках данной главы были рассмотрены вопросы, связанные с историей и развитием языков программирования C и C++.

ГЛАВА 3. ИСТОРИЯ ВОЗНИКНОВЕНИЯ И РАЗВИТИЯ ЯЗЫКА JAVA

3.1 История появления языка Java

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

Java — это объектно-ориентированный язык программирования, разработанный Джеймсом Гослингом и его коллегами из Sun Microsystems в начале 1990-х годов. В отличие от обычных языков, которые обычно разрабатываются либо для компиляции на собственный (машинный) код, либо для интерпретации исходного кода во время выполнения, Java предназначен для компиляции в байт-код, который затем выполняется (как правило, с использованием компиляции JIT) с помощью Виртуальной машины Java. [10, 12]

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


Язык Java является производным языка С, поэтому его синтаксические правила очень похожи на C. Например, кодовые блоки модулируются в методы и ограничены фигурными скобками {и}, а переменные объявляются до их использования. [13]

Структурно язык Java начинается с пакетов. Пакет - это механизм пространства имен языка Java. В пакетах есть классы, а внутри классов - методы, переменные, константы и т. д.

Программы, созданные на Java, являются кроссплатформенными. Исходный код компилируется в то, что в Java называется байт-код, который можно запустить в любом месте, на сервере или на клиенте, который имеет виртуальную машину Java (JVM). JVM интерпретирует байт-код в код, который будет работать на компьютерном оборудовании. Напротив, большинство языков программирования, таких как COBOL, C ++, Visual Basic или Smalltalk, компилируют код в двоичный файл. Бинарные файлы зависят от платформы, поэтому программа, написанная для компьютера под управлением Windows на базе Intel, не может быть запущенной на Mac или Linux. JVM включает в себя необязательный (JIT) компилятор, который динамически компилирует байт-код в исполняемый код. Во многих случаях динамическая компиляция JIT быстрее, чем интерпретация виртуальной машины. [2]

Код Java надежный. В отличие от программ, написанных на C ++ и некоторых других языках, объекты Java не содержат ссылок на внешние данные или другие известные объекты. Это гарантирует, что инструкция не может содержать адрес хранения данных в другом приложении или в самой операционной системе, из-за чего программа и, возможно, сама операционная система могут завершиться или ситуация приведёт к сбою. JVM выполняет ряд проверок на каждом объекте для обеспечения целостности программы. [9, 11]

Java объектно-ориентированный язык. Объект может воспользоваться тем, что он является частью класса объектов и наследует код, который является общим для класса. Объекты считаются «сущностями», к которым может относиться пользователь, а не к традиционным процедурным «действиям». Метод можно рассматривать как один из возможностей или вариантов поведения объекта. Объектно-ориентированность, относительно распространена в современном мире программирования, но в 1996 году только несколько языков эффективно реализовывали объектно-ориентированные концепции и шаблоны проектирования. Способность развиваться с использованием языка, созданного с нуля с объектной ориентацией, в качестве его явной цели сделала этот язык интересной платформой для программирования.

Апплет Java дают большую гибкость. В дополнение к выполнению на клиенте, а не на сервере, Java-апплет имеет другие характеристики, предназначенные для быстрого запуска. [12, 13]


Разработчики могут быстро изучить Java. С синтаксисом, аналогичным C++, Java относительно легко изучать, особенно для тех, у кого есть база на C.

Распространенным заблуждением является то, что существует связь между Java и JavaScript. Два языка имеют сходство в синтаксисе, но в реальности случае это две очень разные конструкции.

Существуют три ключевые платформы, на которых программисты разрабатывают Java-приложения:

1. Java SE.

Простые, автономные приложения разрабатываются с использованием Java Standard Edition. Ранее известный как J2SE, Java SE предоставляет все API, необходимые для разработки традиционных десктопных приложений.

2. Java EE.

Java Enterprise Edition, ранее известная как J2EE, обеспечивает возможность создания серверных компонентов, которые могут проводить весь веб цикл запроса и ответа. Такая компоновка позволяет создавать Java-программы, которые могут взаимодействовать с интернет-клиентами, включая веб-браузеры, клиенты на базе CORBA и даже веб-сервисы на основе REST и SOAP. [2]

3. Java ME.

Java также предоставляет легкую платформу для мобильной разработки, известную как Java Micro Edition, ранее известная как J2ME. Java ME зарекомендовала себя очень популярной платформой для разработки встраиваемых устройств, она изо всех сил пыталась добиться успеха на арене разработки смартфонов. С точки зрения развития смартфонов, Android стал платформой мобильной разработки номер один в мире Java [26].

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

Сам язык заимствует большой синтаксис из C и C++, но имеет более простую объектную модель и меньше объектов низкого уровня. Java никак не относится к JavaScript, хотя они имеют похожие имена и используют синтаксис типа C. [9]

В начале 90-х годов распространение сетевых вычислений на повседневную жизнь было радикальным. Java был запущен в качестве проекта под названием «Дуб» Джеймса Гослинга в июне 1991 года. Гослинг должен был реализовать виртуальную машину и язык, который имел знакомое C-образное обозначение, но с большей однородностью и простотой, чем C/C++. В 1991 году небольшая группа инженеров Sun, названная «Зеленая команда», считала, что следующей волной в области вычислений является объединение цифровых потребительских устройств и компьютеров. Под руководством Джеймса Гослинга команда работала круглосуточно и создавала язык программирования, который бы революционизировал наш мир – Java. [22]


Зеленая команда продемонстрировала свой новый язык с помощью интерактивного портативного домашнего развлекательного контроллера, который первоначально был нацелен на индустрию цифрового кабельного телевидения. К сожалению, концепция была слишком продвинутой для команды в то время. Но это было просто для Интернета, который только начинал взлетать. В 1995 году команда объявила, что интернет-браузер Netscape Navigator будет включать технологию Java. [8]

Первой публичной реализацией стала Java 1.0 в 1995 году. Она вышла под лозунгом «Write Once, Run Anywhere» (пишется один раз, работает везде) с бесплатной загрузкой на популярных платформах. Он был достаточно надежным, и его безопасность была настраиваемой, позволяя ограничить доступ к сети и файлам. Основные веб-браузеры вскоре включили его в свои стандартные конфигурации в безопасной конфигурации «апплетов». Новые версии для больших и малых платформ (J2EE и J2ME) вскоре были разработаны с появлением «Java 2». Sun не объявила о каких-либо планах для «Java 3». [9, 12, 13]

Многие разработчики вскоре поняли, что архитектурный нейтральный язык, такой как Java, лучше всего подходит для написания программ для Интернета. Таким образом, внимание переключилось на Java с потребительской электроники на World Wide Web (Интернет).

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

В 1997 году Sun обратилась к органу стандартов ISO/IEC JTC1, а затем к Ecma International, чтобы формализовать Java, но вскоре отказалась от этого процесса. Java остается проприетарным стандартом де-факто, который контролируется через Java Community Process. Sun делает большую часть своих реализаций на Java доступными бесплатно, при этом доходы генерируются специализированными продуктами, такими как Java Enterprise System. Sun отличает его Software Development Kit (SDK) и Runtime Environment (JRE), который является подмножеством SDK, причем основное отличие заключается в том, что в JRE отсутствует компилятор.

3.2 Этапы развития языка Java

В 1998 году выходит J2SE 1.2 (Java2 Standard Edition) основными изменениями, которой являлись:

  • интегрированный графический API Swing;
  • ключевое слово strictfp;
  • JIT-компилятор в Sun JVM для Java-плагина. [8]

В 2000 году выходит J2SE 1.3 основными изменениями, которой являлись:

  • включен Hotspot JVM;
  • RMI изменен для поддержки совместимости с CORBA;
  • Java Naming and Directory Interface (JNDI);
  • Java Debugger Architecture (JPDA);
  • Java Sound.