История создания языка Java

Автор: Пользователь скрыл имя, 12 Декабря 2011 в 09:30, реферат

Описание работы

В декабре 1990 года из компании Sun Mycrosystems 25-летний хорошо зарекомендовавший себя программист Патрик Нотон (Patrick Naughton), проработав три года, объявил о своем уходе в компанию NeXT. Фирма Sun Microsystems, занимающая значительную долю рынка серверов и высокопроизводительных станций, не могла предложить ничего интересного для обычных пользователей персональных компьютеров.

Работа содержит 1 файл

История создания языка Java..docx

— 70.18 Кб (Скачать)

    Каким же образом можно "сгладить" различия и многообразие операционных систем? Способ не новый, но эффективный - с  помощью виртуальной машины. Приложения на языке Java исполняются в специальной, универсальной среде, которая называется Java Virtual Machine. JVM - это программа, которая пишется специально для каждой реальной платформы, чтобы, с одной стороны, скрыть все ее особенности, а с другой - предоставить единую среду исполнения для Java -приложений. Фирма Sun и ее партнеры создали JVM практически для всех современных операционных систем. Когда речь идет о браузере или устройстве с поддержкой Java , подразумевается, что в нем имеется встроенная виртуальная машина. Существует знаменитый девиз для Java-приложений  "Write once, run everywhere" ("Написано однажды, работает везде").

    Кроме очевидных удобств, это начинание  было с большим энтузиазмом поддержано индустрией и в силу того, что  оно являлось сильнейшим оружием  в борьбе с крупнейшим производителем программного обеспечения - Microsoft. Тогда и сейчас самой распространенной платформой являлась операционная система Windows на базе процессоров Intel. Этим компаниям удалось создать замкнутый круг, гарантирующий успех,- все пользовались их платформой, так как под нее написано больше всего программ, что, в свою очередь, заставляло разработчиков создавать новые продукты именно для этой платформы. Поскольку корпорация Microsoft всегда очень агрессивно развивала свое преимущество в области персональных компьютеров (так Netscape Navigator безнадежно проиграл конкуренцию MS IE), это не могло не вызывать сильное беспокойство других представителей компьютерной индустрии. Понятно, что концепция сетевых компьютеров свела бы на нет преимущества Windows в случае широкого распространения. Разработчики просто перестали бы задумываться, что находится внутри их рабочей станции, также как домашние пользователи не имеют представления, на каких микросхемах собран их мобильный телефон или видеомагнитофон. Поэтому со стороны Microsoft принимались все возможные ходы, препятствующие продвижению новой технологии. Был суд между компаний Microsoft и SM, тянувшийся с 1998 по 2001 год, в результате которого Sun получил компенсацию в 20 миллионов долларов и добился выполнения лицензионного соглашения. В результате Microsoft остановила свою поддержку Java на версии 1.1, которая на данный момент является устаревшей и не имеет многих полезных возможностей. Это, в свою очередь, практически остановило широкое распространение апплетов.

Преимущества  языка Java

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

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

  • Исключена возможность явного выделения и освобождения памяти. Память в языке Java освобождается автоматически с помощью механизма сборки мусора. Программист гарантирован от ошибок, связанных с неправильным использованием памяти.
  • Запрещена арифметика указателей. Теперь программисты в принципе не могут стереть данные из памяти вследствие неправильного использования указателей.
  • Исключена возможность перепутать оператор присваивания с оператором сравнения на равенство. Теперь нельзя даже скомпилировать выражение if(abc=3)  эта ошибка — источник  большинства недоразумений вязыках С и С++.
  • Исключено множественное наследование. Оно заменено новым понятием —интерфейсом, позаимствованным из языка Objective C. Интерфейс дает программисту почти все, что тот может получить от множественного наследования, избегая при этом сложностей, возникающих при управлении иерархиями классов.
 

Свойства  – преимущества языка  Java:

1. Объектно-ориентированный.

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

2. Распределенный.

    Язык  Java предоставляет мощные и удобные средства для работы в сети. На Java легко решаются самые трудные задачи, например, открытие сетевых соединений. Элегантный механизм, состоящий из так называемых сервлетов (servlets), делает работу на сервере чрезвычайно эффективной. Сервлеты поддерживаются многими популярными Web серверами. Связь между распределенными объектами в языке Java обеспечивается механизмом вызова удаленных методов.

3. Надежный.

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

4. Безопасный

    Группа  разработчиков языка Java заявила о своей полной нетерпимости к любым ошибкам в системе защиты и немедленно приступает к исправлению всех проблем, обнаруженных в механизме безопасности. В любом случае обмануть систему защиты языка Java чрезвычайно трудно. Обнаруженные до сих пор ошибки были исправлены в следующих версиях, к тому же их количество (относительно) невелико.

5. Не зависящий от архитектуры

    Использование байт.кодов дает большой выигрыш  при выполнении программы  Разработчики языка Java прекрасно справились с разработкой набора команд байт кода, которые отлично работают на большинстве современных компьютеров, легко транслируясь в реальные машинные команды.

6. Машинонезависимый

    Например, тип int в языке Java всегда означает 32.разрядное целое число. В языках С и С++ тип int может означать как 16 разрядное, так и 32 разрядное целое число, а также целое число произвольного размера, по выбору разработчика конкретного компилятора. Единственное ограничение заключается в том, что размер типа int не может быть меньше размера типа short int и больше размера типа long int. Фиксированный размер числовых типов позволяет избежать многих неприятностей, связанных с выполнением программ на разных компьютерах. Строки сохраняются в стандартном формате Unicode.

7. Интерпретируемый

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

8. Высокопроизводительный

    Если  для выполнения байт кодов применяется  интерпретатор, не следует употреблять  словосочетание “высокая производительность”. Однако на многих платформах возможен другой вид компиляции, обеспечиваемый синхронными компиляторами (just in time compilers — JIT). Они транслируют байт код в машинозависимый код, сохраняют результат в памяти, а затем вызывают его при необходимости. Поскольку при этом интерпретация выполняется только один раз, этот подход во много раз уве личивает скорость работы. Несмотря на то что синхронные компиляторы все равно медлительнее, чем машинозависимые компиляторы, они во всяком случае работают намного быстрее интерпретаторов, обеспечивая для некоторых программ 10 и даже 20 кратное ускорение. Эта технология постоянно совершенствуется и в конце концов может достичь той скорости, которую никогда не превзойдут традиционные компиляторы. Например, синхронный компилятор может определить, какой фрагмент кода выполняется чаще, и оптимизировать его по скорости выполнения.

9. Многопоточный

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

10. Динамичный

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

Информация о работе История создания языка Java