Создание языка Java

Как был создан Язык JavaНачало разработке языка Java было положено в 1991 г. Джеймсом Гослингом (James Gosling), Патриком Нотоном (Patrick Naughton), Крисом Уартом (Chris Warth), Эдом Франком (Ed Frank) и Майком Шериданом (Mike Sheridan), работав­шими в компании Sun Microsystems, Inc. Разработка первой рабочей версии заняла 18 месяцев. Вначале язык получил название “Oak” (Дуб), но в 1995 г. он был пере­именован в "Java”. Между первой реализацией языка Oak в конце 1992 г. и публичным объявлением о создании Java весной 1995 г. в разработке и развитии этого языка приняли участие немало других специалистов. В частности, Билл Джой (Bill Joy), Артур ван Хофф (Arthur van Hoff), Джонатан Пэйн (Jonathan Payne), Франк Йеллин (Frank Yellin) и Тим Линдхольм (Tim Lindholm) внесли основной вклад в развитие исходного прототипа Java.

 

Как ни странно, первоначальной побудительной причиной для создания языка Java послужил совсем не Интернет, а потребность в независящем от конкретной платформы (т.е. архитектурно нейтральном) языке, который можно было бы ис­пользовать для создания программного обеспечения, встраиваемого в различные бытовые электронные устройства, в том числе микроволновые печи и устройства дистанционного управления. Не трудно догадаться, что в контроллерах таких устройств применяются разнотипные процессоры. Но трудность применения С и C++ (как и большинства других языков) состоит в том, что написанные на них программы должны компилироваться для конкретной платформы. И хотя про­граммы на C++ могут быть скомпилированы практически для любого типа про­цессора, тем не менее, для этого потребуется наличие полного компилятора C++, предназначенного для данного конкретного процессора. Но дело в том, что соз­дание компиляторов обходится дорого и отнимает немало времени. Поэтому тре­бовалось более простое и экономически выгодное решение. Пытаясь найти такое решение, Гослинг и другие разработчики начали работу над переносимым, не за­висящим от конкретной платформы языком, который можно было бы использо­вать для создания кода, пригодного для выполнения на разнотипных процессорах в различных средах. И в конечном итоге их усилия привели к созданию языка Java.

Примерно в то время, когда определялись основные характеристики языка Java, появился второй, еще более важный фактор, который должен был сыграть решающую роль в судьбе этого языка. И этим вторым фактором, конечно же, стала Всемирная паутина (веб). Если бы формирование веб не происходило почти одно­временно с реализацией языка Java, он мог бы остаться полезным, но незамечен­ным языком программирования бытовых электронных устройств. По с появлени­ем веб язык Java вышел на передний край разработки языков программирования, поскольку среда веб также нуждалась в переносимых программах.

С самых первых шагов своей карьеры большинству программистов приходится твердо усваивать, что переносимость программ столь же недостижима, сколь и желательна. Несмотря на то что потребность в средствах для создания эффективных, переносимых (не зависящих от конкретной платформы) программ существовала в программировании с самого начала, она отодвигалась на задний план другими, более насущными, задачами. Более того, большая часть отрасли вычислительной техники была разделена на три конкурирующих лагеря (Intel, Macintosh и UNIX), и поэтому большинство программистов оставались на своих закрепленных аппа­ратно-программных рубежах, что несколько снижало потребность в переносимом коде. Тем не менее с появлением Интернета и веб старая проблема переносимости возникла снова, а ее решение стало еще более актуальным. Ведь Интернет пред­ставляет собой разнообразную и распределенную сетевую среду с разнотипными компьютерами, операционными системами и процессорами. Несмотря на то что к Интернету подключены разнотипные платформы, пользователям желательно, чтобы на всех этих платформах можно было выполнять одинаковые программы. То, что в начале было неприятной, но не слишком насущной задачей, стало по­требностью первостепенной важности.

К 1993 г. членам группы разработчиков Java стало очевидно, что пробле­мы переносимости, часто возникающие при создании кода, предназначенного для встраивания в контроллеры, возникают также и при попытках создания кода для Интернета. Фактически та же проблема, для решения которой в мелком мас­штабе предназначался язык Java, была актуальна в большем масштабе и в среде Интернета. Понимание этого обстоятельства вынудило разработчиков Java пере­нести свое внимание с бытовой электроники на программирование для Интернета. Таким образом, Интернет обеспечил крупномасштабный успех Java, несмотря на то, что потребность в архитектурно нейтральном языке программирования по­служила для этого своего рода “первоначальной искрой”.

Как упоминалось ранее, язык Java наследует многие изсвоих характеристик от язы­ков С и C++. Это сделано намеренно. Разработчики Java знали, что использование зна­комого синтаксиса С и повторение объектноориентированных свойств C++ должно было сделать их язык привлекательным для миллионов, имеющих опыт программи­рования на C/C++. Помимо внешнего сходства, в Java используется ряд других харак­терных особенностей, которые способствовали успеху языков С и C++. Во-первых, язык Java был разработан, проверен и усовершенствован людьми, имевшими солид­ный практический опыт программирования. Этот язык разработан с учетом потреб­ностей и опыта его создателей. Таким образом, Java — это язык для программистов. Во-вторых, Java целостен и логически непротиворечив. В-третьих, Java предоставля­ет программисту полный контроль над программой, если не учитывать ограничения, накладываемые средой Интернета. Если программирование выполняется грамотно, это непосредственно отражается на самих программах. В равной степени справедли­во и обратное. Иначе говоря, Java — это язык не для обучающихся программирова­нию, а для тех, кто занимается им профессионально.

Из-за сходства характеристик языков Java и С некоторые склонны считать Java просто “версией языка C++ для Интернета”. Но это серьезное заблуждение. Языку Java присущи значительные практические и концептуальные отличия. Язык C++ дей­ствительно оказал влияние на характеристики Java, но Java не является усовершен­ствованной версией C++. Например, Java несовместим с языком C++. Разумеется, у него немало сходств с языком C++, и в исходном коде программы на Java програм­мирующий на C++ будет чувствовать себя почти как дома. Вместе с тем язык Java предназначен не для замены C++, а для решения одних задач, тогда как язык C++ — для решения других. Оба этих языка будут еще долго сосуществовать.

Как отмечалось в начале главы, развитие языков программирования обусловле­но двумя причинами: адаптацией к изменениям в среде и реализацией новых идей в области программирования. Изменения в среде, которые побудили к разработке языка, подобного Java, вызвали потребность в независящих от платформы программах, предназначенных для распространения в Интернете. Но язык Java изме­няет также подход к написанию программ. В частности, язык Java углубил и усовер­шенствовал объектно-ориентированный подход, использованный в C++, добавил в него поддержку многопоточной обработки и предоставил библиотеку, которая упростила доступ к Интернету. Но столь поразительный успех Java обусловлен не отдельными его особенностями, а их совокупностью как языка в целом. Он явил­ся прекрасным ответом на потребности в то время лишь зарождающейся среды в высшей степени распределенных вычислительных систем. В области разработ­ки программ для Интернета язык Java стал тем, чем язык С стал для системного программирования: революционной силой, которая изменила мир.

 

Связь с языком C#

Многообразие и большие возможности языка Java продолжают оказывать вли­яние на всю разработку языков программирования. Многие из его новаторских характеристик, конструкций и концепций становятся неотъемлемой частью осно­вы любого нового языка. Успех Java слишком значителен, чтобы его можно было игнорировать.

Вероятно, наиболее наглядным примером влияния языка Java на программиро­вание служит язык С#. Он создан в корпорации Microsoft для поддержки платфор­мы .NET Framework и тесно связан ejava. В частности, в обоих этих языках исполь­зуется один и тот же общий синтаксис, поддерживается распределенное программирование и применяется одна и та же объектная модель. Разумеется, у Java и C# имеется целый ряд отличий, но в целом они внешне очень похожи. Ныне такое “перекрестное опыление” Java и C# служит наилучшим доказательством того, что язык Java коренным образом изменил представление о языках программирования и их применении.

 

Вас заинтересует / Intresting for you:

Распространенные заблуждения о...
Распространенные заблуждения о... 1650 просмотров Ирина Светлова Thu, 21 Jun 2018, 18:35:12
Выбор среды для разработки код...
Выбор среды для разработки код... 1615 просмотров Stas Belkov Sun, 10 Jun 2018, 14:21:35
Использование потоков в Java
Использование потоков в Java 81 просмотров Antoni Wed, 12 May 2021, 09:51:36
Аплеты Java и Интернет
Аплеты Java и Интернет 1619 просмотров Ирина Светлова Sat, 09 Jun 2018, 10:17:34
Войдите чтобы комментировать