Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

История возникновения и развития языка программирования Си (С++) и Java

Содержание:

Введение

В наше время довольно велико значение информационных технологий. На сегодняшний момент тяжело представить нашу жизнь без компьютера и Интернета. Но для того, чтобы были созданы программы, необходимы языки программирования. Программист. в данное время, является одной из самых важных профессий, и ее важность будет возрастать. Так обуславливается личный интерес исследователей к данной тематике. Это и обуславливает актуальность темы работы.

Прогресс компьютерных технологий определяет процесс появления различных новых знаковых систем для того, чтобы записывались алгоритмы, то есть языки программирования. Смыслом появления такого языка является оснащенный набор вычислительных формул дополнительной информации, превращающий в алгоритм данный набор.

Языку программирования свойственные две связанные между собой цели: он дает программисту аппарат для того, чтобы задать действия, которые должны быть выполнены, и формируются концепции, используемые программистом, размышляя о том, что делать. Ответом на первую цель является язык, который настолько «близкий к машине», что все основные машинные аспекты могут легко и просто быть использованы для программиста очевидным образом. Для ответа на вторую цель идеальным является язык, который настолько «близкий к решаемой задаче», чтобы её концепция решения может быть выражена коротко и прямо.

В настоящее время считают господствующим языком, котоырй используют для того, чтобы разра­ботать коммерческие программные продукты. За последние годы данное господство поколебалось так как были аналогичные претензии от такого языка как Java, но при этом общественное мнение качнулось в другую сторону, и множество из программистов, которые бросили ради Jаvа, за последнее время вернулись к своей прежней привязанности. При этом оба языка являются похожими, что, если вы изучаете один из них, то автоматически усваиваете 90% другого.

Цель работы: Изучить историю возникновения и развития языка программирования Си и Java. Для того, чтобы достигнуть эту цель необходимо было решить такие задачи:

  1. Изучить источники информации по теме;
  2. Узнать историю языков Си и Java;
  3. Рассмотреть развитие языков Си и Java;

Объект исследования: Языки программирования Си и Java.

Предмет исследования: История, структура, польза, потенциал таких языков программирования, как Си и Java.

Выполненная работа состоит из введения, одной главы из трех параграфов, заключения и списка литературы.

1. История возникновения и развития языка программирования С++

1.1. Возникновение и эволюция языка C++

Разработчиком языка и создателем первого транслятора является Бьерн Страуструп. Он яляется сотрудником в научно-исследовательском вычислительном центре AT&T Bell Laboratories в Мюррей Хилл (Нью-Джерси, США). Им было получено звание магистра математики и вычислительной техники в университете г. Аарус (Дания), при этом докторское звание по вычислительной технике им было получено в кэмбриджском университете (Англия). Специализацией его является область распределенных систем, операционных систем, программирования и моделирования. Вместе с М. А. Эллисом они являются авторами по полному руководству по языку , которое носит название «Руководство по с примечаниями».

Несомненно , обязан языку , который сохраняется, являясь его подмножеством. Сохраняются и все свойственные средства низкого уровня, которые предназначены для того, чтобы решить самые насущные задачи в системном программировании. , в свою очередь, обязан многим своему предшественнику языку . Комментарий языка восстановлен в . Еще один из источников вдохновения является язык , так как именно из него заимствуется концепция классов (совместно c производными классами и виртуальными функциями). Возможность в выполнять перегрузки операций и свобода размещения описаний всюду, где встречается оператор, при этом напоминает язык Алгол-68 [4].

Наиболее ранние версии языка, которые носят название « с классами», были использованы, начиная с 1980 г. Данный язык смог возникнуть потому, что автору необходимо было написать программы моделирования, которые управляются прерываниями. Язык является идеально подходящим для этого, если не учитывать эффективность. Язык « с классами» был использован для решения больших задач в моделировании. Строгая проверка была в возможности написания на нем программ, для которых являются критичными ресурсы памяти и времени. В этом языке не хватало перегрузки ссылок, операций, виртуальных функций и множества других возможностей. Впервые выходит за пределы исследовательской группы, в которой работал автор, в июле 1983 г., но тогда множество из возможностей не были еще разработаны.

Название (си плюс плюс) придумал Рик Маскитти летом в 1983 г. Данное название смогло отразить эволюционный характер в изменениях языка . Обозначение означает операцию наращивания . Если использовать немного короче имя , то это является синтаксической ошибкой. К тому же оно уже было использовано, как название совершенно другого языка. Знатоками семантики находят, что хуже, чем . Языком не получено названия , так как он является не чем иным как расширение , и при этом в нем нет попыток для того, чтобы решать какие-либо из проблем за счет того, что происходит отказ от возможностей .

Изначально задумывался, чтобы автор и его друзья не программировали на ассемблере, или других современных языках высокого уровня. Его основным предназначением является упрощение и сделать процесс программирования для отдельного взятого программиста наиболее приятным. До недавнего времени не было в планах разработки на бумаге. Проектирование, реализация и документация шли параллельно. Не существовало никогда «проекта » или «Комитета по разработке ». Соответственно язык развивался и развивается сейчас для того, чтобы было возможно преодолеть все проблемы, с которыми пользователи сталкиваются. Толчками к развитию являются и обсуждения автором с его друзьями и коллегами всех проблем языка [6].

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

Другие из расширений, которые вводились в период между 1985 и 1991 г.г. (такие как статические функции-члены, множественное наследование и чистые виртуальные функции), появились, как результат обобщения опыта программирования на и были почерпнуты из других языков.

За этот период расширения, которые были сделаны прежде всего направлялись на то, чтобы повысить выразительность , как язык абстракции данных и объектно-ориентированного программирования в общем, также как средства для того, чтобы создать высококачественные библиотеки с пользовательскими типами данных в частности [8].

Около 1987 г. стало понятно, что работа по стандартизации является неизбежной, и необходимо срочно создать основы для неё.

Фирмой AT&T Bell Laboratories был внесен в эту работу основной вклад. Порядка ста представителей из около 20 организаций изучали и комментировали то, что явилось современной версией в справочном руководстве и исходными материалами для ANSI по стандартизации . Таким образом, по инициативе фирмы Hewlett-Packard в декабре 1989 г. в составе ANSI образовался комитет X3J16.

Во время разработки языка один из важных критериев являлся простота. Когда возникал вопрос, а что возможно упростить: руководство по языку и какую-либо другую документацию или транслятор, то выбрали первое. Совместимости с языком придавалось огромное значение, что затруднило удалить его синтаксис.

У не существует типов данных и элементарных операций на высоком уровне. Программирование на сводится к тому, чтобы были определены универсальные или зависящие от области приложения типов. Хорошо продуманный пользовательский тип от встроенного типа только отличается лишь способом определения, но не способом применения.

Из языка были исключены возможности, приводящие к накладным расходам памяти или времени выполнения, при этом даже если они не используются непосредственно в программе. К примеру, отвергнуто было предложение хранить в каждом из объектов некоторую служебную информацию.

Язык был спроектирован для того, чтобы можно было использовать его в довольно традиционной среде, а именно: в системе программирования операционной системы . Но существуют вполне обоснованные доводы для того, чтобы использовать в более богатой программной среде. Такие возможности, как развитые системы трансляции, динамическая загрузка и базы данных для того, чтобы хранить определения типов, возможно успешно использовать не причиняя ущерб языку [9].

Типы и механизмы упрятывания данных рассчитаны на определенный синтаксический анализ, который проводится транслятором для того, чтобы обнаружить случайную порчу данных. Ими не обеспечиваются секретность данных и защита от умышленного нарушения правил доступа к ним. Но при этом данные средства возможно свободно использовать, не боясь то, что будут причинены накладные расходы памяти и времени выполнения программы. Учитывается то, что конструкцию языка активно используют тогда, когда она не только записывается изящно на нем, но и вполне по средствам обычным программам.

Структура и эффективность

Язык программирования был задуман как язык, который будет:

  • Лучше языка ;
  • Поддерживать абстракцию данных;
  • Поддерживать объектно-ориентированное программирование.

является языком общего назначения и при этом он был задуман, чтобы программисты получали удовольствие от программирования. Если исключить второстепенные детали, то он содержит язык как подмножество. При этом язык расширился посредством введения эффективных и гибких средств, которые предназначены для того, чтобы строить новые типы. Программисты структурируют свои задачи, определяя новые типы, точно соответствующие понятиям предметной области задачи. Данный метод в построении программы носит название абстракция данных. Информацию о типах содержат некоторые объекты типов, которые определяются пользователем. С данными видами объектами возможно работать просто и надежно даже тогда, когда этот тип невозможно установить во время стадии трансляции. Программирование при использовании таких объектов носит название объектно-ориентированное. Данный метод применяется правильно, то тогда становятся понятнее и короче программы, а также их сопровождение значительно упрощается [7].

Ключевое понятие – это класс. Классом называется тип, определяемый пользователем. Посредством классов происходит упрятывание данных, их инициализацию, динамическое задание типов, неявное преобразование пользовательских типов, контролируемое пользователем управление памятью и средства для того, чтобы перегрузить операции. В языке концепции контроля типов и модульного построения программ реализуются более полноценно нежели в . Помимо этого содержит усовершенствования, которые напрямую с классами не связаны: функции-подстановки, перегрузка имен функций, символические константы, стандартные значения параметров функций, операции управления свободной памятью и ссылочный тип. В сохраняются все возможности , которые обеспечивают эффективную работу с основными объектами и при этом отражают аппаратную «реальность» (байты, слова, разряды, адреса и т.д.). Что помогает очень эффективно реализовать пользовательские типы.

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

Нет понятия, что один из языков лучше, чем другой лишь потому, что в нем присутствуют возможности, которые отсутствуют в другом. Порой бывает всё наоборот. Наиболее важным является не то, какие возможности присущи языку, а то, насколько возможности, которые имеются в нем, поддерживают выбранный стиль программирования для определённых задач [5].

Данный язык был спроектирован как «лучший », тот который поддерживает абстракцию данных и объектно-ориентированное программирование. Но он при этом должен являться пригодным для множества основных задач в системном программировании.

  • Основной трудностью для языка, который создан для расчета на методы упрятывания данных, абстракции данных и объектно-ориентированного программирования, является то, что данный язык должен:
  • Идти на традиционных машинах;
  • Сосуществовать с традиционными операционными системами и языками;
  • Соперничать с традиционными языками программирования в эффективности;
  • Выполнения программы;
  • Быть пригодным для всех основных областях приложения.

Это означает, что должна быть возможность для того, чтобы производились эффективные числовые операции и средства с таким доступом к памяти, позволяющий на этом языке написать драйверы для устройств. Помимо этого, необходимо уметь написать вызовы функций в довольно непривычной записи, которая принята для того чтобы происходили обращения в традиционных операционных системах. И естественно, должна быть возможность из языка, который поддерживает объектно-ориентированное программирование, вызвать функции, которые были написаны на других языках, а также вызывать функцию из других языков на этом языке, который поддерживает объектно-ориентированное программирование.

Что важно, не стоит рассчитывать на широкое использование искомого языка программирования, как языка, имеющего общее назначение, если его реализация полностью полагается на возможности, отсутствующие в машинах, у которых традиционная архитектура.

Если не вводится в язык возможность низкого уровня, то поэтому придется для основных задач из большинства областей приложения использовать некоторые языки низкого уровня, к примеру или ассемблер. Но был спроектирован на расчет, что в нём возможно все сделать, что допустимо на , при этом не увеличивая время на его выполнения. Вообще, был спроектирован, исходя из принципа, что не должны возникать никакие дополнительные затраты памяти и времени.

Язык проектировался исходя из расчета на современные методы трансляции, обеспечивающие проверку согласованности программы, насколько она эффективна и компактна в представлении. Основное средство борьбы со сложностью программ – это инкапсуляция и строгий контроль типов. В особенности это касаемо больших программ, которые создают многие люди. Пользователь может быть не одним из создателей такого рода программ, и при этом вообще не являться программистом. Так как никакую настоящую программу невозможно написать, не поддерживая библиотеки, которые создаются другими программистами [3].

был спроектирован для того, чтобы поддерживать тот принцип, что любая программа – это модель некоторых понятий, которые существуют в реальности, а класс – это конкретное представление понятия, которое взято из приложения. Таким образом классы пронизывают всю программу на , и применяются жесткие требования на гибкость в понятии класс, компактность объектов в классе и их эффективное использование. Если работа с классами является неудобной или слишком накладной, то классы просто не используют, и программы будут являться программами на «лучшем ». То приходим к выводу, что пользователь не сможет насладиться теми возможностями, ради которых был создан язык.

Развивается язык на базе языка , и, при этом есть исключение, сохранен, как подмножеств . Базовый язык спроектирован так, что есть очень тесная связь между операциями, типами, объектами и операторами, с которыми и работает машина, то есть символами, числами и адресами. За исключением операций , и , а также проверяемого блока, для того, чтобы выполнить операторы и выражения не требуется скрытая динамическая аппаратная или программная поддержка [5].

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

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

Вывод: является один из самых популярных языков программирования, его широко используют для того, чтобы разработать программное обеспечение. Его область применения включает в себя создание операционных систем, драйверов устройств, различных прикладных программ, приложений для встраиваемых систем, высокопроизводительных серверов, а также возможно создание развлекательных приложений. Существует много реализаций языка , являющиеся как бесплатные, так и коммерческие и для разных платформ [9].

Язык стал стремительным и мощным рывком при развитии программирования. и сейчас занимает господствующее положение среди языков программирования в мире. Очевидно, этот язык будет сохранять свое положение ещё не один год, при этом также развиваясь и совершенствуясь.

2. История возникновения и развития языка программирования Java

2.1. Возникновение и эволюция языка Java

Java является языком программирования, который был разработан компанией Sun Microsystems. Обычно приложения Java компилируются в специальный байт-код, таким образом они могут выполнять свою работу на любой из виртуальных Java-машин (JVM) независимо от того какова компьютерная архитектура. Датой официального выпуска является 23 мая 1995 года. На сегодняшний день технология Java – это средства для того, чтобы превратить статические Web-страницы в интерактивные динамические документы и для того, чтобы создать распределенные приложения, при этом не зависящие от платформы.

«Для группы была поставлена задача создать распределенную систему, которая могла бы быть, как современная программная технология и при этом продаваемая производителям бытовой электроники» – вспоминает Гослинг.

Гослингу, которому на данный момент 40 с небольшим лет, перешел из исследовательского отдела IBM в Sun в 1984 г. Его первой работой является технически интересный, но при этом не имеющий коммерческого успеха оконный интерфейс NeWS. Им также была написана GOSMACS – первая реализация текстового редактора EMACS на языке С [11].

Данная деятельность в области бытовой электроники (в последующем называемая проект «Green») показала Гослингу с его коллегами, насколько для потребителя являются важными такие показатели, как стоимость, соответствие стандартам, надежность и простота. Если для пользователей рабочих станций проявляется интерес в большой мощности, и они являются терпимы к высоким ценам, длительному обучению и наличию разного рода ошибок, то рядовые потребители хотят дешевых, относительно простых и надежных устройств.

Для успешной конкуренции на рынке бытовой электроники, компаниями процессоры должны быть рассмотрены как обычный товар, который в любое время возможно было бы заменить на более дешевый, а также обеспечить обратную совместимость, при этом соблюдая стандарты, которые устанавливаются на устройства при длительном пользовании типа телевизоров и тостеров.

Относительно произношения на русском языке, как и в некоторых других, были образованы две разные нормы — заимствованная англоязычная джава») и традиционно-национальная «ява», которая соответствует традиционному произношению названия острова Ява. Компания Sun придерживается англоязычного произношения во всех странах мира. Порой в обиходе используется жаргонное слово «Жаба» (к примеру, изображена жаба на календарях группы российских пользователей Java (Java Users Group).

Java называется не только сам язык, но и платформа на которой создаются и исполняются приложения, основываясь на данном языке.

Сначала назывался язык Oak («дуб») и был разработан Джеймсом Гослингом для того, чтобы программировались бытовые электронные устройства. После его переименовали в Java и стали использовать для того, чтобы написать клиентские приложения и серверное программное обеспечение. Его назвали в честь марки кофе Java, который является любимым некоторыми из программистов, поэтому на официальной эмблеме языка изображается чашка с дымящимся кофе. Имеет место быть, и другая версия того как происходит название Java, а именно, Java это сленговое обозначение кофе с аллюзией на кофе-машину, что является примером бытового устройства, для которых язык программирования изначально был создан [12].

Для того, чтобы разработка не была связана с конкретной платформой, Гослингом было принято решение начать с расширения компилятора . Но со временем, он понял, что один , каким бы образом его ни расширяли, им не получится удовлетворить все из потребностей. Поэтому с середины 1991 года была задумка языка Oak ( что впоследствии во время поиска торговой марки было названо, как Java). «То есть, язык является средством, а не самоцелью, как поясняет Гослинг. Мы не хотели зацикливаться на , а хотели разработать систему, позволяющую создавать большую и распределенную, при этом разнородную сеть из бытовых электронных устройств, которые способны между собой взаимодействовать».

К концу 1992 года, предпринимая, по мнению тогда еще инженера проекта Патрика Нотона, «огромные усилия на то, чтобы доработать Oak и другие компоненты», коллективом проекта «Green» было выпущено «*7» - устройство типа PDA, которое названо Гослингом, как «ручной пульт дистанционного управления».

«На протяжении полутора лет мы смогли сделать столько же, сколько многие большие коллективы в Sun делали три года, - отметил с гордостью Нотон. - Операционная система GreenOS, инструментарий, язык, пользовательский интерфейс, новая аппаратня платформа, три заказных микросхемы... и каждый из этапов связан с риском, так как нами были использованы абсолютно новые технологии».

До того, как прийти в команду Green Нотон был возглавляющим проект Sun, который основан на том, чтобы разработать пользовательскую среду Open Window.

Малогабаритное устройство *7 выгодно подчеркивает эффективность и компактность кода, который является ядром технологии. Данный продукт широко был продемонстрирован в Sun и при этом производил впечатление на таких важных персон, как Билл Джой и Скотт Макнили, но при этом его дальнейшая судьба продолжала быть неясной [1].

По мнению Гослинга браузер является компонентом, «создающим рынок» для серверов, инструментальных средств и сред разработки. При этом во всех этих средствах языку Java отводится ключевая роль. «До того, как появился Java страница WWW представляла из себя листок бумаги. Но после появления Java браузером была задана структура и резко расширены возможности провайдеров содержания».

По мнению Гослинга технология Java сможет заставить людей переосмыслению роли вычислений клиент-сервер. «В стандартной модели у вас имеются определенные базы данных, вы пишете пакеты клиентского ПО, которое взаимодействует с ними, и создаете при этом какой-либо интерфейс». Основываясь на этой модели довольно сложно создавать распределенные системы и при этом осуществляя их модернизацию, особенно при этом если у их частей имеется различное происхождение, указывается Гослингом.

Если у вас имеются такие инструментальные средства как Web и Java, то перед вами возникает исходно организованная система. «Если вами создается на языке Java клиентская часть приложения, то его запуском является просто переход на соответствующую страницу. Инсталляция тривиальная, то есть поместите просто необходимое ПО на Web-сервер. И не возникнет никаких проблем с переносом, так как имеется лишь одна версия приложения». По словам Гослинга, многие из компаний, уже организуют базы данных, в виде Web-страниц при использовании интерфейса Common Gateway Interface (CGI), то есть специфического стандарта для работы внешних программ на сервере HTTP.

Рассмотрим особенности языка, так главной из них является то, что программы на Java транслируются в байт-код, который выполняется виртуальной машиной Java (JVM) — программой, которая обрабатывает байтовый код и передает инструкции оборудованию, являясь интерпретатором [2].

Достоинством в подобном способе выполнения программ является его полная независимость байт-кода от того какова операционная система и оборудование, что позволяет выполнять Java-приложения на любом из устройств, для которого имеется соответствующая виртуальная машина.

Другая важная особенностью технологии Java – это гибкая система безопасности, благодаря которой то как исполняется программа полностью под контролем у виртуальной машины. Любые из операций, превышающие установленные полномочия программы вызывают немедленное прерывание.

Зачастую недостатком концепции виртуальной машины является то, что исполнение байт-кода у виртуальной машины снижает производительность программ и алгоритмов, которые реализуются на языке Java. За последнее время внесены были следующие усовершенствования, которые некоторым образом увеличили скорость выполнения программ на Java:

  • Применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,
  • Широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,
  • Аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).

По данным сайта shootout.alioth.debian.org, для семи различного рода задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для , в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на . Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и большее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на [3].

Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, стали вдохновляющими для многих энтузиастов на то, чтобы расширять перечень языков, используемых, чтобы создавать программы, которые в дальнейшем могли быть исполнены на виртуальной машине. Данные идеи находят также выражение в спецификации общеязыковой инфраструктуры CLI, заложенная в основу платформы .NET компанией Microsoft.

Основными возможностями являются:

  • Автоматическое управление памятью;
  • Расширенные возможности обработки исключительных ситуаций;
  • Богатый набор средств фильтрации ввода/вывода;
  • Набор стандартных коллекций, таких как массив, список, стек и т. п.;
  • Наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI);
  • Наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;
  • Встроенные в язык средства создания многопоточных приложений;
  • Унифицированный доступ к базам данных:
  • На уровне отдельных SQL-запросов — на основе JDBC, SQLJ;
  • На уровне концепции объектов, обладающих способностью к хранению в базе данных — на основе Java Data Objects и Java Persistence API;
  • Поддержка шаблонов (начиная с версии 1.5);
  • Параллельное выполнение программ [2].

2.2. Этапы развития языка Java и его применение

История разработки языка Java, которую изложил Патрик Нотон, являющийся соавтором браузера HotJava и нынешний вице-президент по технологии корпорации Starwave.

5 декабря 1990 г. - Нотон отказывается от того, чтобы перейти в компанию NeXT и начинает работу в компании Sun над проектом, который в последствии получил название Green.

15 января 1991 г. - Совещания типа мозгового штурма по проекту Stealth (названном так Скоттом Макнили) в Аспене, в котором принимали участие Билл Джой, Уэйн Розинг, Энди Бехтолсхейм, Джейм Гослинг, Майк Шеридан и Патрик Нотон.

1 февраля 1991 г. - Гослинг, Шеридан и Нотон всерьез берутся за работу. Нотон занимается графической системой Aspen, Гослинг - идеями языка программирования, Шеридан - бизнес-разработкой.

8 апреля 1991 г. - Переезд по новому адресу и разрыв прямого соединения с локальной сетью (и большинством других средств связи) компании Sun; проект продолжается под названием Green.

15 апреля 1991 г. - К проекту Green присоединяются Эд Фрэнк (архитектор системы SPARCstation 10), Крейг Форрест (дизайнер чипа SS10) и Крис Уорт (разработчик системы NeWS).

Май 1991 г. - Эд Фрэнк присваивает прототипу аппаратуры название *7 (или Star7; *7 - код, который было необходимо набрать в офисе Sand Hill, чтобы ответить на любой звонок с любого телефона).

Июнь 1991 г. - Гослинг начинает работу над интерпретатором Oak, который через несколько лет (при поисках торговой марки) переименован в Java.

1 августа 1991 г. - Осуществлено объединение Oak и Aspen; заработала их первая реальная программа.

19 августа 1991 г. - Коллектив разработчиков Green демонстрирует идеи базового пользовательского интерфейса и графическую систему сооснователям компании Sun Скотту Макнили и Биллу Джою.

17 октября 1991 г. - Шеридан и Нотон присваивают конструкторской философии своего коллектива девиз "1st Person", который со временем становится названием компании.

17 ноября 1991 г. - Офис проекта Green снова подключается к главной сети компании Sun линией на 56 Кбит/с

1 марта 1992 г. - К проекту Green присоединяется Джонатан Пейн, который позднее участвует в написании HotJava.

Лето 1992 г. - Интенсивная деятельность по доработке Oak, Green OS, пользовательского интерфейса, аппаратуры Star7 и соответствующих компонентов.

4 сентября 1992 г. - Завершена разработка устройства Star7; оно продемонстрировано Джою и Макнили.

1 октября 1992 г. - Из компании SunLabs переходит Уэйн Розинг, принимающий на себя руководство коллективом.

1 ноября 1992 г. - Организована корпорация FirstPerson.

15 января 1993 г. - Коллектив переезжает в Пало Альто в здание, где раньше находилась лаборатория Western Research Lab компании DEC и была основана исходная группа Hamilton Group (она же OSF).

15 марта 1993 г. - После ознакомления с результатами испытаний кабельного интерактивного телевидения, проведенных компанией Time Warner, корпорация FirstPerson сосредотачивается на этой тематике.

Апрель 1993 г. - Выпуск первого графического браузера для Internet - Mosaic 1.0, разработанного в центре NCSA.

14 июня 1993 г. - Компания Time Warner продолжает проводить свои испытания интерактивного кабельного ТВ с компанией SGI, несмотря на признанное превосходство технологии компании Sun и уверения, что Sun выиграла эту сделку.

Лето 1993 г. - Нотон пролетает 300 тыс. миль, продавая Oak всем, занимающимся бытовой электроникой и интерактивным телевидением; тем временем темп, с которой люди получают доступ к Internet, головокружительно нарастает.

Август 1993 г. - Через несколько месяцев многообещающих переговоров с компанией 3DO относительно разработки ОС для приставок, президент 3DO Трип Хокинс предлагает купить технологию. Макнили отказывается, и сделка срывается.

Сентябрь 1993 г. - К коллективу присоединяется Артур Ван Хофф, поначалу - чтобы создать среду разработки приложений, предназначенных для интерактивного телевидения, а потом разрабатывающий, главным образом, сам язык.

7 декабря 1993 г. - Экспертиза операций на высоком уровне в FirstPerson обнаруживает, что эта группа не имеет реальных партнеров или маркетинговой стратегии и неясно представляет себе дату выпуска.

8 февраля 1994 г. - Отменено публичное заявление компании FirstPerson о выпуске, которое должно было состояться на конференции Technology, Entertainment and Design (TED).

17 февраля 1994 г. - Исполнительным лицам компании Sun для разносторонней экспертизы представлен альтернативный бизнес-план корпорации FirstPerson по разработке мультимедийной платформы для CD-ROM и онлайновой работы.

25 апреля 1994 г. - Создана компания Sun Interactive; в нее переходит половина сотрудников FirstPerson.

Июнь 1994 г. - Начат проект Liveoak, нацеленный Биллом Джоем на использование Oak в крупном проекте небольшой операционной системы.

Июль 1994 г. - Нотон ограничивает область применения проекта Liveoak, просто переориентировав Oak на Internet.

16 сентября 1994 г. - Пейн и Нотон начинают писать WebRunner - браузер типа Mosaic, позднее переименованный в HotJava.

29 сентября 1994 г. - Прототип HotJava впервые продемонстрирован исполнительным лицам компании Sun.

11 октября 1994 г. - Нотон уходит в компанию Starwave.

Осень 1994 г. - Ван Хофф реализует компилятор Java на языке Java. (Ранее Гослинг реализовывал его на языке С).

23 мая 1995 г. - Компания Sun официально представляет Java и HotJava на выставке SunWorld '95 [10].

Одним из интереснейших аспектов Java программирования являются Java-апплеты.

Java-апплетом является прикладная программа на Java, имеющая формат байт-кода. Java-апплеты выполняются в веб-браузере, при использовании виртуальной Java машины (JVM), или в Sun'sAppletViewer, автономном инструменте для того, чтобы тестировать апплеты. Java-апплеты внедрены были в первую версию языка Java в 1995 г. Java-апплеты пишутся обычно на языке программирования Java, но при этом они написаны могут быть и на других языках, которые компилируются в байт‐код Java, таких, как Jython.

Апплеты используют для того, чтобы предоставить интерактивные возможности веб-приложений, которые невозможно предоставить в HTML. Так как байт-код Java платформо-независим, то Java-апплеты могут выполняться при помощи плагинов браузерами многих платформ, включая Microsoft Windows, UNIX, Apple Mac OS и GNU/Linux. Такие программы с открытым исходным кодом, как applet2app, можно использовать для того, чтобы преобразовать апплеты в самостоятельные программы на Java или исполняемые файлы Linux и Windows [1].

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

Вывод: В наше время платформа Java привлекла уже более 9 миллионов разработчиков программного обеспечения. Её используют во всех главных сегментах индустрии, в том числе в широком диапазоне устройств, сетей и компьютеров.

Заключение

Язык является стремительным и мощным рывком в процессе развития программирования. и сейчас отводят господствующее положение среди языков программирования. Множество из профессиональных программистов используют именно его во время разработки различного рода проектов. При этом является очевидным то, что этот язык будет сохранять свое положение ещё не один год, при этом продолжать развиваться и совершенствоваться.

является один из самых популярных языков программирования, его широко используют для того, чтобы разработать программное обеспечение. Его область применения включает в себя создание операционных систем, драйверов устройств, различных прикладных программ, приложений для встраиваемых систем, высокопроизводительных серверов, а также возможно создание развлекательных приложений. Существует много реализаций языка , являющиеся как бесплатные, так и коммерческие и для разных платформ.

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

Список литературы

  1. Беркунський Е.Ю. Объектно-ориентированное программирование на языке Java: Методические указания для студентов направления "Компьютерные науки". - М.: НУК, 2006. - 52 с.
  2. Вязовик Н.А.. Программирование на Java. Курс лекций, Интернет-университет информационных технологий, 2003. 592 с.
  3. Грэхем Иан. Объектно-ориентированные методы. Принципы и практика. — 3-е изд. — М.: «Вильямс», 2004. 800 с.
  4. Дейтел П.Дж., Дейтел Х.М. Как программировать на С++. Введение в объектно-ориентированное проектирование с использованием UML. / Пер. с англ. - М.: Издательство <Бином>, 2009. 1454 с.
  5. Либерти Джесс. Освой самостоятельно C++ за 21 день. - Вильямс, г. Москва, 2001. 816 с.
  6. Пол Ирэ, "ООП с использованием С++", Киев, "ДиаСофт", 2010. 480 с.
  7. Секунов Н. Самоучитель Visual C++ 6. изд. «БХВ-Петербург», Санкт-Петербург, 2003. 925 с.
  8. Синтес Антони. Освой самостоятельно объектно-ориентированное программирование за 21 день. — М.: «Вильямс», 2002. 372 с.
  9. Страуструп Бьерн. Язык программирования С++. Бином, 2008. 369 с.
  10. Хабибуллин И.Ш. Самоучитель Java 2. СПб.: БХВ-Петербург, 2007. 720 с.
  11. Шилдт Герберт, Холмс Джеймс, Искусство программирования на Java, 2005. 336 с.
  12. Эккель Б. Философия Java. Библиотека программиста. СПб.: Питер, 2001. 640 с.