Файл: История возникновения и развития языка программирования Си (С++) и Java (Сравнительная характеристика).pdf
Добавлен: 27.06.2023
Просмотров: 241
Скачиваний: 3
Большое внимание в языке С++ структурированию программ. Данная необходимость вызвана более большим размером программ со времени появления языка С. Небольшую программу (примерно не более 800 - 1000 строк) можно заставить «из принципа» работать, но скорей всего это приведёт к нагромождению кода сложного для понимания. С большой программой такой фокус уже не выйдет. Если у вашей программы в 8000-10000 строк сложная структура, то вы обнаружите, при исправлении старых ошибок так же быстро будут появляться новые. Идея создания языка С++ была удобная структура, позволяющая работать с большими программами предотвращающая ситуации, когда программисту пришлось бы сталкиваться с текстом программ, например, более 20000 строк. На сегодняшний день можно считать, что данная цель достигнута.
Существуют программы еще большего размера. Но те из них, которые реально эксплуатируются, обычно можно разбить на несколько мелких и практически независимых частей, каждая из которых имеет значительно меньший упомянутого размер. Естественно, трудность написания и сопровождения программы определяется не только числом строк текста, но и сложностью предметной области.
Не каждую часть программы можно сделать понятной, независимой от «железа» и хорошо структурированной. В языке С++ имеются средства, непосредственно и эффективно представляющие аппаратные возможности. Их использование позволяет избавиться от беспокойства о простоте понимания и надёжности программы. Путём предоставления надёжного и простого интерфейса можно скрывать такие части программы.
При использовании языка С++ большой группой программистов в написании большой программы полезную роль играют свойственные языку гибкость, строго типизированные интерфейсы и модульность. Язык С++ как и многие другие языки предоставляет большой выбор инструментов для написания больших программ. В тот момент, когда программа становится слишком большой и проблемы по её созданию, сопровождению переходят из области языка в более широкую плоскость - программных средств и управление проектом. Методы создания универсальных средств, полезных типов, библиотек можно равной степени успешности применять для создания разных по размеру от малых до больших программ. Исходя из того, что все не стандартные программы состоят из некоторого кол-ва и в разной степени зависимых друг от друга частей, то методы написания могут понадобятся разно специализированным программистам.
Существует заблуждение, что написание программы используя подробную систему типов увеличит размер текста, но это заблуждение для языка С++. Написание программы на языке С++ в которой описаны типы формальных параметров функций, определены классы и т.п. обычно бывает короче своего эквивалента на языке С.
Глава 2 (Java)
Начало
Начало событий приходится на декабрь 1990 года. В тот момент о развитии WWW[12] (World Wide Web - "всемирная паутина") никто не мог еще даже подумать. В этот момент всё внимание компьютерной индустрии было приковано к взлету персональных компьютеров. Значительную долю рынка высокопроизводительных станций и серверов занимала фирма Sun Microsystem. Многие эксперты того времени сходились во мнении, что для обычных пользователей «персоналок» фирма Sun ничего предложить не могла. Имеющиеся в её линейки устройств были «слишком сложными, чересчур «тупыми» и очень некрасивыми устройствами».
У одного из членов совета директоров и президент и CEO (исполнительный директор) корпорации Sun[13] Скотта МакНили, был друг и хорошо зарекомендовавший себя как программист Патрик Нотон. Отработав всего 3 года, изъявил о своем желании перейти в компанию NeXT[14]. Своё решение Патрик объяснил просто и коротко: "Они все делают правильно". Скотт задумался на секунду и произнес историческую фразу. Перед уходом он попросил Патрика описать, что в Sun, по его видению делается неправильно. Простой рассказ о проблеме не подходил. Требовалось решение проблемы и при этом не ограничиваясь правилами и традициями, а предложить выход «как будто ресурсы и возможности не ограничены.
Патрик исполнил просьбу Скотта. Под жесткой критикой оказалась новая программная архитектура NeWS[15] на которой фирма работала в тот момент, но дал высокие оценки только что объявленной операционной системе NeXTstep[16]. Ещё одно предложение Патрика было о привлечении профессиональных художников-дизайнеров, чтобы сделать пользовательские интерфейсы Sun более дружелюбными и привлекательными; выбрав одно средство разработки и сконцентрировать усилия вместо нескольких оконных технологий на одной. (Нотону приходилось поддерживать множество различных комбинаций технологий, интерфейсов и платформ, используемых в компании); наконец, уволить большинство сотрудников из Window Systems Group (так как исполнив предыдущие пункты, они станут просто не нужны).
Ожидания Нотона были, что его письмо просто проигнорируют. Но решил подождать с переходом в NeXT на некоторое время ожидая ответной реакции. И реакция превзошла всего его ожидания.
Скотт МакНили переслал письмо Патрика Нотона всему управляющему составу компании, а те в свою очередь переслали его своим ведущим специалистам. Отклик пришёл буквально от всех, и, по общему мнению, Нотон описал о том о, чем все думали, но боялись высказаться. Решающей стала поддержка Билла Джоя и Джеймса Гослинга. Билл Джой - был один из основателей и вице-президентом Sun, а также участник проекта по созданию операционной системы UNIX в университете Беркли. Джеймс Гослинг попал в кампанию Sun в 1984 году (перед этим он работал в исследовательской лаборатории IBM) и был ведущим разработчиком, а также автором первой редакции текстового редактора EMACS[17] на языке C. У этих людей имелся огромный авторитет в корпорации.
Вдохновлённый успехом Нотон не останавливаться на достигнутом, он решил предложить какой-то совершенно новый проект. Объединившись с командой технических специалистов, и они просидели до половины пятого утра, разрабатывая базовые концепции нового проекта. Их получилось всего три:
а) Потребитель – это главное и все строится исключительно вокруг его интересов;
б) Небольшая группа инженеров должна была спроектировать небольшую аппаратно-программную платформу;
в) Спроектированную платформу требовалось воплотить в устройстве, предназначенном для персонального пользования, простом и удобном в обращении - т.е. создать понятный для обычных людей компьютер.
Данных идей хватило для организации презентации организованной Джоном Гейдж (руководитель научных исследований Sun) для высших членов руководства компании. Условия, которые Нотон считал необходимыми для успешного развития данного проекта: группа будет работать вне офиса Sun чтобы их революционные идеи не встречали сопротивления; проект будет засекречен для всех кроме членов высшего руководства; программная и аппаратная могут быть несовместимы с продуктами Sun; на первый год работы группе требовалось финансирование в размере миллиона долларов.
Проект Green
5 декабря 1990 года, компания Sun сделала Нотону встречное предложение. Руководство приняло все его предложения. В этот же день он должен был перейти в компанию NeXT. Была поставлена задача - "создать что-нибудь необычайное". 1 февраля 1991 года Патрик Нотон, Джеймс Гослинг и Майк Шеридан начали создание проекта, который в дальнейшем получил название Green.
Они поставили себе амбициозную цель - выяснить, какой будет следующая волна развития индустрии компьютеров (первыми считаются появление полупроводников и персональных компьютеров) и какие понадобится разработать продукты для успешного участия в ней. Проект с самого начала не был исследовательским, а задача была разработать реальный продукт, устройство.
На ежегодном весеннем собрании Sun в 1991 года Гослинг подметил, что компьютерные чипы получили широкое распространение, они устанавливаются в тостерах, видеомагнитофонах, даже в дверных ручках гостиниц! Даже сегодня мы можем увидеть несколько пультов ДУ для различных устройств – музыкального центра, телевизора и телевизионные приставки. У группы появилась идея создать небольшое устройство с жидкокристаллическим сенсорным экраном, которое будет взаимодействовать с пользователем с помощью анимации, показывая, каким устройством и как можно управлять. Для создания такого устройства требовалось специализированная графическая система разработкой которой и занялся Нотон, Гослинг занялся разработкой программного обеспечения, а Шеридан занимался бизнес-вопросами.
В апреле 1991 года команда съезжает из офиса корпорации Sun, прерывая связь даже с внутренней сети корпорации, и переезжает в новое помещение. Покупаются различные бытовые электронные устройства, такие как игровые приставки Nintendo, пульты дистанционного управления, телевизионные приставки и разработчики целыми днями играют в различные игры чтобы лучше понять, как сделать пользовательский интерфейс доступным и лёгким в понимании и использовании. Гослинг приводит пример, что современные тостеры с микропроцессорами имеют точно такой же интерфейс как и тостер его мамы, который служит ей уже 42 года. Довольно быстро исследователи понимают, что все устройства построены на разных центральных процессорах. И исходя из это добавление новых функциональных возможностей сильно затруднено, так как необходимо учитывать ограничения и, как правило, довольно скудные возможности используемых чипов. Однажды Гослинг побывал на концерте, где смог сам наблюдать сложное переплетение проводов, полуавтоматических прожекторов и огромное количество колонок, которые, казалось, согласованно двигаются согласованно, он понял, что будущее - за объединением компьютеров, сетей и других электронных устройств в единую согласованную инфраструктуру.
Изначально Гослинг предпринял попытку модифицировать язык С++, чтобы создать язык для написания программ, минимально ориентированных на конкретные платформы. Очень быстро стало ясно, что это практически невозможно. Основное преимущество языка С++ - скорость программ, но не их надежная работоспособность. Но надежность работы для обычных пользователей должна быть так же абсолютно гарантирована, так же как и совместимость обычных электрических вилки и розетки. Исходя из этого в июне 1991 года Гослинг, который свой первый язык программирования написал в 14 лет, начинает разработку языка для замены C++. Разрабатывая новый каталог и думая над его названием, он взглянул в окно, и взгляд его упал на растущем под окном дереве. Так язык и получил свое первоначальное название - OaK (дуб). Спустя несколько лет, были проведены маркетинговых исследований и язык сменил имя на Java.
Через несколько месяцев разработки проект дошёл до стадии, когда стала возможна совместимость нового языка с графической системой, над которой работал Нотон. В августе того же года команда выпустила первые программы, демонстрирующие возможности разрабатываемого устройства.
Сама идея создания заключалась в создании устройства размером с обычный пульт дистанционного управления, работать от батареек, иметь удобный и забавный графический интерфейс и стать любимой и полезной игрушкой для дома. Для создания этого устройства имеющий аналогов прибор, находчивые инженеры во применили "технологию молотка". Они брали какое-нибудь устройство, в котором были нужные детали или микросхемы, разбивая его молотком добывали необходимые части. Таким способом были получены основной жк экран, сенсорный экран и миниатюрные встроенные колонки. Центральный процессор и материнская плата были специально разработаны на основе высокопроизводительной рабочей станции Sun. Было придумано и оригинальное название - *7, или Star7 (комбинация этих кнопок позволяла ответить с любого аппарата в офисе на звонок любого другого телефона, но поскольку редко кого из инженеров можно было застать на рабочем месте, эти слова очень часто громко кричали на весь офис). Интерфейсу для придания большей привлекательности инженеры разработали забавного персонажа по имени Дьюк (Duke), готовый всегда помочь пользователю выполнить его задачу. Позднее он стал спутником Java, талисманом - встречается во многих документах, статьях, примерах кода.
Инженеры занимались совершенно новой задачей. Ни у кого не было опыта, не существовало каких-либо наработок в этой области. Команда инженеров трудилась, не отрываясь ни на один день. В августе 1991 года состоялась первая презентация для Скотта МакНили и Билла Джоя. В ноябре группа снова подключилась к сети Sun по модемной линии. Чем больше развивался проект, тем больше новых специалистов задействовалось в команде для разработки. Где-то в то же время и было придумано название для той идеологии, которую они создавали,- 1st Person (условно можно перевести как "первое лицо").
4 сентября 1992 года Star7 был завершен и продемонстрирован Скотту МакНили. Это представляло из себя небольшое устройство с 5-ти цветным (16 бит) сенсорным экраном, без кнопок. Для включения требовалось просто дотронуться до экрана. Интерфейс был очень похож на мультик - никаких меню! Дьюк ходил по комнатам интерактивного дома, для его управления надо было просто водить по экрану пальцем – без каких-либо специальных средств управления. Можно было взять виртуальную телепрограмму с нарисованного дивана, выбрать передачу и "перетащить" ее на изображение видеомагнитофона, чтобы запрограммировать его на запись.
Результат был сверх все ожидания! Ничего похожего на рынке не было. Карманные компьютеры (PDA)[18] начиная с Newton появились значительно позже. Как и цветные дисплеи. Это была эра 286i и 386i процессоров Intel (486i уже появились, но стоили очень дорого) и MS DOS, даже наличие мыши еще не было обязательным атрибутом компьютера.
В руководстве Sun царил восторг так как теперь они обладали отличным оружием в борьбе с такими могучими гигантами, как HP, IBM и Microsoft. Разработанная ими технология была способна не только на демонстрацию мультиков. Объектно-ориентированный язык OaK обещал стать отличным инструментом для написания программ способных работать в сети. Его объекты, свободно распространяемые по сети, работали бы на любом устройстве, начиная с персонального компьютера и заканчивая обычными, тостерами и видеомагнитофонами. На презентациях Нотон представлял области в которых было бы успешное применение OaK, изображая домашние компьютеры, банки, телевизоры, телефоны, машины и соединяя их одной сетью. Например приложение для работы с электронной почтой могло было быть построено в виде группы таких объектов и их расположение на одном было не обязательным. Так как язык был ориентирован на распределенную архитектуру, OaK имел встроенные механизмы безопасности, шифрования, процедур аутентификации, а значит, незаметные и удобные для пользователя.