Файл: История возникновения и развития языка программирования Си (С++) и Java (История возникновения языка программирования Java).pdf
Добавлен: 01.04.2023
Просмотров: 65
Скачиваний: 1
«Группе было поручено создать распределенную систему, которая могла бы продаваться как современная технология программного обеспечения производителям бытовой электроники. Джон Родли создал Java-апплеты [28].
Гослинг в свои 40 лет пришел в Sun в 1984 году из исследовательского отдела IBM. Его первая задача, проект, представляет интерес с технической точки зрения, но не является коммерчески успешным оконным интерфейсом NeWS. Он также написал GOSMACS, первую реализацию текстового редактора EMACS на C [26].
Благодаря деятельности в области бытовой электроники (позже она будет называться «зеленым» проектом), Гослинг и его коллеги смогли увидеть, какие ценностные показатели имеют для потребителя - надежность, стоимость, соответствие стандартам и простота. Если пользователи рабочих станций заинтересованы в высокой мощности и достаточно терпимы к высоким ценам, необходимости длительного обучения и наличию различных ошибок. То обычные потребители нуждаются в дешевых, простых в использовании и надежных устройствах.
Чтобы иметь возможность успешно конкурировать на рынке бытовой электроники, фирмы должны воспринимать процессоры как обычный товар, который в любой момент может быть заменен другим, более дешевым, и предоставлять возможность обеспечить обратную совместимость и соответствие стандартам, которые устанавливается на долговременные устройства, будь то тостер или телевизор [10].
Принимая во внимание произношение на русском языке, мы видим, что были сформированы две разные нормы этого языка - заимствованная англоязычная «Джава» и традиционная национальная «Ява», что соответствует принятому произношению названия острова Ява. Sun придерживается первого варианта - английского произношения везде. Иногда в повседневной жизни также используется сленговое слово «жаба» (например, изображение жабы есть в календаре группы русских пользователей Java (JavaUsersGroup) [19].
Java - это не только название самого языка, но и платформа для создания и выполнения приложений на этом языке.
Первоначально язык назывался Oak («дуб») и разрабатывался, как отмечалось выше, Джеймсом Гослингом для программирования бытовых электронных устройств. Затем он был переименован в Java и использовался для написания клиентских приложений и серверного ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ. честь марки кофе Java, которая была так любима некоторыми программистами, поэтому на официальном логотипе языка изображена чашка с дымящимся кофе. Конечно, существует и другая версия происхождения названия Java, а именно Java - сленг обозначение кофе (названного в честь одноименного острова, который производит популярный кофе) с указанием на кофемашину, в качестве примера бытовой техники, на программирование того, что изначально было создано языком [18].
Гослинг не хотел связывать разработку с конкретной платформой, поэтому он начал с расширения компилятора C ++. Со временем стало ясно, что независимо от того, как вы расширяете C ++, он никогда не сможет удовлетворить все существующие потребности в одиночку. Результатом этого понимания стало создание языка Oak (позже, при поиске товарного знака, его имя было изменено на Java). «В конце концов, язык - это средство, а не самоцель», - объясняет Гослинг. - Мы не собирались зацикливаться на C ++, но хотели разработать систему, которая позволила бы вам создать большую распределенную гетерогенную сеть бытовых электронных устройств, которые могут взаимодействовать друг с другом. Джон Родли Создание Java-апплетов [14].
В конце 1992 года, по словам тогдашнего инженера проекта Патрика Нотона, «огромные усилия по переработке дуба и других компонентов», команда проекта «Зеленый» выпустила «*7» - PDA-тип устройство под названием Гослинг "ручное дистанционное управление".
«За полтора года мы сделали столько же, сколько другие крупные команды в Sun сделали за три года», - с гордостью отмечает Нотон. - Операционная система GreenOS, язык, инструменты, пользовательский интерфейс, новая аппаратная платформа, три пользовательских чипа ... и каждый этап был связан с риском, потому что мы использовали совершенно новые технологии » [20].
Прежде чем присоединиться к команде Green, 30-летний Нотон руководил проектом Sun по разработке пользовательской среды Open Window.
Небольшой размер устройства * 7 показал в выгодном свете компактность и эффективность кода, который был основой технологии. Этот продукт был широко продемонстрирован на Солнце, и он смог произвести впечатление на таких важных людей, как Скотт Макнили и Билл Радость, но то, что случилось с ним позже, остается неизвестным. [8]
Гослинг полагал, что браузер - это компонент, который «создает рынок» для всех инструментов, серверов и сред разработки. И именно язык Java играет центральную, доминирующую роль во всех этих инструментах. До Java страница WWW была фактически листом бумаги. С появлением Java браузер устанавливает структуру и значительно расширяет возможности поставщиков контента.
Гослинг полагал, что технология Java даст людям возможность переосмыслить роль клиент-серверных вычислений. В стандартной модели у вас есть конкретные базы данных, вы пишете пакеты клиентского программного обеспечения, которые могут взаимодействовать с ними, и создаете какой-то интерфейс ». В рамках этой модели сложно создавать распределенные системы и осуществлять их модернизацию, в частности если их элементы имеют различное происхождение, указывает Гослинг [6].
Если у нас есть такие инструменты, как Java и Web, мы можем получить изначально организованную систему, - подчеркивает Гомслинг. «Если вы создаете клиентскую часть приложения на Java, для ее запуска достаточно перейти на соответствующую страницу. Установка проста - просто поместите необходимое программное обеспечение на веб-сервер [9]. И проблем не будет с портированием, в связи с тем, что существует только одна версия приложения. " Многие фирмы, по словам Гослинга, уже организуют базы данных в виде веб-страниц, используя Common Gateway Interface (CGI) - особый стандарт для запуска внешних программ на HTTP-сервере.
Java-программы преобразуются в байт-код, который выполняется виртуальной машиной Java (JVM), программой, которая обрабатывает байт-код и затем передает инструкции оборудованию в качестве интерпретатора [5].
Преимущество этого метода выполнения программ в том, что он полностью независим от байт-кода от операционной системы и аппаратного обеспечения, что позволяет запускать приложения Java на любом устройстве с соответствующей виртуальной машиной. Следующим важным преимуществом технологии Java является полный контроль над выполнением программы виртуальной машиной.
Операции, которые превышают пределы установленных разрешений программы, будь то попытка получить несанкционированный доступ к данным или подключение к другому ПК, приводят к немедленному прерыванию [23].
Часто недостатки этой концепции виртуальной машины включают в себя тот факт, что выполнение байт-кода виртуальной машиной может значительно снизить производительность программ и алгоритмов, которые реализованы в Java. В последнее время было сделано большое количество улучшений, которые смогли улучшить скорость работы программ на Java:
- применение технологии для перевода байт-кода в машинный код непосредственно во время работы программы (технология JIT) при сохранении версий классов в машинном коде;
- широкое использование платформенно-ориентированного кода (native-кода) в стандартных библиотеках;
- аппаратное обеспечение, обеспечивающее ускоренную обработку байт-кода (например, технология Jazelle, которая поддерживается некоторыми процессорами ARM) [19].
По данным сайта shootout.alioth.debian.org для 7 различных задач, время выполнения в Java в среднем в 1,5-2 раза больше, чем в C / C ++, а в некоторых случаях Java даже быстрее, а в некоторых случаях в 7 раз помедленнее. С другой стороны, для большинства из них потребление памяти на Java-машине было в 10-30 раз больше, чем на C / C ++-программе. Также заслуживает внимания исследование, проведенное Google, согласно которому производительность в тестовых случаях на Java значительно ниже, чем в аналогичных программах на C ++ [13].
Идеи, лежащие в основе концепции и различных реализаций среды виртуальных машин Java, вдохновили многих энтузиастов на расширение списка языков. Который может быть использован для создания программ, которые работают на виртуальной машине. Эти идеи также выражены в спецификации CLI инфраструктуры общего языка, которая является основой платформы .NET от Microsoft.
Основные возможности:
- автоматическое управление памятью;
- расширенные функции для обработки исключительных ситуаций;
- богатый набор инструментов фильтрации ввода / вывода;
- набор стандартных коллекций, таких как массив, список, стек и т. д. [10];
- наличие простых инструментов для создания сетевых приложений (в том числе с использованием протокола RMI);
- наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;
- встроенные языковые инструменты для создания многопоточных приложений;
- унифицированный доступ к базам данных:
- на уровне отдельных SQL-запросов - на основе JDBC, SQLJ;
- на уровне концепции объектов, которые могут храниться в базе данных - на основе Java Data Objects и Java Persistence API;
- поддержка шаблонов (начиная с версии 1.5).
- параллельное выполнение программ [10].
Синтаксис Java сильно зависит от C ++. В отличие от C ++, который сочетает синтаксис для структурированного, универсального и объектно-ориентированного программирования. Java была построена почти исключительно как объектно-ориентированный язык. [17] Весь код написан внутри классов, и каждый элемент данных является объектом, за исключением примитивных типов данных (то есть целых чисел, чисел с плавающей точкой, логических значений и символов), которые не являются объектами по соображениям производительности. Java повторно использует некоторые популярные аспекты C ++ (такие как метод printf).
В отличие от C ++, Java не поддерживает перегрузку операторов или множественное наследование для классов, хотя множественное наследование поддерживается для интерфейсов. [1]
Java использует комментарии, аналогичные тем, которые используются в C ++. Существует три различных стиля комментариев: один линейный стиль, помеченный двумя косыми чертами (/ /), множественный линейный стиль, открытый / * и закрытый * /, и стиль комментария Javadoc, открытый / ** и закрытый * /.
Стиль комментариев Javadoc позволяет пользователю запускать исполняемый файл Javadoc для создания документации для программы и может быть прочитан некоторыми интегрированными средами разработки (IDE), такими как Eclipse, чтобы позволить разработчикам получать доступ к документации в IDE.
Традиционная программа Hello world может быть написана на Java следующим образом:
Рисунок 1. программа Hello world написанная на Java
Алфавитный язык Java состоит из букв, десятичных цифр и специальных символов. Буквы считываются латинскими буквами (кодируются в стандарте ASCII), буквами алфавитов (кодируются в стандарте Unicode, кодировка UTF-16), а также в них отображаются символы, кодируемые управляющими последовательностями. Буквы и цифры можно использовать в качестве идентификаторов языков программирования. Правда, при использовании в идентифицированных символах будут возникать проблемы.
В алфавитном порядке. Остальные символы национальных алфавитов - это специальные символы. Ява и не могут входить в состав идентификаторов [18].
Латинские буквы ASCII
• ABED ... XYZ - заглавные (прописные),
• abed ... xyz - строчные
Дополнительные "буквы" ASCII
• _ - знак подчеркивания,
• $ - знак доллара.
Национальные буквы на примере русского алфавита
• АБВГ ... ЭЮЯ - заглавные (прописные),
• абвг ... эюя - строчные
• Десятичные цифры0 1 2 3 4 5 6 7 8 9 [10].
Десятичные и шестнадцатеричные цифры и целые числа
Целые числовые константы в исходном коде Java (так называемые литерные константы) могут быть десятичными или шестнадцатеричными. Они записываются либо символами ASCII, или символами Unicode следующим образом [10].Десятичные константы записываются как обычно. Например, -137.
Шестнадцатеричная константа начинается с символов 0 или 0 (цифра 0, после которой следует латинская буква X), а затем идет само число в шестнадцатеричной нотации. Например, 0x10 соответствует; 0x2F соответствует, и т.д. О шестнадцатеричной нотации рассказано чуть ниже [7].
Ранее использовавшиеся восьмеричные числа и на языках C / C, а также старые версии Java можно было записать в виде числа, начиная с цифр 0. То есть 010 означало [7].
В настоящее время программирование восстанавливаемых чисел практически никогда не применяется, и неадекватное использование может привести к логическим ошибкам в программе [13].
Целая константа в обычной записи имеет тип int. Если после того, как константы добавят букву, то она будет иметь тип длинные, обладающие более широкими диапазонами значений, чем тип int.
Поясним теперь, что такое шестнадцатеричная нотация записи чисел и зачем она нужна.
Последовательность бит в компьютере в двоичном виде. Бит - это минимальная порция информации, которую он может представлять в видеобъектах, в которой хранится или ноль, или единица. Информация хранится, кодируется и передается байтами - порциями по 8 бит.