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

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

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

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

Добавлен: 22.04.2023

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

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

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

Малогабаритность устройства «*7» выгодно подчеркивала компактность и эффективность кода, являвшегося ядром технологии.

К середине 1994 года сеть World Wide Web выглядела уже вполне солидно. Был создан первоклассный браузер. Это один из немногих компонентов архитектуры клиент-сервер, который был наделен такими необходимыми ему качествами, как независимость от архитектуры, работа в реальном времени, надежность, безопасность, не имеющие такого значения для рабочих станций. Поэтому и был разработали браузер.

К осени был закончен WebRunner - Web-браузер, написанный на языке Java. Первая реализация HotJava проявила Java-технологию в новом свете.

Браузер - это такой компонент, который "создает рынок" для инструментальных средств, серверов и сред разработки. Во всех этих средствах язык Java играет ключевую роль.

До появления Java страница WWW фактически представляла собой листок бумаги. С появлением Java браузер задает структуру и резко расширяет возможности провайдеров содержания.

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

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

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

Уже вскоре после выпуска версии Java 1.0, разработчики создали версию Java 1.1. Добавленные функциональные возможности значительно превосходили те, которые можно было ожидать, судя из изменения подномера версии.

Разработчики добавили много новых библиотечных элементов, переопределили способ обработки событий и изменили конфигурацию многих свойств библиотеки версии 1.0. Они отказались от нескольких устаревших свойств, которые первоначально были определены в Java 1.0.

Таким образом, в версии Java 1.1 были добавлены новые атрибуты и удалены некоторые атрибуты, определенные в первоначальной спецификации.

Следующей базовой версией Java стала версия Java 2 (второе поколение). Создание Java 2 явилось знаменательным событием, которое означало начало "современной эры" Java. Первой версии Java 2 был присвоен номер 1.2.


С появлением версии Java 2 компания Sun стала выпускать программное обеспечение Java в виде пакета J2SE (Java 2 Platform Standard Edition — Стандартная версия платформы Java 2.

В Java 2 была добавлена поддержка ряда новых функций (Swing и Collections Framework), были усовершенствованы виртуальная машина Java и различные средства программирования. Из Java 2 был исключен ряд свойств. Версия J2SE 1.3 была первой серьезной модернизацией первоначальной версии Java J2SE. В основном модернизация свелась к расширению существующих функциональных возможностей и уплотнению среды разработки.

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

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

• общие функции;

• аннотации;

• автоматическое помещение в контейнер и автоматическое извлечение из контейнера;

• перечисления;

• усовершенствованный, поддерживающий стиль for-each, цикл for;

• аргументы переменной длины (varargs);

• статический импорт;

• форматированный ввод-вывод;

• утилиты параллельной обработки.

Важность новых функциональных возможностей нашла отражение в примененном номере версии - "5". Если следовать привычной логике, следующим номером версии Java должен был быть 1.5, но новые свойства настолько значительны, что переход от версии 1.4 к версии 1.5 не отражал масштаб внесенных изменений. Поэтому, чтобы подчеркнуть ее значимость, в компании Sun решили присвоить новой версии номер 5 (J2SE 5), а комплект разработчика - JDK 5.

Для сохранения единообразия в компании Sun было принято решение использовать номер 1.5 в качестве внутреннего номера версии, называемого также номером версии разработки.

2.2. Этапы развития языка Java и его применение


История разработки языка Java, изложенная П. Нотоном, соавтором браузера HotJava и нынешним вице-президентом по технологии корпорации Starwave.

В 1990 году Нотон отказывается от предложения перейти в компанию NeXT и начинает работу в компании Sun над проектом, получившим впоследствии название Green.

В 1991 году проходит совещание типа мозгового штурма по проекту Stealth, в котором участвовали Б. Джой, Э. Бехтолсхейм, У. Розинг, М. Шеридан, Дж. Гослинг и П. Нотон, которые серьезно взялись за работу. Нотон занимается графической системой Aspen, Гослинг - идеями языка программирования, а Шеридан - бизнес-разработкой. Проект продолжается под названием Green.

В 1992 году начинается интенсивная деятельность по доработке Oak, Green OS, пользовательского интерфейса, аппаратуры Star7 и соответствующих компонентов. Осенью 1992 годя завершают разработку устройства Star7.

В январе 1993 года коллектив переезжает в Пало Альто в здание, где раньше находилась лаборатория Western Research Lab компании DEC и была основана исходная группа Hamilton Group. После ознакомления с результатами испытаний кабельного интерактивного телевидения, проведенных компанией Time Warner, корпорация FirstPerson сосредотачивается на этой тематике и в апреле 1993 года выпускают первого графического браузера для Internet - Mosaic 1.0, разработанного в центре NCSA.

В конце 1993 года экспертиза операций на высоком уровне в FirstPerson обнаруживает, что у группы нет реальных партнеров (маркетинговой стратегии) и неясно представляет себе дату выпуска. Приходится отменить публичное заявление компании FirstPerson о выпуске, которое должно было состояться на конференции Technology, Entertainment and Design.

25 апреля 1994 года была создана компания Sun Interactive, куда переходит половина сотрудников FirstPerson.

В июне 1994 года был начат проект Liveoak, который нацелен Биллом Джоем на использование Oak в крупном проекте небольшой операционной системы.

Осенью 1994 года исполнительным лицам компании Sun впервые продемонстрирован прототип HotJava, затем Нотон уходит в компанию Starwave.

Осеню 1994 года Ван Хофф реализует компилятор Java на языке Java.

В 1995 году компания Sun официально представляет Java и HotJava на выставке SunWorld '95.

Одним из наиболее интересных аспектов Java-программирования являются Java-апплеты.

Java-апплет -- это Java-приложение с байт-кодом.

Java-апплеты выполняются в веб-браузере с использованием виртуальной Java-машины (JVM) или в Sun'sAppletViewer, автономном инструменте тестирования апплетов. Java-апплеты были введены в первой версии языка Java, в 1995 году.

Java-апплеты пишутся в основном на языке программирования Java, но могут быть написаны и на других языках, которые компилируются в байт?код Java, таких, как Jython.


Апплеты используются для предоставления интерактивных возможностей веб-приложений, которые предоставляются HTML. Байт-код Java платформо-независим и поэтому Java-апплеты могут выполняться с помощью плагинов браузерами многих платформ, включая Microsoft Windows, Apple Mac OS, UNIX и GNU/Linux. Такие программы с открытым исходным кодом, как applet2app, могут быть использованы для преобразования апплета в самостоятельные программы на Java или исполняемые файлы Linux и Windows.

Java-апплеты позволяют создавать эффективные и безопасные интернет-приложения с частичной обработкой информации на стороне пользователя.

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

При начальной загрузке, исходные данные передаются не в графическом, а в компактном векторном виде.

3. Сравнительный анализ языков Java и C++

Проведем сравнительный анализ двух языков программирования: C# и Java. C# и Java очень схожие языки с возможностью сборки мусора и компиляцией при выполнении, берущих начало от Си и C++.

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

Основные сходства C# и Java. (Приложение А)

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

Представим список базовых сходств между C# и Java:

Безопасность типов. Оба языка предоставляют возможность избежать еще на стадии компиляции ситуации, когда один тип данных объекта ошибочно назначается другому, вызывая различного рода ошибки.

Сборка мусора: Низкоуровневые языки требуют пристального внимания за тем, что для грамотного удаления объектов необходимо сначала освободить ресурсы. C# и Java же имеют встроенную возможность сборки мусора, то есть разработчику даже не придется задумываться о том, какие объекты утратят свою актуальность на какой стадии работы программы. Утечки памяти все еще могут возникать, но это уже не проблема.


Одиночное наследование. Это означает, что имеется лишь единственный путь из базового класса в любой его производный класс.

Интерфейсы. Интерфейс программная/синтаксическая структура, определяющая отношение между объектами, которые разделяют определённое поведенческое множество и не связаны никак иначе. При проектировании классов, разработка интерфейса тождественна разработке спецификации (множества методов, которые каждый класс, использующий интерфейс, должен реализовывать). представляет собой абстрактный класс, где все методы абстрактны. Основные различия. C# был разработан компанией Microsoft с целью создания собственного языка с функционалом Java на платформе Net.

Так как новый язык был уже не первым в своём роде, он имел все необходимые функции для решения современных проблем, с которыми столкнулись разработчики при попытке создать свою платформу Visual J++. Однако Java благодаря открытому исходному коду продолжал наращивать число пользователей, что привело к конкуренции [17].

Windows и open-source. C# в большинстве случаем применяется в разработках для платформ Microsoft — .NET Framework CLR. Java же имеет внушительных размеров систему с открытым исходным кодом.

Поддержка обобщений (Generics): Поддержка обобщений в Java, в отличие от С#, осуществляется с помощью стираний, т. е. параметры общего типа стираются и добавляются как приведения во время компиляции. В C# обобщения встроены, что немного увеличивает производительность, потому что сведения о типе предоставляются прямо во время выполнения программы.

Поддержка делегатов: в C# имеются делегаты, они, по сути своей, используются как методы, способные вызываться без знания целевого объекта. Чтобы получить идентичный результат в Java, следует использовать интерфейс с методом или другим способом избегания, способного запросить нетривиального количество дополнительного кода.

Проверяемые исключения: в C# всего один тип исключений против двух в Java [17]. Такой подход негативно сказывается на способности выявления исключений, но положительно на производительности.

Полиморфизм: C# и Java используют очень разные подходы к полиморфизму. Java разрешает полиморфизм по умолчанию, C# же обязан вызывать ключевое слово «virtual» для обозначения возможности переопределения метода и «override» в производном классе.

Перечисления (Enums): в C# перечисления представляют собой просто списки констант. Java предоставляет более широкий выбор перечислений, расценивая их как именованный экземпляр типа.