Файл: История возникновения и развития языка программирования Си (С++) и Java (Возникновение и эволюция языка).pdf
Добавлен: 01.04.2023
Просмотров: 52
Скачиваний: 2
Язык проектировался исходя из расчета на современные методы трансляции, обеспечивающие проверку согласованности программы, насколько она эффективна и компактна в представлении. Основное средство борьбы со сложностью программ – это инкапсуляция и строгий контроль типов. В особенности это касаемо больших программ, которые создают многие люди. Пользователь может быть не одним из создателей такого рода программ, и при этом вообще не являться программистом. Так как никакую настоящую программу невозможно написать, не поддерживая библиотеки, которые создаются другими программистами [3].
был спроектирован для того, чтобы поддерживать тот принцип, что любая программа – это модель некоторых понятий, которые существуют в реальности, а класс – это конкретное представление понятия, которое взято из приложения. Таким образом классы пронизывают всю программу на , и применяются жесткие требования на гибкость в понятии класс, компактность объектов в классе и их эффективное использование. Если работа с классами является неудобной или слишком накладной, то классы просто не используют, и программы будут являться программами на «лучшем ». То приходим к выводу, что пользователь не сможет насладиться теми возможностями, ради которых был создан язык.
Развивается язык на базе языка , и, при этом есть исключение, сохранен, как подмножеств . Базовый язык спроектирован так, что есть очень тесная связь между операциями, типами, объектами и операторами, с которыми и работает машина, то есть символами, числами и адресами. За исключением операций , и , а также проверяемого блока, для того, чтобы выполнить операторы и выражения не требуется скрытая динамическая аппаратная или программная поддержка [5].
Изначально язык был задуман, как конкурент ассемблера, который способен вытеснять его из основных задач в системном программировании. В проекте принимались меры для того, чтобы успехи в данной области не были под угрозой. Между двумя языками различие состоит прежде всего в степени внимания, которое уделяется структурам и типам. Язык является более выразительным, но такая выразительность может быть лишь тогда, когда уделяют большое внимание типам. Когда известны типы объектов, то транслятором правильно распознаются такие выражения, иначе в них программисту нужно было бы записывать операции с подробностями.
Помимо этого, знание типов помогает транслятору в обнаружении таких ошибок, которые были бы выявлены лишь во время тестирования. Само по себе использование строгой типизации языка для того, чтобы контролировать параметры функции, защиту данных от несанкционированного доступа, определения новых операций и типов за собой не влечет дополнительные расходы памяти и увеличения времени по выполнению программы.
Вывод: является один из самых популярных языков программирования, его широко используют для того, чтобы разработать программное обеспечение. Его область применения включает в себя создание операционных систем, драйверов устройств, различных прикладных программ, приложений для встраиваемых систем, высокопроизводительных серверов, а также возможно создание развлекательных приложений. Существует много реализаций языка , являющиеся как бесплатные, так и коммерческие и для разных платформ [9].
Язык стал стремительным и мощным рывком при развитии программирования. и сейчас занимает господствующее положение среди языков программирования в мире. Очевидно, этот язык будет сохранять свое положение ещё не один год, при этом также развиваясь и совершенствуясь.
1. История возникновения и развития языка программирования Java
1.1 Возникновение и эволюция языка Java
Java является языком программирования, который был разработан компанией Sun Microsystems. Обычно приложения Java компилируются в специальный байт-код, таким образом они могут выполнять свою работу на любой из виртуальных Java-машин (JVM) независимо от того какова компьютерная архитектура. Датой официального выпуска является 23 мая 1995 года. На сегодняшний день технология Java – это средства для того, чтобы превратить статические Web-страницы в интерактивные динамические документы и для того, чтобы создать распределенные приложения, при этом не зависящие от платформы.
«Для группы была поставлена задача создать распределенную систему, которая могла бы быть, как современная программная технология и при этом продаваемая производителям бытовой электроники» – вспоминает Гослинг.
Гослингу, которому на данный момент 40 с небольшим лет, перешел из исследовательского отдела IBM в Sun в 1984 г. Его первой работой является технически интересный, но при этом не имеющий коммерческого успеха оконный интерфейс NeWS. Им также была написана GOSMACS – первая реализация текстового редактора EMACS на языке С [11].
Данная деятельность в области бытовой электроники (в последующем называемая проект «Green») показала Гослингу с его коллегами, насколько для потребителя являются важными такие показатели, как стоимость, соответствие стандартам, надежность и простота. Если для пользователей рабочих станций проявляется интерес в большой мощности, и они являются терпимы к высоким ценам, длительному обучению и наличию разного рода ошибок, то рядовые потребители хотят дешевых, относительно простых и надежных устройств.
Для успешной конкуренции на рынке бытовой электроники, компаниями процессоры должны быть рассмотрены как обычный товар, который в любое время возможно было бы заменить на более дешевый, а также обеспечить обратную совместимость, при этом соблюдая стандарты, которые устанавливаются на устройства при длительном пользовании типа телевизоров и тостеров.
Относительно произношения на русском языке, как и в некоторых других, были образованы две разные нормы — заимствованная англоязычная джава») и традиционно-национальная «ява», которая соответствует традиционному произношению названия острова Ява. Компания Sun придерживается англоязычного произношения во всех странах мира. Порой в обиходе используется жаргонное слово «Жаба» (к примеру, изображена жаба на календарях группы российских пользователей Java (Java Users Group).
Java называется не только сам язык, но и платформа на которой создаются и исполняются приложения, основываясь на данном языке.
Сначала назывался язык Oak («дуб») и был разработан Джеймсом Гослингом для того, чтобы программировались бытовые электронные устройства. После его переименовали в Java и стали использовать для того, чтобы написать клиентские приложения и серверное программное обеспечение. Его назвали в честь марки кофе Java, который является любимым некоторыми из программистов, поэтому на официальной эмблеме языка изображается чашка с дымящимся кофе. Имеет место быть, и другая версия того как происходит название Java, а именно, Java это сленговое обозначение кофе с аллюзией на кофе-машину, что является примером бытового устройства, для которых язык программирования изначально был создан [12].
Для того, чтобы разработка не была связана с конкретной платформой, Гослингом было принято решение начать с расширения компилятора . Но со временем, он понял, что один , каким бы образом его ни расширяли, им не получится удовлетворить все из потребностей. Поэтому с середины 1991 года была задумка языка Oak ( что впоследствии во время поиска торговой марки было названо, как Java). «То есть, язык является средством, а не самоцелью, как поясняет Гослинг. Мы не хотели зацикливаться на , а хотели разработать систему, позволяющую создавать большую и распределенную, при этом разнородную сеть из бытовых электронных устройств, которые способны между собой взаимодействовать».
К концу 1992 года, предпринимая, по мнению тогда еще инженера проекта Патрика Нотона, «огромные усилия на то, чтобы доработать Oak и другие компоненты», коллективом проекта «Green» было выпущено «*7» - устройство типа PDA, которое названо Гослингом, как «ручной пульт дистанционного управления».
«На протяжении полутора лет мы смогли сделать столько же, сколько многие большие коллективы в Sun делали три года, - отметил с гордостью Нотон. - Операционная система GreenOS, инструментарий, язык, пользовательский интерфейс, новая аппаратня платформа, три заказных микросхемы... и каждый из этапов связан с риском, так как нами были использованы абсолютно новые технологии».
До того, как прийти в команду Green Нотон был возглавляющим проект Sun, который основан на том, чтобы разработать пользовательскую среду Open Window.
Малогабаритное устройство *7 выгодно подчеркивает эффективность и компактность кода, который является ядром технологии. Данный продукт широко был продемонстрирован в Sun и при этом производил впечатление на таких важных персон, как Билл Джой и Скотт Макнили, но при этом его дальнейшая судьба продолжала быть неясной [1].
По мнению Гослинга браузер является компонентом, «создающим рынок» для серверов, инструментальных средств и сред разработки. При этом во всех этих средствах языку Java отводится ключевая роль. «До того, как появился Java страница WWW представляла из себя листок бумаги. Но после появления Java браузером была задана структура и резко расширены возможности провайдеров содержания».
По мнению Гослинга технология Java сможет заставить людей переосмыслению роли вычислений клиент-сервер. «В стандартной модели у вас имеются определенные базы данных, вы пишете пакеты клиентского ПО, которое взаимодействует с ними, и создаете при этом какой-либо интерфейс». Основываясь на этой модели довольно сложно создавать распределенные системы и при этом осуществляя их модернизацию, особенно при этом если у их частей имеется различное происхождение, указывается Гослингом.
Если у вас имеются такие инструментальные средства как Web и Java, то перед вами возникает исходно организованная система. «Если вами создается на языке Java клиентская часть приложения, то его запуском является просто переход на соответствующую страницу. Инсталляция тривиальная, то есть поместите просто необходимое ПО на Web-сервер. И не возникнет никаких проблем с переносом, так как имеется лишь одна версия приложения». По словам Гослинга, многие из компаний, уже организуют базы данных, в виде Web-страниц при использовании интерфейса Common Gateway Interface (CGI), то есть специфического стандарта для работы внешних программ на сервере HTTP.
Рассмотрим особенности языка, так главной из них является то, что программы на Java транслируются в байт-код, который выполняется виртуальной машиной Java (JVM) — программой, которая обрабатывает байтовый код и передает инструкции оборудованию, являясь интерпретатором [2].
Достоинством в подобном способе выполнения программ является его полная независимость байт-кода от того какова операционная система и оборудование, что позволяет выполнять Java-приложения на любом из устройств, для которого имеется соответствующая виртуальная машина.
Другая важная особенностью технологии Java – это гибкая система безопасности, благодаря которой то как исполняется программа полностью под контролем у виртуальной машины. Любые из операций, превышающие установленные полномочия программы вызывают немедленное прерывание.
Зачастую недостатком концепции виртуальной машины является то, что исполнение байт-кода у виртуальной машины снижает производительность программ и алгоритмов, которые реализуются на языке Java. За последнее время внесены были следующие усовершенствования, которые некоторым образом увеличили скорость выполнения программ на Java:
- Применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,
- Широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,
- Аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).
По данным сайта shootout.alioth.debian.org, для семи различного рода задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для , в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на . Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и большее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на [3].
Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, стали вдохновляющими для многих энтузиастов на то, чтобы расширять перечень языков, используемых, чтобы создавать программы, которые в дальнейшем могли быть исполнены на виртуальной машине. Данные идеи находят также выражение в спецификации общеязыковой инфраструктуры CLI, заложенная в основу платформы .NET компанией Microsoft.
Основными возможностями являются:
- Автоматическое управление памятью;
- Расширенные возможности обработки исключительных ситуаций;
- Богатый набор средств фильтрации ввода/вывода;
- Набор стандартных коллекций, таких как массив, список, стек и т. п.;
- Наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI);
- Наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;
- Встроенные в язык средства создания многопоточных приложений;
- Унифицированный доступ к базам данных:
- На уровне отдельных SQL-запросов — на основе JDBC, SQLJ;
- На уровне концепции объектов, обладающих способностью к хранению в базе данных — на основе Java Data Objects и Java Persistence API;
- Поддержка шаблонов (начиная с версии 1.5);
- Параллельное выполнение программ [2].