Файл: История возникновения и развития языка программирования Си (С++) и Java.pdf
Добавлен: 06.04.2023
Просмотров: 81
Скачиваний: 1
СОДЕРЖАНИЕ
Глава 1. История возникновения и развития языка программирования C++
1.1. Возникновение и эволюция языка C++
1.2. Структура и эффективность C++
Глава 2. История возникновения и развития языка программирования Java
2.1. Возникновение и эволюция языка Java
В день, когда Нотон должен был покинуть компанию, было принято решение о формировании команды ведущих разработчиков с условием, чтобы они делали что угодно, лишь бы создали нечто необыкновенное. Команда в составе шести человек начала разработку нового объектно-ориентированного языка программирования, который был назван 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-продукты.
Java создавался как универсальный язык, который предназначался для прикладного программирования в неоднородных компьютерных сетях и со стороны клиентского компьютера, и со стороны сервера. В том числе – для применения на тонких аппаратных клиентах (устройствах малой вычислительной мощности с крайне ограниченными ресурсами). При этом скомпилированные программы Java работают лишь под управлением виртуальной Java-машины, именно поэтому они называются приложениями Java. Синтаксис операторов Java почти полностью идентичен синтаксису языка C, но, Java не является расширением C, в отличие от C++, – это совершенно независимый язык, со своими собственными синтаксическими правилами.
Идеология Java подразумевает работу в компьютерных сетях и возможность подгрузки в нужный момент посредством сети требуемых классов и ресурсов, необходимых программе, и тех, что не были загружены до того. Для обеспечения такой работы приложения Java разрабатываются и распространяются, как большое число независимых классов. Тем не менее данный способ разработки ведет к очень высокой фрагментации программы. Даже небольшие учебные проекты как правило состоят из десятков классов, в то время как реальные проекты – из сотен. В то же время каждому общедоступному (public) классу соответствует свой файл, носящий такое же имя. Для того чтобы справиться с данным количесвом файлов, Java предусматривает специальное средство группировки классов, которое называется пакетом (package). Пакеты обеспечивают независимые пространства имен (namespaces), а также ограничение доступа к классам.
2.2. Этапы развития языка Java и его применение
Этапы разработки языка Java, изложенная Патриком Нотоном, соавтором браузера HotJava и нынешним вице-президентом по технологии корпорации Starwave.
5 декабря 1990 г. - Нотон отклоняет предложение перейти в фирму NeXT и начинает работу в фирме Sun над проектом, который впоследствии получил название Green.
15 января 1991 г. – Совещание по типу «мозговой штурм» по проекту Stealth в Аспене, где принимали участие Билл Джой, Уэйн Розинг, Энди Бехтолсхейм, Майк Шеридан, Патрик Нотон и Джейм Гослинг.
1 февраля 1991 г. – Шеридан, Гослинг и Нотон основательно берутся за работу. Нотон отвечает за графическую систему Aspen, Гослинг - идеи языка программирования, Шеридан - бизнес-разработка.
8 апреля 1991 г. - Переезд на новый адрес и обрыв прямого соединения с локальной сетью (как и большинством других средств связи) фирмы Sun; проект разрабатывается под названием Green.
15 апреля 1991 г. - К проекту Green присоединяются Крейг Форрест (дизайнер чипа SS10), Эд Фрэнк (архитектор системы SPARCstation 10) и Крис Уорт (разработчик системы NeWS).
Май 1991 г. - Эд Фрэнк нарекает прототип аппаратуры названием *7 (или Star7; *7 - код, который было необходимо набрать в офисе Sand Hill, для того, чтобы ответить на любой звонок с любого телефона).
Июнь 1991 г. - Гослинг занимается разработкой интерпретатора Oak, который в дальнейшем (при поисках торговой марки) переименовли в Java.
1 августа 1991 г. - Произошло объединение Oak и Aspen; запуск их первой реальной программы.
19 августа 1991 г. - Разработчики Green демонстрирует концепцию базового пользовательского интерфейса и графической системы сооснователям компании Sun Биллу Джою и Скотту Макнили.
17 октября 1991 г. - Нотон и Шеридан присваивают девиз "1st Person" конструкторской философии своего коллектива, со временем данный девиз становится названием компании.
17 ноября 1991 г. - Офис проекта Green вновь подключается к основной сети компании Sun линией на 56 Кбит/с.
1 марта 1992 г. - К проекту Green присоединяется Джонатан Пейн, позднее участвовавшийв написании HotJava.
Лето 1992 г. - Активная деятельность, направленная на доработку Oak, пользовательского интерфейса, Green OS, аппаратуры Star7 и соответствующих компонентов.
4 сентября 1992 г. - Завершение разработки устройства Star7; демонстрация устройства Макнили и Джою.
1 октября 1992 г. - Уэйн Розинг переходит из фирмы SunLabs, и принимает руководство коллективом на себя.
1 ноября 1992 г. - Организована корпорация FirstPerson.
15 января 1993 г. - Коллектив переезжает в Пало Альто в здание, где ранее находилась лаборатория Western Research Lab компании DEC и была основана начальная группа Hamilton Group (она же OSF).
15 марта 1993 г. - После анализа результатов испытаний кабельного интерактивного телевидения, которые были проведены компанией Time Warner, корпорация FirstPerson переключается на эту тематику.
Апрель 1993 г. - Выпуск первого графического браузера для Internet - Mosaic 1.0, разработанного в центре NCSA.
14 июня 1993 г. - Компания Time Warner продолжает проводить испытания интерактивного кабельного ТВ с компанией SGI, не обращая внимание на очевидное превосходство технологии компании Sun и уверения, что Sun выиграла эту сделку.
Лето 1993 г. - Нотон преодолевает 300 тыс. миль, пытаясь продать Oak всем, кто занимается интерактивным телевидением и бытовой электроникой; в это время темп, с которым люди получают доступ к Internet, невероятно нарастает.
Август 1993 г. - Спустя несколько месяцев серьезных переговоров с компанией 3DO касательно разработки ОС для приставок, президент 3DO Трип Хокинс делает предложение купить технологию. Макнили отказывается, и сделка срывается.
Сентябрь 1993 г. - К коллективу присоединяется Артур Ван Хофф, поначалу - чтобы создать среду разработки приложений, которые предназначены для интерактивного телевидения, а потом и сам язык.
7 декабря 1993 г. - Экспертиза операций на высоком уровне в FirstPerson выясняет, что данная группа не имеет реальных партнеров либо маркетинговой стратегии и совершенно неясно представляет себе дату выпуска.
8 февраля 1994 г. - Отменено публичное заявление фирмы FirstPerson о выпуске, которое было намечено на конференцию Technology, Entertainment and Design (TED).
17 февраля 1994 г. - Для разносторонней экспертизы исполнительным лицам компании Sun представлен альтернативный бизнес-план по разработке мультимедийной платформы для CD-ROM и онлайновой работы корпорации FirstPerson.
25 апреля 1994 г. - Создана компания Sun Interactive; туда перемещается половина сотрудников FirstPerson.
Июнь 1994 г. - Начат проект Liveoak, который нацелен Биллом Джоем на применение Oak в крупном проекте небольшой операционной системы.
Июль 1994 г. - Нотон ограничивает сферу применения проекта Liveoak, просто поменяв ориентацию Oak на Internet.
16 сентября 1994 г. - Нотон и Пейн начинают писать WebRunner – браузер по типу Mosaic, позже переименованный в HotJava.
29 сентября 1994 г. - Прототип HotJava впервые продемонстрирован исполнительным лицам компании Sun.
11 октября 1994 г. - Нотон переходит в компанию Starwave.
Осень 1994 г. - Ван Хофф реализует компилятор Java на языке Java. (Ранее Гослинг реализовывал его на языке С).
23 мая 1995 г. - Компания Sun официально представляет Java и HotJava на выставке SunWorld '95.
Компания Sun Microsystems выпускает первую версию Java в начале 1996 г. Однако, пользователи быстро осознали, что версия Java 1.0 не подходит для разработки серьезных приложений. Конечно, данную версию можно применить для реализации визуальных эффектов на веб-страницах, к примеру, написать аплет, который выводит на страницу случайно "прыгающий" текст, но версия Java 1.0 была еще сырой. В ней даже не было предусмотрено средства вывода на печать. Можно сказать, что версия Java 1.0 еще не была готова. В последующей версии, Java 1.1, были устранены наиболее серьезные недостатки, улучшены средства рефлексии и реализована новая модель событий для программирования ГПИ. Тем не менее, ее возможности все еще были ограничены.
Выпуск версии Java 1.2 стал главной новостью на конференции JavaOne в 1998 г. В новой версии слабые средства реализации графического пользовательского интерфейса и графических приложений были заменены мощным инструментарием. Это был большой шаг вперед, к соответствию лозунгу "Write Once, Run Anywhere" ("Однажды написано — везде выполняется"), который был выдвинут при разработке предыдущих версий. В декабре 1998 года через три дня после выхода в свет название новой версии было изменено на неудобное и длинное Java 2 Standard Edition Software Development Kit Version 1.2(Стандартная редакция набора инструментальных средств для разработки программного обеспечения на Java 2, версия 1.2).
Помимо Standard Edition, также были предложены следующие два варианта: для портативных устройств Micro Edition ("микроредакция"), к примеру, для мобильных телефонов, и Enterprise Edition (редакция для корпоративных приложений).
Версии 1.3 и 1.4 набора инструментальных средств Standard Edition - результаты поэтапного усовершенствования первоначально выпущенной версии Java 2. Они имеют новые возможности, повышенную производительность и, естветственно, содержат много меньше ошибок. В ходе развития Java многие взгляды на аплеты и клиентские приложения были пересмотрены. В частности, оказалось, что на Java удобно разрабатывать высококачественные серверные приложения.
В версии 5.0 язык Java подвергся наиболее серьезной модификации с момента выпуска версии 1.1. (Первоначально версия 5.0 имела номер 1.5, но на конференции JavaOne в 2004 г. была принята новая нумерация версий.) После многолетних исследований были добавлены обобщенные типы (которые приблизительно соответствуют шаблонам C++), хотя при этом не были выдвинуты требования модификации виртуальной машины. Ряд других языковых элементов, например, циклы в стиле for each, автоупаковка и метаданные, были явно "навеяны" языком С#.
Версия 6 (без суффикса .0) была выпущена в конце 2006 г. И снова сам язык существенных изменений не претерпел, но были внесены усовершенствования, которые были связаны с производительностью, а также произведены расширения библиотек.
По мере того как в центрах обработки данных все чаще стали применяться аппаратные средства широкого потребления вместо специализированных серверов, для компании Sun Microsystems наступили тяжелые времена, и в конечном итоге она была приобретена компанией Oracle в 2009 г. Разработка следующих версий Java на долгое время приостановилась. И лишь в 2011 году компания Oracle выпустила новую версию Java 7 с простыми усовершенствованиями. Было решено более серьезные изменения отложить до версии Java 8, выпуск которой произошел в 2014 г.
В табл. 1 сведены данные об этапах развития языка и библиотек Java.
Таблица 1
Этапы развития языка Java
Версия |
Год выпуска |
Новые языковые средства |
Количество классов и интерфейсов |
1.0 |
1996 |
Выпуск самого языка |
211 |
1.1 |
1997 |
Внутренние классы |
477 |
1.2 |
1998 |
Отсутствуют |
1524 |
1.3 |
2000 |
Отсутствуют |
1840 |
1.4 |
2002 |
Утверждения |
2723 |
5.0 |
2004 |
Обобщенные классы, цикл в стиле for each, автоупаковка, аргументы переменной длины, метаданные, перечисления, статический импорт |
3279 |
6 |
2006 |
Отсутствуют |
3793 |
7 |
2011 |
Оператор switch со строковыми метками ветвей, ромбовидный оператор, двоичные литералы, усовершенствованная обработка исключений |
4024 |
8 |
2014 |
Лямбда-выражения, библиотеки потоков и даты/времени, интерфейсы с методами по умолчанию |
4240 |
9 |
2017 |
Литералы в коллекциях, оператор Элвиса, Class Optional, Streams, IO, Regrexp, обработка процессов ProcessHandle |
более 4500 |
В 2018 году коренным образом изменилась парадигма разработки и выпуска релизов Java.