Файл: История возникновения и развития языка программирования..pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 29.04.2023

Просмотров: 252

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
  • Поддержка объектно-ориентированной парадигмы;
  • Возможность запуска одной и той же программы на разных операционных системах;
  • Встроенные механизмы для работы с компьютерных сетей;
  • Обеспечение безопасности удаленного исполнения программ;
  • Использование преимуществ других объектно-ориентированных языков программирования.

Однако, в 1993 рынки интерактивного телевидения и PDA пошли на убыль. В то время бурно развивался Интернет и сети. Так что Sun сдвинула целевой рынок в сторону Интернет-приложений и заменила название проекта на Java.

В 1994 Sun выпустила браузер HotJava. Он был написан на Java всего за несколько месяцев, что показало мощность апплетов, программ которые работают в пределах браузера, а также продемонстрировало скорость разработки программ на новом языке.

Основные особенности языка

Программы на Java транслируются в байт-код Java, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.

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

Часто к недостаткам концепции виртуальной машины относят снижение производительности. Ряд усовершенствований несколько увеличил скорость выполнения программ на Java:

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

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

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

Хронология развития Java.

  • Июнь 1991 г. — Гослинг начинает работу над интерпретатором Oak, который через несколько лет (при поисках торговой марки) переименован в Java.
  • 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.
  • 23 мая 1995 г. – Netscape объявляет о намерении использовать Java при разработке браузера Netscape.
  • 21 сентября, 1995 г. – В Нью-Йорке проходит конференция по Java-разработке
  • 25 Сентября, 1995 г. – Sun объявляет о расширенном сотрудничестве с Toshiba.
  • 26 Сентября, 1995 г. – Sun анонсирует пакет инструментов для разработки с использованием Java-технологий
  • 30 Октября, 1995 г. – На Internet World Conference в Бостоне компании Lotus Development Corp., Intuit Inc., Borland International Inc., Macromedia Inc. и Spyglass Inc. объявляют о намерении лицензировать Java.
  • 4 декабря, 1995 г. – Sun, Netscape и Silicon Graphics создают альянс для разработке инструментария для интернета.
  • 4 декабря, 1995 г. – Borland, Mitsubishi Electronics, Sybase и Symatec объявляют о планах лицензировать Java.
  • 6 декабря, 1995 г. – IBM и Adobe объявляют о планах лицензировать Java.
  • 7 декабря, 1995 г. – Microsoft объявляет о планах лицензировать Java.
  • 23 января, 1996 г. – релиз JDK 1.0

Классификация платформ Java.

Внутри Java существует несколько основных семейств технологий:

  • Java SE — Java Standard Edition, основное издание Java, содержит компиляторы, API, Java Runtime Environment; подходит для создания пользовательских приложений, в первую очередь — для настольных систем.
  • Java EE — Java Enterprise Edition, представляет собой набор спецификаций для создания программного обеспечения уровня предприятия.
  • Java ME — Java Micro Edition, создана для использования в устройствах, ограниченных по вычислительной мощности, например, в мобильных телефонах, КПК, встроенных системах;
  • Java Card — технология предоставляет безопасную среду для приложений, работающих на смарт-картах и других устройствах с очень ограниченным объёмом памяти и возможностями обработки.

Каждая платформа включает в себя:

• язык программирования;

• набор служебных программ (JVM, JRE, JDK и т.п.);

• набор библиотек;

Java Virtual Machine (JVM) представляет собой программу, имитирующую работу некоторой гипотетической Java-машины.

Java Runtime Environment (JRE) представляет собой минимальный набор средств, необходимых для запуска Java-программ. Основу JRE составляют виртуальная машина Java и набор стандартных библиотек.

Java Development Kit (JDK) представляет собой набор средств, используемых в процессе разработки Java-программ: компилятор, отладчик, средства для автоматической генерации документации, комплект примеров и т.п. JDK работает с уже готовыми текстами программ и не содержит какого-либо редактора.

Интегрированные среды разработки (Eclipse, Netbeans, JBuilder и т.п.) для компиляции программ используют внешний JDK.

Java и Android

Язык Java активно используется для создания мобильных приложений под операционную систему Android. При этом программы компилируются в нестандартный байт-код, для использования их виртуальной машиной Dalvik (начиная с Android 5.0 Lollipop виртуальная машина заменена на ART). Для такой компиляции используется дополнительный инструмент, а именно Android SDK (Software Development Kit), разработанный компанией Google.

Разработку приложений можно вести в среде Android Studio, NetBeans, в среде Eclipse, используя при этом плагин Android Development Tools (ADT), или в IntelliJ IDEA. Версия JDK при этом должна быть 5.0 или выше.

Заключение


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

Оба языка прочно заняли свои ниши, и несмотря на высокую конкуренцию со стороны языков так называемого «сверхвысокого уровня» (таких, как Ruby, Scala, Kotlin, Swift), постоянно развиваются и привлекают молодые поколения разработчиков.

Использованная литература

  • Бьёрн Страуструп. Язык программирования C++ = The C++ Programming Language / Пер. с англ. — 3-е изд. — СПб.; М.: Невский диалект — Бином, 1999. — 991 с. — 3000 экз. — ISBN 5-7940-0031-7 (Невский диалект), ISBN 5-7989-0127-0 (Бином), ISBN 0-201-88954-4 (англ.).
  • Бьёрн Страуструп. Язык программирования C++. Специальное издание = The C++ programming language. Special edition. — М.: Бином-Пресс, 2007. — 1104 с. — ISBN 5-7989-0223-4.
  • Бьёрн Страуструп. Программирование: принципы и практика использования C++, исправленное издание = Programming: Principles and Practice Using C++. — М.: Вильямс, 2011. — С. 1248. — ISBN 978-5-8459-1705-8.
  • Бьёрн Страуструп. Дизайн и эволюция C++ = The Design and Evolution of C++. — СПб.: Питер, 2007. — 445 с. — ISBN 5-469-01217-4.
  • Сиддхартха Рао. Освой самостоятельно C++ за 21 день, 7-е издание (C++11) = Sams Teach Yourself C++ in One Hour a Day, 7th Edition. — М.: «Вильямс», 2013. — 688 с. — ISBN 978-5-8459-1825-3.
  • Стефенс Д. Р. C++. Сборник рецептов. — КУДИЦ-ПРЕСС, 2007. — 624 с. — ISBN 5-91136-030-6.
  • Стивен Прата. Язык программирования C++ (C++11). Лекции и упражнения = C++ Primer Plus, 6th Edition (Developer’s Library). — 6-е изд. — М.: Вильямс, 2012. — 1248 с. — ISBN 978-5-8459-1778-2.
  • Айвор Хортон. Visual C++ 2010: полный курс = Ivor Horton’s Beginning Visual C++ 2010. — М.: Диалектика, 2010. — С. 1216. — ISBN 978-5-8459-1698-3.
  • Герберт Шилдт. Полный справочник по C++ = C++: The Complete Reference. — 4-е изд. — М.: Вильямс, 2011. — С. 800. — ISBN 978-5-8459-0489-8.
  • Герберт Шилдт. Теория и практика C++ = Shildt's Expert C++. — СПб.: BHV — Санкт-Петербург, 1996. — ISBN 0-07-882209-2, 5-7791-0029-2.
  • P.J. Plauger. Programming Language Guessing Games - If C++ is the Answer, what’s the question? // Dr. Dobb's Journal. — Октябрь, 1993.
  • The Unix-Haters Handbook. — International Data Group[en], 1994.
  • Ian Joyner. A Critique of C++ and Programming and Language Trends of the 1990s - 3rd Edition. // копирайт и список изданий. — 1996.
  • Скотт Мейерс. Эффективный и современный C++: 42 рекомендации по использованию C++11 и C++14 = Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 / Пер. с англ. — Вильямс, 2016. — 304 с. — ISBN 978-5-8459-2000-3.
  • Herbert Schildt. C++ The Complete Reference Third Edition. — Osborne McGraw-Hill, 1998. — ISBN 978-0-07-882476-0.
  • Герберт Шилдт. Java 8. Полное руководство, 9-е издание = Java 8. The Complete Reference, 9th Edition. — М.: «Вильямс», 2015. — 1376 с. — ISBN 978-5-8459-1918-2.
  • Кей С. Хорстманн. Java SE 8. Вводный курс = Java SE 8 for the Really Impatient. — М.: «Вильямс», 2014. — 208 с. — ISBN 978-5-8459-1900-7.
  • Фрэд Лонг, Дхрув Мохиндра, Роберт С. Сикорд, Дин Ф. Сазерленд, Дэвид Свобода. Руководство для программиста на Java: 75 рекомендаций по написанию надежных и защищённых программ = Java Coding Guidelines: 75 Recommendations for Reliable and Secure Programs. — М.: «Вильямс», 2014. — 256 с. — ISBN 978-5-8459-1897-0.
  • Кей С. Хорстманн, Гари Корнелл. Java. Библиотека профессионала, том 1. Основы. 9-е издание = Core Java, Volume I: Fundamentals (9th Edition). — М.: «Вильямс», 2013. — 864 с. — ISBN 978-5-8459-1869-7.
  • Кей С. Хорстманн. Java. Библиотека профессионала, том 1. Основы. 10-е издание = Core Java. Volume I - Fundamentals (Tenth Edition). — М.: «Вильямс», 2017. — 864 с. — ISBN 978-5-8459-2084-3.
  • Кей С. Хорстманн. Java. Библиотека профессионала, том 2. Расширенные средства программирования. 10-е издание = Core Java. Volume II - Advanced Feature (Tenth Edition). — М.: «Вильямс», 2017. — 976 с. — ISBN 978-5-9909445-0-3.
  • Барри Берд. Java 8 для чайников = Java For Dummies, 6th edition. — М.: «Диалектика», 2015. — 400 с. — ISBN 978-5-8459-1928-1.
  • Джеймс Гослинг, Билл Джой, Гай Стил, Гилад Брача, Алекс Бакли. Язык программирования Java SE 8. Подробное описание, 5-е издание = The Java Language Specification, Java SE 8 Edition (5th Edition) (Java Series). — М.: «Вильямс», 2015. — 672 с. — ISBN 978-5-8459-1875-8.
  • Джошуа Блох. Java. Эффективное программирование = Effective Java. — М.: Лори, 2002. — 224 с. — ISBN 5-85582-169-2.
  • Монахов Вадим. Язык программирования Java и среда NetBeans. — 3-е изд. — СПб.: БХВ-Петербург, 2011. — 704 с. — ISBN 978-5-9775-0671-7.
  • Брюс Эккель. Философия Java = Thinking in Java. — 3-е изд. — СПб.: Питер, 2003. — 976 с. — ISBN 5-88782-105-1.