Файл: История возникновения и развития языка программирования Си (С++) и Java.pdf

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

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

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

Добавлен: 25.04.2023

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

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

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

Достоинствами языка Java можно назвать не только то, что программы на нем можно размещать на Web-страницах. Кроме этого, Java просто мощный и легкий в изучении объектно-ориентированный язык. С его помощью можно решить многие из повседневных сложных задач, которые встречаются программистам, разрабатывающим устойчивые, хорошо работающие приложения. Java при помощи класса thread обеспечивает многопотоковость приложений, а также самостоятельно, в фоновом режиме, производит сборку мусора (garbage collection), освобождая ненужные области памяти. Интерфейс прикладного программирования Java (API), входящий в состав комплекта разработчика Java Developers Kit, созданного фирмой Sun, дает программисту независимый от операционной среды доступ к необходимым для создания сложных приложений Интернет средствам, таким как сетевые сокеты и графическая оконная система. [2]

Java - это мощный современный язык программирования, который разработан фирмой Sun Microsystems. Сначала его планировали применять в системах интерактивного телевидения, однако когда Sun выпустила HotJava, браузер World Wide Web, который позволял "прокручивать" внутри себя небольшие программы, иначе называемые апплетами (от англ. applet, "приложеньице"), вызываемые из Web-страниц, Java серьезно заинтересовал сообщество глобальной компьютерной сети Интернет. Вскоре после этого возможность работы с апплетами была добавлена в самый распространенный Web-браузер - Netscape Navigator 2.0. На сегодняшний день встроенные в Web-страницы апплеты на языке Java стали обязательным атрибутом каждого Web-сервера, претендующего на применение "высокой технологии".

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

Апплеты и программы на Java можно разрабатывать на любом компьютере, оборудованном компилятором Java. Фирма Sun выпустила JDK для следующих платформ:

    • Microsoft Windows 95 и Windows NT;
    • Sun Solaris 2;
    • Apple Macintosh.

В добавление к этим платформам существуют компиляторы и для других платформ, в основном вариантов UNIX, включая Linux - бесплатную, совместимую с UNIX операционную систему для процессоров Intelx86 и DEC Alpha.


Просматриваются апплеты в широко известном браузере Netscape Navigator 2.0, который доступен для большинства компьютерных платформ. Во время написания книги браузер HotJava, распространявшийся с альфа-версией JDK, был несовместим с современной его версией. Поэтому для разработки апплетов его не использовали. [10]

3.1 Особенности

  1. Язык Java ориентирован на программирование для Internet. Но по данному вопросу в Java есть большой компромисс (в принципе как и во всех системных и программных продуктах). С одной стороны, если существует "универсаль­ный" язык программирования, то программы могут быть установлены и будут работать на машинах пользователей незави­симо от характеристик платформы. Поэтому с помощью Java создаются апплеты - программы, которые могут быть загружены из Ин­тернета. Значения не имеет, из-под какой операционной системы происходит подключение к Интернету. Если в ней установлен Java, то она будет работать с апплетами, которые доступны во Всемирной сети. С другой стороны, программы, написанные на Java, работают значи­тельно медленнее, чем программы, которые скомпилированы для конкретной архитектуры (из-за наличия виртуальной машины). В среднем код Java будет работать в 10 раз медленнее чем, например программа, написанная на языке С++. Но по мере того как процессоры становятся все быстрее, а Интернет становится средой распространения про­грамм, недостаток в скорости, за счет которого достигается уни­версальность, выглядит все более приемлемым компромиссом.
  2. Java - это объектно-ориентированный язык программирования. Он придуман для того, чтобы создавать графические при­ложения с управлением событиями (то есть для создания графического пользовательского интерфейса, который поддерживает действия по типу "укажи и щелкни" (point and click). Такие приложения могут быть самостоятельными программами (Application) или апплетами (Applet), за­гружаемыми из Интернета. Java обладает основными синтаксиче­скими особенностями структурированных языков программиро­вания: последовательным (линейным), условным (ветвление) и повторяющимся (циклы) выполнением блоков кода.
  3. Кросс-платформенность – это особенность языка Java, которым объясняются все остальные главные свойства данного языка: с технической точки зрения, Java — это язык, работающий на виртуальной машине. По идее можно создать архитектуру, которая будет непосредственно выполнять код Java, однако в стандартной среде, такой как Windows или UNIX, установка Java на компьютере означает, что установлена виртуальная машина. Когда программы работают, считается, что они функционируют на виртуальной машине. В других языках, таких как С или C++, в результате компиляции получается выполняемый файл, содержащие машинные команды для той архитектуры, для которой был создан компилятор (т.е. откомпилированный код программы привязан к операционной системе). Для языка Java этот процесс также называется компиляцией, но он не является компиляцией в буквальном смысле слова. В результате компиляции кода для Java создается код на языке Byte-code (байт-код), т.е. код, работающий в виртуальной Java-машине (стандарт байт-кода близок к машинным кодам). Байт-код не привязан ни к языку программирования, ни к операционной системе. А сама виртуальная Java-машина ориентирована на определенную ОС.
  4. Java сразу был создан как объектно-ориентированный язык в отличие от языка C++, являющийся объектно-ориентированной эволюцией языка С (в этом преимущество языка Java перед C++). Поэтому Java позволяет создавать графические приложения, которые невозможно написать на таких языках программирования, как С. Кроме того, код, написанный на Java, может быть значительно проще, чем код, который написан на C++, чтобы выполнить ту же задачу. В заключение нужно сказать, что язык С# был создан для той же самой цели, что и язык Java, поэтому С# является его прямым конкурентом, который по своим. характеристикам может быть не хуже или даже способен превосходить Java в некоторых аспектах.
  5. Java не дает возможность написать код, который напрямую обращается к адресам в памяти компьютера, как в некоторых языках, таких как С и C++ (путем использования указателей). Эта характеристика языка Java поддерживает безопасность программ. Программисты знают, что программы, которые напрямую имеют доступ к памяти, могут, преднамеренно или случайно, навредить системе. По этой причине прямой доступ к памяти нежелателен в Java. Когда пользователи запускают программы, они хотят быть уверенными, что эти программы не будут разрушать их системы из-за прямого доступа к памяти.

Недостаток языка Java - он не предназначен для обучения программированию, а предназначен для построения сложных приложений. В дополнение ко многим свойствам в самом языке, он имеет библиотеки готовых компонентов кода, которые можно использовать вместо самостоятельного написания компонентов с нуля. Ни полностью синтаксис, ни библиотеки невозможно изучить за короткий срок. Многое из того, что изучается на первом этапе, может показаться не слишком полезным. Необходимо рассмотреть основы объектно-ориентированного программирования прежде, чем станет возможным создание интересных приложений, включающих интерактивные графические свойства. [1]

3.2 История

Появление такого языка как Java предшествовала довольно интересная история. В 1990 году разработчик ПО компании Sun Microsystems Патрик Нотон (Patrick Naughton) понял, что ему надоело поддерживать сотни различных интерфейсов программ, которые в компании, и сообщил исполнительному директору Sun Microsystems и своему другу Скотту МакНили (Scott McNealy) о своем намерении перейти работать в компанию NeXT. МакНили, в свою очередь, попросив Нотона составить список причин своего недовольства и выдвинуть такое решение проблем, как если бы он был Богом и мог исполнить все, что угодно.

Нотон, хотя и не рассчитывал на то, что кто-то обратит внимание на его письмо, все же выдвинул свои претензии, беспощадно раскритиковав недостатки Sun Microsystems, в частности, разрабатываемую в тот момент архитектуру ПО NeWS. К удивлению Нотона, его письмо приобрело успех: оно было разослано всем ведущим инженерам Sun Microsystems, которые незамедлительно откликнулись и высказали горячую поддержку своему коллеге и одобрение его взглядов на ситуацию в Sun Microsystems. Обращение вызвало одобрение и у высшего руководства компании, а именно, у Билла Джоя (Bill Joy), основателя Sun Microsystems, и Джеймса Гослинга (James Gosling), начальника Нотона.

В тот день, когда Нотон должен был уйти из компании, было принято решение о создании команды ведущих разработчиков с тем, чтобы они делали что угодно, но создали нечто необыкновенное.

Команда из шести человек, с кодовым названием Green, ушла в самовольное изгнание, погрузившись в исследования бытовых устройств, таких как Nintendo Game Boys, устройств дистанционного управления. Команда Green пыталась найти средство, с помощью которого можно было бы установить взаимодействие между этими устройствами. В скором времени стало ясно, что такие электроприборы, как видеомагнитофоны, проигрыватели лазерных дисков, стереосистемы - все они были реализованы на разных процессорах. Это означало, что если производитель захочет добавить телевизору или видеомагнитофону дополнительные функции или характеристики, он будет зажат в рамках средств, которые зашиты в аппаратное обеспечение. Эта проблема, в сочетании с ограниченностью памяти микросхем этих устройств, выдвинула новый подход к программированию ПО, который должен был стать ведущим на рынке бытовой электроники.


Команда приступила к разработке нового объектно-ориентированного языка программирования, который был назван Oak (дуб), в честь дерева, которое росло под окном Гослинга.

Вскоре компания Sun Microsystems преобразовала команду Green в компанию First Person. Новая компания владела интересной концепцией, но не могла найти ей подходящего применения. После ряда неудач неожиданно ситуация для компании резко изменилась: был анонсирован Mosaic - так родился World Wide Web, с которого началось бурное развитие Internet.

Нотон предложил использовать Oak в создании Internet- приложений. Так Oak стал самостоятельным продуктом. Чуть позже был написан Oak-компилятор и Oak-браузер "WebRunner". В 1995 году компания Sun Microsystems приняла решение объявить о новом продукте, переименовав его в Java (единственное разумное объяснение названию - любовь программистов к кофе). Когда Java оказалась в руках Internet, пришло время запускать Java-аплеты - небольшие программы, загружаемые через Internet. WebRunner был переименован в HotJava и компания Netscape встала на поддержку Java-продуктов. [11]

3.3 Развитие языка 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. Эта версия содержала несколько особых модернизаций, усовершенствований и добавлений. Например, в нее было добавлено новое ключевое слово assert , цепочки исключений и подсистема ввода-вывода на основе каналов. Изменения были внесены и в инфраструктуру Collections Framework, и сетевые классы. Эта версия содержала также много небольших изменений. Несмотря на заметное количество новых функциональных возможностей, версия 1.4 сохранила почти стопроцентную совместимость по исходному коду с предшествующими версиями. 

В последующей версии Java, которая имела название J2SE 5, был внесен ряд революционных нововведений. В отличие от большинства предшествующих модернизаций Java, представляющих важные, но постепенные усовершенствования, J2SE 5 коренным образом расширяет область применения, возможности и диапазон языка. Чтобы оценить объем изменений, которые были внесены в язык Java в версии J2SE 5, необходимо ознакомиться с перечнем основных новых функциональных возможностей: 

  1. обобщения;
  2. аннотации;
  3. автоупаковка и автораспаковка;
  4. перечисления;
  5. усовершенствованный, поддерживающий стиль for - each , цикл for;
  6. список аргументов переменной длины (varargs);
  7. статический импорт;
  8. форматированный ввод-вывод;
  9. утилиты параллельной обработки.

В этом перечне не указаны незначительные изменения или постепенные усовершенствования. Каждый пункт перечня представлял значительное добавление в языке Java. Одни из них, такие как обобщения, усовершенствованный цикл for и список аргументов переменной длины, представляли новые синтаксические элементы. Другие, такие как автоупаковка и автораспаковка, вносили изменения в семантику языка. Аннотации внесли в программирование совершенно новое измерение. В любом случае влияние всех этих добавлений вышло за рамки их прямого эффекта. Они полностью изменили сам характер языка Java.