Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

История ПО

.pdf
Скачиваний:
24
Добавлен:
18.03.2015
Размер:
1.4 Mб
Скачать

Класс языка:

Появился в:

Автор(ы):

Релиз:

Типизация данных:

Основные реализации:

Диалекты:

Испытал влияние:

Повлиял на:

Лицензия

объектно-ориентированный, структурный, императивный, кроссплатформенный

1995

Oracle Corporation (ранее Sun Microsystems)

Java Standard Edition 7[1] (28 июля 2011)

строгая полиморфная, статическая, безопасная, именованная (англ.), явная (англ.)

многочисленные (англ.)

Generic Java (англ.), Pizza (англ.)

Objective-C[2], Ада 83, Object Pascal[3], UCSD Pascal[4], Oberon[5][6],C++, C#[7], Smalltalk, Eiffel[8], Mesa (англ.)[9], Modula- 3[10], Generic Java (англ.)

Ада 2005, C#, Clojure, D, ECMAScript, Groovy, J#, VJ#, JavaScript, PHP, Scala, Python, BeanShell

GNU General Public License / Java Community Process

Java. В 1995 г. в корпорации Sun Microsystems Кеном Арнольдом и Джеймсом Гослингом был создан язык Java. Он унаследовал синтаксис Си и Си ++ и был избавлен от некоторых отрицательных черт последнего. Отличительной

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

Система программирования на Java позволяет компилировать программы для любой компьютерной платформы, но при этом главным отличием Java-приложений является использование библиотек Java-программ, которые обеспечивают разработку безопасных распределенных систем. Главным является то, что в этом языке совершенно отсутствует адресная арифметика. Java – самый молодой из языков программирования и сегодня является основным инструментом программирования для Интернет [99, 113–116].

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

Java SE — Java Standard Edition, основное издание Java, содержит компиляторы, API, Java Runtime Environment; подходит для создания пользовательских приложений, в первую очередь — для настольных систем.

Java EE — Java Enterprise Edition, представляет собой набор спецификаций для создания программного обеспечения уровня предприятия.

Java ME — Java Micro Edition, создана для использования в устройствах, ограниченных по вычислительной мощности, например в мобильных телефонах, КПК, встроенных системах;

JavaFX — технология, являющаяся следующим шагом в эволюции Java как Rich Client Platform; предназначена для создания графических интерфейсов корпоративных приложений и бизнеса.

Java Card — технология предоставляет безопасную среду для приложений, работающих на смарт-картах и ​​других устройствах с очень ограниченным объемом памяти и возможностями обработки.

Java 1.0. Разработка Java началась в 1990 году, первая официальная версия была выпущена только в 1996 году. Java 1.2 К 1998 году была разработана обновлённая спецификация JDK 1.2, вышедшая под наименованием Java 2.

Java 5.0 Спецификация Java 5.0 была выпущена в сентябре 2004 года. C этой версии изменена официальная индексация, вместо Java 1.5 правильнее называть Java 5.0. Внутренняя же индексация Sun осталась прежней — 1.x. В данной версии разработчики внесли в язык целый ряд принципиальных дополнений:

•Типы (англ. enum). Ранее отсутствовавшие в Java типы оформлены по аналогии с C++, но при этом имеют ряд дополнительных возможностей: является полноценным классом Java, то есть может иметь конструктор, поля, методы, в том числе скрытые и абстрактные; может реализовывать интерфейсы; имеются встроенные методы, дающие возможность получения значений типа по имени, символьных значений, соответствующих именам, преобразования между номером и значением, проверки типа на то, что он является перечислимым; возможность добавления в текст программы метаданных, не влияющих на выполнение кода, но допускающих использование для получения различных сведений о коде и его исполнении; выпущен инструментарий для использования аннотированного кода; применение аннотаций для упрощения создания тестовых модулей для Java-кода.

•Средства обобщённого программирования (англ. generics) — механизм, аналогичный Eiffel (позже также появились и в C#,

•Методы с неопределённым числом параметров.

•Autoboxing/Unboxing — автоматическое преобразование между скалярными типами Java и соответствующими типамиврапперами (например, между int — Integer). Наличие такой возможности сокращает код, поскольку исключает необходимость выполнения явных преобразований типов в очевидных случаях.

•Разрешён импорт статических полей и методов.

•В язык введён цикл по коллекции объектов (итератор, англ. foreach).

•Было введено использование Javadoc-комментариев, которые используются для автоматического оформления документации по комментариям в исходном коде.

Java 6. Релиз версии состоялся 11 декабря 2006 года. Изменена официальная индексация — вместо ожидаемой 6.0 версия значится как 6.

Java 7. Релиз версии состоялся 28 июля 2011 года[19]. В финальную версию Java SE 7 не были включены все ранее запланированные изменения. Согласно плану развития (план «Б»)[20], включение нововведений будет разбито на две части: Java SE 7 (без лямбд, проекта Jigsaw, и части улучшений Coin) и Java SE 8 (все остальное), намеченный на конец 2012 года. В новой версии, получившей название Java SE 7 (Java Platform, Standard Edition 7), помимо исправления большого количества ошибок были представлено несколько новшеств: использован не проприетарный пакет JDK, а его открытая реализация OpenJDK; поставляемые Oracle бинарные файлы эталонной реализации Java SE 7 собраны на основе кодовой базы OpenJDK; интеграция набора небольших языковых улучшений Java, развиваемых в рамках проекта Coin; добавлена поддержка языков программирования с динамической типизацией, таких как Ruby, Python и JavaScript, поддержка загрузки классов по URL, обновленный XML-стек, включающий JAXP 1.4, JAXB 2.2a и JAX-WS 2.2 и другие[21].

 

мультипарадигмальный:

 

объектно-ориентированный,

Класс языка:

императивный,

 

функциональный,

 

аспектно-ориентированный

Тип исполнения:

интерпретируемый, компилируемый в MSIL, компилируемый в байт-код Java

Появился в:

1990

Автор(ы):

Гвидо ван Россум

Расширение файлов:

.py, .pyw, .pyc, .pyo, .pyd[1]

Релиз:

2.7.3, 3.2.3 (9 апреля 2012, 10 апреля 2012[2])

Типизация данных:

строгая, динамическая

Основные реализации:

CPython, Jython, IronPython, PyPy, Stackless

Испытал влияние:

ABC, Modula-3, Lisp, Tcl Smalltalk, C, Java, Icon

Повлиял на:

Ruby, Boo, Groovy, ECMAScript, CoffeeScript

Лицензия

PSFL

Сайт:

www.python.org

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

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

Философия ЯВУ Питон:

•Красивое лучше, чем уродливое.

•Явное лучше, чем неявное.

•Простое лучше, чем сложное.

•Сложное лучше, чем запутанное.

•Плоское лучше, чем вложенное.

•Разреженное лучше, чем плотное.

•Читаемость имеет значение.

•Особые случаи не настолько особые, чтобы нарушать правила.

•При этом практичность важнее безупречности.

•Ошибки никогда не должны замалчиваться.

•Если не замалчиваются явно.

•Встретив двусмысленность, отбрось искушение угадать.

•Должен существовать один — и, желательно, только один — очевидный способ сделать это.

•Хотя он поначалу может быть и не очевиден, если вы не голландец[7].

•Сейчас лучше, чем никогда.

•Хотя никогда зачастую лучше, чем прямо сейчас.

•Если реализацию сложно объяснить — идея плоха.

•Если реализацию легко объяснить — идея,

возможно, хороша.

•Пространства имён — отличная штука! Будем делать их побольше!