Файл: "История возникновения и развития языка программирования Си (С++) и Java".pdf
Добавлен: 28.04.2023
Просмотров: 256
Скачиваний: 2
Среди новшеств стандарта С99 стоит обратить внимание на изменение правила, касающегося места объявления переменных. Теперь новые переменные можно было объявлять посреди кода, а не только в начале составного блока или в глобальной области видимости. Это уводит Си от концепции объявления переменных в начале функции, которая присутствует в Паскале. Меня, как и многих программистов, привыкших писать на С++ (где это ограничение отсутствует) такое поведение компилятора вызывало недовольство. Тем не менее, даже с принятием стандарта С99, в программе Borland Embarcadeo RAD Studio 2010, ограничение на объявление переменных в начале блока кода всё ещё действует. Также можно указать другие места, в которых стандарты Си не до конца соблюдаются. Есть мнение, что это связано с тем, что основное внимание больших компаний, таких как Microsoft и Borland сосредоточено на более новых языках программирования. Однако, согласно заверениям компании Sun Microsystems, её среда разработки Sun Studio полностью поддерживает С99.
Стандарт С99 сейчас в большей или меньшей степени поддерживается всеми современными компиляторами языка Си. В идеале, код написанный на Си с соблюдением стандартов и без использования аппаратно- и системно-зависимых вызовов, становился как аппаратно- так и платформенно-независимым кодом.[28]
Си является предшественником таких языков, как C++, Objective-C, C#, Java.
Компания Microsoft для разработки родного языка к своей платформе .Net выбрала именно Си-подобный синтаксис. Более того, на Си написано множество операционных систем.
Конечно, Си не идеален: создатели языка – Кен Томпсон и Деннис Ритчи – долгое время дорабатывали его. Стандартизация Си продолжается до сих пор. Он существует более 45 лет и активно используется.
Согласно статистике, язык С находится на втором месте по популярности среди языков программирования по состоянию на январь 2018 года.[29] Его опережает только язык Java, который сейчас очень широко используется, но к нему мы вернемся позже. На третьем месте по тому же рейтингу находится язык С++.
Почему же язык С остается таким популярным, хотя давно появились такие языки как С++ и Java? Его популярность обусловлена тем, что люди, предпринимая попытки работать с ним, убеждались в его достоинствах.
Язык С является эффективным языком программирования. Его конструкции продуктивно используют возможности компьютеров, на которых он установлен. Программы на С отличаются компактностью и быстротой исполнения. [30]
Мы рассмотрели историю появления и развития языка С, на мой взгляд, это одно из важнейших событий во всей истории программирования. Данный язык повлиял на все важнейшие языки, широко употребляемые в наше время, при этом он остается очень популярным среди программистов и по сей день. Мы подошли к рассмотрению следующей главы.
Глава 3. История создания и развития языка С++.
С самого начала и по сей день сложность разработки программ постоянно увеличивалась, так и через какое-то время после разработки языка С появился стимул в усовершенствовании и языка С. С++ появился именно по этой причине. Обратимся к истории снова, чтобы понять предпосылки необходимости разработки языка С++.
Когда появились первые компьютеры, их программирование осуществлялось путем ввода двоичных команд на передней панели компьютера переключателями. Пока еще размер таких программ не превышал нескольких сотен команд, такая система была годной. Но когда понадобились более длинные программы, то был изобретен язык ассемблер. Благодаря этому программисты смогли создавать еще более объемные и сложные программы, используя символичное представление машинных команд. Так программы становились сложнее и сложнее, объемнее и объемнее, и для этого требовалась разработка языков программирования все более и более высокого уровня.
В моей работе уже упоминалось о первом широко используемом языке Fortran. И хотя этот язык был впечатляющим первым шагом, вряд ли его можно считать языком для написания ясных, легко запоминаемых программ. В 1960-е гг. было зарождено структурное программирование, использование которого было естественным на языках программирования вроде С. С появлением структурного программирования стало возможным написание сложных программ с небольшими затратами труда и времени. Но даже с использованием этих методов, возможности программистов стали вскоре очень ограниченными для реализации более сложных проектов.
В качестве решения этой проблемы стали разрабатывать новый подход, названный объектно-ориентированным программированием (ООП). С помощью ООП программисты смогли создавать еще более сложные программы. Но язык С не поддерживал объектно-ориентированное программирование. Стремление адаптации языка С к ООП и стало предпосылкой создания языка С++.
Таким образом, сложность программ превысила возможности и всеми любимого и популярного языка С. Целью С++ явилось преодоление этого барьера и предоставление программистам возможности создавать, понимать и обслуживать еще более сложные программы.[31]
Язык С++ был разработан и реализован Бьярне Страуструпом из Исследовательского центра по компьютерным наукам компании Bell Telephone Laboratories в Мюррей-Хилл, штат Нью Джерси, где работали также упомянутые ранее Деннис Ритчи, Брайан Керниган, Кен Томпсон, Дуг Мак-Илрой и другие.
Бьярне Страуструп получил степень магистра по математике и компьютерным наукам в городе Эрхусе, Дания. После этого он переехал в Кэмбридж, где получил степень доктора философии по компьютерным наукам, работая с Дэвидом Уилером.[32]
Работа над созданием С++ началась в 1979 году, а в 1985 году он был выпущен для коммерческого использования. В 1990 году началась официальная процедура стандартизации языка. Первый международный стандарт (С++98) был ратифицирован в 1998 году, а второй в 2011 (С++11). Следующим стандартом стал С++14, а затем С++17, опубликованный в декабре 2017 года.
Наиболее значительным событием в истории языка С++ спустя десять лет после его появления стала стандартная библиотека контейнеров и алгоритмов – STL. Она стала результатом многолетней работы под руководством Александра Степанова, направленной на создание как можно более универсального и эффективного программного обеспечения.
Александр Степанов – изобретатель библиотеки STL и пионер обобщенного программирования. Он закончил МГУ и работал в области робототехники и алгоритмов, используя разные языки программирования (включая Ada, Scheme и С++). С 1979 г. он работал в академических организациях США, а также в промышленных компаниях, таких как GE Labs, AT&T Bell Labs, Hewlett-Packard, Silicon Graphics и Adobe.[33]
Важно понимать, что Страуструп не создал совершенно новый язык программирования, он расширил уже имеющийся и довольно успешный язык. Большая часть средств, добавленная Страуструпом к С направлена на поддержку ООП. В сущности, С++ является объектно-ориентированной модификацией языка С. Благодаря этому, программисту уже работающему на языке С, не нужно было изучать новый язык программирования для создания более сложных программ и использования ООП, ему было достаточно усвоить лишь несколько новых средств.
Создавая С++, Страуструп понимал, что добавляя к языку С поддержку ООП, необходимо было в то же время сохранить дух языка С, включая его эффективность, гибкость и стратегию программирования. К счастью эта цель была достигнута.
Хотя первоначально язык С++ создавался для написания очень больших программ, он используется не только для этого. На самом деле язык С++ может использоваться практически для любых задач программирования.[34]
Мы рассмотрели историю создания и развития языка программирования С++ и можно отметить, что язык С++ является следующей ступенью эволюции языков программирования, после языка С. Это усовершенствование языка С для решения более сложных задач, появившихся перед программистами. Кроме того, этот язык также оказал большое влияние на развитие программирования, в том числе на появление развитие языка Java.
Глава 4. История создания и развития языка Java.
Язык Java является наследником языков С++ и С. Многие черты языка Java привнес из этих языков. От С язык Java унаследовал синтаксис, а объектно-ориентированные признаки от С++. Как и С++, язык Java начинал разрабатываться в ответ на появившиеся потребности из своих предшественников.[35] Но, хотя и язык Java связан с С и С++, он также существенно отличается от них; ряд аспектов С и С++ в Java отсутствует, а из других языков включено несколько идей, не имеющих аналогов ни в С, ни в С++. Java – это в первую очередь, производственный, а не исследовательский язык программирования.[36]
В 1991 году группа инженеров из компании Sun Microsystems под руководством Патрика Нотона (Patrick Naughton) и члена совета директоров (и разностороннего специалиста) Джеймса Гослинга (James Gosling) занялись разработкой языка, который можно было бы использовать для программирования бытовых устройств, например, контроллеров для переключения каналов кабельного телевидения. Подобные устройства не обладают большими вычислительными мощностями и объемами оперативной памяти, и поэтому новый язык должен быть простым и способным генерировать очень компактный код. Кроме того, разные производители могут выбирать разные процессоры для контроллеров, и поэтому было очень важно не привязываться к конкретной их архитектуре. Проект создания нового языка получил кодовое название «Green».
Стремясь создать компактный и независимый от платформы код, разработчики решили создать переносимый язык, способный генерировать промежуточный код для виртуальной машины. Так как большинство разработчиков имели опыт с операционной системой Unix, то в основу разрабатываемого ими языка лег язык С++, а не Lisp, Pascal и т.д. Как сказал Гослинг в своем интервью: «Язык – это всегда средство, а не цель». Поначалу Гослинг решил назвать его Oak (Дуб).[37] Но потом сотрудники компании узнали, что слово «Oak» уже используется в качестве имени ранее созданного языка программирования, и изменили название на Java.
В 1992 году в рамках проекта «Green» был выпущен первый продукт под названием «*7». Это было устройство интеллектуального дистанционного управления. Но, к сожалению, ни одна компания-производитель не заинтересовалась этим продуктом. После этого разработчики языка занялись созданием устройства для кабельного телевидения, которое могло бы осуществлять новые виды услуг, например, включать видеосистему по требованию. Вновь ни один производитель этим не заинтересовался.
В 1993-1994 гг. разработчики безрезультатно занимались поисками покупателей продуктов, разработанных в рамках проекта «Green», получившего новое название – «First Person, Inc.». Патрик Нотон, один из основателей группы, налетал в общей сложности более 300 тысяч миль, пытаясь продать технологию.
Работа над проектом была прекращена в 1994 году.
Тем временем в рамках Интернета начала развиваться система под названием «World Wide Web». Ключевым элементом системы является браузер, превращающий гипертекстовые данные в изображение на экране. В 1994 году большинство пользователей применяли некоммерческий браузер Mosaic, разработанный в суперкомпьютерном центре университета штата Иллинойс в 1993г. Частично этот браузер был написан Марком Андреессеном (Mark Andreessen), подрядившимся работать за 6,85 долларов в час. В то время Марк заканчивал университет, и браузер был его дипломной работой. (Затем он достиг известности и успеха как один из основателей и ведущих специалистов компании Netscape).
К 1993 году членам группы разработчиков Java стало очевидно, что проблемы переносимости, часто возникающие при создании кода, предназначенного для встраивания в контролеры, возникают также и при попытках создания кода для Интернета. Фактически та же проблема, для решения которой в мелком масштабе предназначался язык Java, была актуальна в большем масштабе и в среде Интернета. Понимание этого обстоятельства подстегнуло разработчиков перевести внимание с бытовых приборов на программирование для Интернета.[38]
В своем интервью журналу SunWorld Гослинг сказал: «В середине 1994 г. мы поняли, что необходимо создать высококачественный браузер. Такой браузер должен представлять собой приложение, работающее по технологии «клиент-сервер», в которой важно то, что мы и сделали: архитектурная независимость, выполнение в реальном времени, надежность, безопасность – вопросы, которые были не так уж важны для рабочих станций. И мы создали такой браузер».
Сам браузер был разработан Патриком Нотоном и Джонатаном Пэйном (Johnatan Payne). Позднее он был доработан и получил имя Hotjava. Чтобы продемонстрировать все возможности Java, браузер был написан на этом языке. Разработчики браузера наделили свой продукт способностью выполнять код на веб-страницах. Программный продукт, подтверждавший действенность новой технологии, был представлен 23 мая 1995 года на выставке Sun World ’95 и вызвал всеобщий интерес к Java, сохраняющийся и по сей день.