История языка C++

Язык С (читается "Си") создан в начале 70х годов Дэнисом Ритчи в Bell Telephone Laboratories для ОС UNIX. Предшественником C является язык B ("Би"), созданный Кэном Томпсоном, который в свою очередь имеет корни в языке Мартина Ричардсона BCPL. Язык BCPL был создан в 1967 году как язык для написания компиляторов и программного обеспечения операционных систем. Кен Томпсон предусмотрел много возможностей в своем языке B для создания ранних версий операционной системы Unix в Bell Laboratories в 1970 году на компьютере DEC PDP-7. Языки BCPL и B были языками без определения типов данных - каждай элемент данных занимал одно "слово" в памяти, и бремя обработки элемента данных, например, как целого или действительного числа падало на плечи программиста.

Язык C был первоначально реализован на компьютере DEC PDP-11 в 1972 году. С использует многие важные концепции BCPL и B, а также добавляет типы данных и другие свойства. Первоначально C приобрел широкую известность как язык разработки операционной системы Unix. Сегодня фактически все новые операционные системы написаны на C или C++. В течение двух последних десятилетий C стал доступным для большинства компьютеров. C является независимым от аппаратных средств. При тщательной разработке на C можно написать мобильные программы, переносимые на большинство компьютеров.

В 1978 г. Брайн Керниган и Денис Ритчи написали книгу "Язык программирования Си" (издательство Prentice-Hall) которую можно рассматривать как некоторый стандарт языка "K & R". Ее называют белой книгой (Вы можете найти ее в разделе "Книги и учебники").

Широкое распространение языка C на различных типах компьютеров (иногда называемых аппаратными платформами) привело, к сожалению, ко многим вариациям языка. Они были похожи, но несовместимы друг с другом. Это было серьезной проблемой для разработчиков программ, нуждавшихся в написании совместимых программ, которые можно было бы выполнять на нескольких платформах. Стало ясно, что необходима стандартная версия C. В 1983г. ANSI (Американский Национальный Комитет Стандартов) сформировал технический комитет X3J11 для создания стандарта языка C (чтобы "обеспечить недвусмысленное и машинно-независимое определение языка"). В 1989 стандарт был утвержден. ANSI скооперировался с ISO (Международной Организацией Стандартов), чтобы стандартизовать C в международном масштабе; совместный стандарт был опубликован в 1990 году и назван ANSI/ISO 9899:1990. Этот стандарт усовершенствуется до сих пор и поддерживается большинством фирм разработчиков компиляторов.

С++ был разработан Бьерном Страуструпом. "Я придумал C++, записал его первоначальное определение и выполнил первую реализацию. Я выбрал и сформулировал критерии проектирования C++, разработал его основные возможности и отвечал за судьбу предложений по расширению языка в комитете по стандартизации C++, - пишет автор самого популярного языка программирования. - Язык C++ многим обязан языку C, и язык C остается подмножеством языка C++ (но в C++ устранены несколько серьезных брешей системы типов C). Я также сохранил средства C, которые являются достаточно низкоуровневыми, чтобы справляться с самыми критическими системными задачами. Язык C, в свою очередь многим обязан своему предшественнику, BCPL; кстати, стиль комментариев // был взят в C++ из BCPL. Другим основным источником вдохновения был язык Simula67. Концепция классов (с производными классами и виртуальными функциями) была позаимствована из него. Средства перегрузки операторов и возможность помещения объявлений в любом месте, где может быть записана инструкция, напоминает Algol68.

Название C++ выдумал Рик Масситти. Название указывает на эволюционную природу перехода к нему от C. "++" - это операция приращения в C. Чуть более короткое имя C+ является синтаксической ошибкой; кроме того, оно уже было использовано как имя совсем другого языка. Знатоки семантики C находят, что C++ хуже, чем ++C. Названия D язык не получил, поскольку он является расширением C и в нем не делается попыток исцеляться от проблем путем выбрасывания различных особенностей... Изначально C++ был разработан, чтобы автору и его друзьям не приходилось программировать на ассемблере, C или других современных языках высокого уровня. Основным его предназначением было сделать написание хороших программ более простым и приятным для отдельного программиста. Плана разработки C++ на бумаге никогда не было; проект, документация и реализация двигались одновременно. Разумеется, внешний интерфейс C++ был написан на C++. Никогда не существовало "Проекта C++" и "Комитета по разработке C++". Поэтому C++ развивался и продолжает развиваться во всех направлениях, чтобы справляться со сложностями, с которыми сталкиваются пользователи, а также в процессе дискуссий автора с его друзьями и коллегами".

Java и C#

Одной из быстро развивающихся областей программирования - интернет, во всем его разнообразии. Для работы во "Всемирной Паутине" каждый день появляются новые программы, а старые - неприрывно совершенствуются. И действительно, Интернет за последние годы сделал такой огромный прыжок в сторону проникновения во все сферы человеческой жизни, что не нужно быть пророком, чтобы сказать: "Интернет вскоре будет такой же привычной вещью, как сеть булочных в вашем городе".

Именно по этой причине разработчики компиляторов начали искать универсальный язык программирования, чтобы воплотить в единую систему все подключенные к сети приборы, будь то суперкомпьютеры или какие-нибудь холодильники с автоматическим заказом закончившихся продуктов. Именно для таких целей в 1991 году компания Sun Microsystems финансировала внутрикорпоративнный исследовательский проект под кодовым названием "Green". В результате работы был создан язык на основе языка C и C++, который его создателем, Джеймсом Гослингом (James Gosling), был назван "Oak", в честь дуба, растущего за окном здания Sun. Позже было обнаружено, что язык программирования с названием Oak уже существует. Когда группа разработчиков фирмы Sun зашла в меcтное кафе, было предложено имя Java, и оно закрепилось за языком.

Однако проект "Green" столкнулся с некоторыми трудностями. Рынок интеллектуальных бытовых электронных приборов (на который ориентировались разработки) развивался не так быстро, как ожидали разработчики Sun. Но благодаря взрыву популярности WWW в 1993 году, разработчики Sun увидели непосредственный потенциал использования Java для создания Web-страниц с тук называемым динамическим содержимым (dynamic content).

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

В июне 2000 года компания Microsoft анонсировала платформу .NET и новый язык программирования, получивший название C# (читается "Си шарп"). C# - это строго типизированный объектно-ориентированный язык, призванный обеспечить оптимальное сочетание удобства, простоты, выразительности и производительности. Платформа .NET основана на использовании общей среды выполнения кода CLR (Common Language Runtime), подобной виртуальной Java-машине, и набора библиотек, доступных для ряда языков программирования. Независимо от того, какой язык используется в процессе разработки, программа компилируется в промежуточный код IL (Intermediate Language). C# и .NET в некотором смысле являются "родственными душами": некоторые свойства языка специально разрабатывались, чтобы обеспечить комфортную работу в среде .NET, в то же время и некоторые свойства .NET специально закладывались для поддержки C#, хотя .NET нацелена на использование многих языков программирования. Язык C# разрабатывался с учетом опыта многих предшествующих ему языков программирования, но в первую очередь, конечно, C++ и Java. Родителями C# стали Anders Hejlsberg, получивший известность, как автор Delphi, и Scott Wiltamuth.