Полное руководство. С# 4.0 - Шилдт Герберт
Важно понимать, что разработка C++ не была попыткой создать совершенно новыйязык программирования. Напротив, это была попытка усовершенствовать уже существовавший довольно удачный язык. Такой подход к разработке языков программирования, основанный на уже существующем языке и совершенствующий его далее,превратился в упрочившуюся тенденцию, которая продолжается до сих пор.Появление Интернета и Java
Следующим важным шагом в развитии языков программирования стала разработка Java. Работа над языком Java, который первоначально назывался Oak (Дуб), началасьв 1991 году в компании Sun Microsystems. Главной "движущей силой" в разработке Javaбыл Джеймс Гослинг (James Gosling), но не малая роль в работе над этим языком принадлежит также Патрику Ноутону (Patrick Naughton), Крису Уорту (Chris Warth), ЭдуФрэнку (Ed Frank) и Майку Шеридану (Mike Sheridan).
Java представляет собой структурированный, объектно-ориентированный языкс синтаксисом и конструктивными особенностями, унаследованными от C++. Нововведения в Java возникли не столько в результате прогресса в искусстве программирования, хотя некоторые успехи в данной области все же были, сколько вследствиеперемен в вычислительной среде. До появления на широкой арене Интернета большинство программ писалось, компилировалось и предназначалось для конкретногопроцессора и операционной системы. Как известно, программисты всегда стремилисьповторно использовать свой код, но, несмотря на это, легкой переносимости программ из одной среды в другую уделялось меньше внимания, чем более насущнымзадачам. Тем не менее с появлением Интернета, когда в глобальную сеть связывались разнотипные процессоры и операционные системы, застаревшая проблема переносимости программ вновь возникла с неожиданной остротой. Для решения проблемыпереносимости потребовался новый язык, и им стал Java.Самым важным свойством (и причиной быстрого признания) Java является способность создавать межплатформенный, переносимый код, тем не менее, интересноотметить, что первоначальным толчком для разработки Java послужил не Интернет,а потребность в независящем от платформы языке, на котором можно было бы разрабатывать программы для встраиваемых контроллеров. В 1993 году стало очевидно,что вопросы межплатформенной переносимости, возникавшие при создании кодадля встраиваемых контроллеров, стали актуальными и при попытке написать код дляИнтернета. Напомним, что Интернет — это глобальная распределенная вычислительная среда, в которой работают и мирно "сосуществуют" разнотипные компьютеры.И в итоге оказалось, что теми же самыми методами, которыми решалась проблемапереносимости программ в мелких масштабах, можно решать аналогичную задачув намного более крупных масштабах Интернета.Переносимость программ на Java достигалась благодаря преобразованию исходного кода в промежуточный, называемый байт-кодом. Этот байт-код затем выполнялсявиртуальной машиной Java (JVM) — основной частью исполняющей системы Java. Таким образом, программа на Java могла выполняться в любой среде, для которой быладоступна JVM. А поскольку JVM реализуется относительно просто, то она сразу жестала доступной для большого числа сред.Применением байт-кода Java коренным образом отличается от С и C++, где исходный код практически всегда компилируется в исполняемый машинный код, который, в свою очередь, привязан к конкретному процессору и операционной системе.Так, если требуется выполнить программу на С или C++ в другой системе, ее придетсяперекомпилировать в машинный код специально для данной вычислительной среды.Следовательно, для создания программы на С или C++, которая могла был выполняться в различных средах, потребовалось бы несколько разных исполняемых версий этойпрограммы. Это оказалось бы не только непрактично, но и дорого. Изящным и рентабельным решением данной проблемы явилось применение в Java промежуточногокода. Именно это решение было в дальнейшем приспособлено для целей языка С#.Как упоминалось ранее, Java происходит от С и C++. В основу этого языка положенсинтаксис С, а его объектная модель получила свое развитие из C++. И хотя код Java несовместим с кодом С или C++ ни сверху вниз, ни снизу вверх, его синтаксис очень похож на эти языки, что позволяет большому числу программирующих на С или C++ безособого труда перейти на Java. Кроме того, Java построен по уже существующему образцу, что позволило разработчикам этого языка сосредоточить основное внимание нановых и передовых его свойствах. Как и Страуструпу при создании C++, Гослингу и егоколлегам не пришлось изобретать велосипед, т.е. разрабатывать Java как совершенноновый язык. Более того, после создания Java языки С и C++ стали признанной основой,на которой можно разрабатывать новые языки программирования.Создание C
Несмотря на то что в Java успешно решаются многие вопросы переносимости программ в среде Интернета, его возможности все же ограничены. Ему, в частности, недостает межъязыковой возможности взаимодействия, называемой также многоязыковымпрограммированием. Это возможность кода, написанного на одном языке, без труда взаимодействовать с кодом, написанным на другом языке. Межъязыковая возможностьвзаимодействия требуется для построения крупных, распределенных программныхсистем. Она желательна также для создания отдельных компонентов программ, поскольку наиболее ценным компонентом считается тот, который может быть использован в самых разных языках программирования и в самом большом числе операционных сред.
Другой возможностью, отсутствующей в Java, является полная интеграция с платформой Windows. Несмотря на то что программы на Java могут выполняться в среде Windows, при условии, что установлена виртуальная машина Java, среды Javaи Windows не являются сильно связанными. А поскольку Windows является самойраспространенной операционной системой во всем мире, то отсутствие прямой поддержки Windows является существенным недостатком Java.
Для удовлетворения этих и других потребностей программирования корпорацияMicrosoft разработала в конце 1990-х годов язык C# как часть общей стратегии .NET.Впервые он был выпущен в виде альфа-версии в середине 2000 года. Главным разработчиком C# был Андерс Хейльсберг — один из ведущих в мире специалистов по языкам программирования, который может похвалиться рядом заметных достиженийв данной области. Достаточно сказать, что в 1980-е годы он был автором очень удачнойи имевшей большое значение разработки — языка Turbo Pascal, изящная реализациякоторого послужила образцом для создания всех последующих компиляторов.
Язык C# непосредственно связан с С, C++ и Java. И это не случайно. Ведь это три самых широко распространенных и признанных во всем мире языка программирования.Кроме того, на момент создания C# практически все профессиональные программисты уже владели С, C++ или Java. Благодаря тому что C# построен на столь прочном ипонятном основании, перейти на этот язык из С, C++ или Java не представляло особоготруда. А поскольку и Хейльсбергу не нужно (да и нежелательно) было изобретать велосипед, то он мог сосредоточиться непосредственно на усовершенствованиях и нововведениях в С#.
На рис. 1.1 приведено генеалогическое дерево С#. Предком С# во втором поколенииявляется С, от которого он унаследовал синтаксис, многие ключевые слова и операторы. Кроме того, C# построен на усовершенствованной объектной модели, определенной в C++. Если вы знаете С или C++, то будете чувствовать себя уютно и с языком С#.
Рис. 1.1. Генеалогическое дерево C#
Родственные связи C# и Java более сложные. Как пояснялось выше, Java также происходит от С и C++ и обладает общим с ними синтаксисом и объектной моделью. Каки Java, C# предназначен для получения переносимого кода, но C# не происходит непосредственно от Java. Напротив, C# и Java — это близкие, но не кровные родственники,имеющие общих предков, но во многом отличающиеся друг от друга. Впрочем, есливы знаете Java, то многие понятия C# окажутся вам знакомыми. С другой стороны,если вам в будущем придется изучать Java, то многие понятия, усвоенные в С#, могутбыть легко распространены и на Java.
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Полное руководство. С# 4.0 - Шилдт Герберт, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


