Когда появился язык Java?
Java
Java — сильно типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре с помощью виртуальной Java-машины. Дата официального выпуска — 23 мая 1995 года. На 2018 год Java — один из самых популярных языков программирования.
Jelastic
В ноябре 2014 года к команде Jelastic присоединился создатель языка программирования Java Джеймс Гослинг.Платформа может быть установлена на «голом железе» или любом IaaS в качестве публичного, виртуального частного, локального частного, гибридного или мульти облака.
Java Virtual Machine
Java Virtual Machine (сокращенно Java VM, JVM) — виртуальная машина Java — основная часть исполняющей системы Java, так называемой "Java Runtime Environment" (JRE). Виртуальная машина Java исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java (javac). JVM может также использоваться для выполнения программ, написанных на других языках программирования. Например, исходный код на языке Ada может быть откомпилирован в байт-код Java, который затем может выполниться с помощью JVM.
AspectJ
AspectJ — аспектно-ориентированное расширение языка Java, созданное компанией PARC. Язык доступен в проектах Eclipse Foundation как отдельно, так и в составе среды разработки Eclipse. Язык стал дефакто стандартом аспектно-ориентированного программирования, подчёркивая простоту и удобство для пользователей. С первого выпуска язык использует Java-подобный синтаксис.
Frege
В 2015 году, среди участников конференции JavaOne, был проведён опрос о том, какой альтернативный Java язык, работающий поверх JVM, они предпочитают. Первое место занял Frege.
История версий Java SE
Первый выпуск. Первой стабильной версией стала JDK 1.0
Сравнение C Sharp и Java
Java принята в качестве официального программного средства для использования в следующем поколении стандарта DVD, Blu-ray, через интерактивную платформу . Это значит, что такое интерактивное содержимое, как меню, игры, скачивания и т. д., на всех дисках DVD Blu-ray будет создаваться на платформе Java.
Java-апплет
Java-апплет — прикладная программа, чаще всего написанная на языке программирования Java в форме байт-кода. Java-апплеты выполняются в веб-обозревателе с использованием виртуальной Java машины (JVM), или в Sun's AppletViewer, автономном средстве для испытания апплетов. Java-апплеты были внедрены в первой версии языка Java в 1995 году. Java-апплеты обычно пишутся на языке программирования Java, но могут быть написаны и на других языках, которые компилируются в байт‐код Java, таких, как Jython.
Io
Io ("первая буква — заглавная «i»") — скриптовый, чисто объектно-ориентированный язык программирования с динамической типизацией. Язык был разработан Стивом Декортом () в 2002 году. Реализация является кроссплатформенной, открытой (лицензия BSD) и рассчитана на лёгкость встраивания в качестве скриптового языка.В отличие от Perl, PHP, Python и Ruby, в Io класс не имеет принципиального отличия от объекта, является первоклассным объектом языка. Наследование реализовано прототипами, как в Self, Lua и JavaScript. Поддерживается множественное наследование.
Visual Café
Другие среды разработки, которые существовали в то время: Visual Age для Java (духовный предшественник Eclipse), SuperCede от Asymetrix (первый компилятор Java в машинный код), NetBeans (также известный как Forté для Java), JBuilder, PowerJ от PowerSoft и Mojo Enterprise.
История языка программирования Python
История языка программирования Python началась в конце 1980-х. Гвидо ван Россум задумал Python в 1980-х годах, а приступил к его созданию в декабре 1989 года в центре математики и информатики в Нидерландах. Язык Python был задуман как потомок языка программирования ABC, способный к обработке исключений и взаимодействию с операционной системой Амёба. Ван Россум является основным автором Python и продолжал выполнять центральную роль в принятии решений относительно развития языка вплоть до 12 июля 2018 года.
Язык программирования
Первым практически реализованным языком стал в 1949 году так называемый «Краткий код», в котором операции и переменные кодировались двухсимвольными сочетаниями. Он был разработан в компании Eckert–Mauchly Computer Corporation, выпускавшей UNIVAC-и, созданной одним из сотрудников Тьюринга, Джоном Мокли. Мокли поручил своим сотрудникам разработать транслятор математических формул, однако для 1940-х годов эта цель была слишком амбициозна. Краткий код был реализован с помощью интерпретатора.
JavaOS
JavaOS — операционная система на базе Java как фундаментальный компонент, первоначально разработанный Sun Microsystems. В отличие от Windows, macOS, Unix или Unix-подобных систем, которые написаны на языке программирования C, JavaOS написана на Java. В настоящее время, JavaOS считается устаревшей операционной системой.
JavaOS была первоначально анонсирована в 1996 году дочерней компанией Sun, JavaSoft, как компактная операционная система, предназначенная для запуска «во всём, от сетевых компьютеров до пейджеров». В 1998 году, Sun пригласила IBM для ускорения её развития. IBM сказала, что основное внимание уделялось сетевому компьютеру, а не клиентам, в частности, для замены традиционных терминалов «зелёного экрана» и Unix, а также для реализации отдельных приложений-клиентов.
Java
Последняя дата стала официальной датой релиза версии.Дата релиза: 20 марта 2018 года.
Factor (язык программирования)
Первая публичная реализация Фактора была написана на Java, однако в целях повышения эффективности позднее она переписана на C (а затем, в мае 2009 — на C++), Java-версия была заброшена. Количество Си-кода в реализации языка постепенно сокращается, а Factor-кода соответственно растёт.
Java
В языке Java действуют следующие правила:
NewLISP
Язык был впервые реализован на рабочей станции Sun4 в 1991 г. В 1993 году он был перенесён на шестнадцатиразрядную Windows 3.0, а в 1995 — на тридцатидвухразрядную Windows 95. В апреле 1999 года NewLISP был портирован на Linux и открыт под свободной лицензией. Весь код, специфичный для Windows был удалён, и, начиная с версии 6.0.25, поддержка этой операционной системы была прекращена. В 2001 году работа под Windows становится возможной благодаря Cygwin, вначале win-версия работала только в консоли, но в версии 6.3 с использованием Tcl/Tk был реализован кроссоплатформенный графический интерфейс пользователя newLISP-tk. В 2007 году была разработана GUI-библиотека newLISP-GS на базе Java, в настоящее время являющаяся основной реализацией графического интерфейса для newLISP. Ниже дана хронология ключевых изменений с 1990 по 2014 год.
Для веб-программирования c использованием newLisp может использоваться веб-фреймворк "newLISP on Rockets", использующий на стороне браузера Bootstrap и jQuery и сохраняющий данные в SQLite. На создание этого фреймворка автора вдохновил более ранний фреймворк — "Dragonfly".
Java
Официальный частичный список нововведений и план релиза расположен на сайте OpenJDK. Дата релиза — 25 сентября 2018 года.Внутри Java существует несколько основных семейств технологий:
Java Foundation Classes
Java Foundation Classes, сокращенно "JFC" — набор библиотек классов на языке Java, предоставляющих программам на Java удобный API для создания графического интерфейса пользователя (GUI). В состав JFC входят, в частности, библиотека Swing, Java 2D и многие другие, включая исторически первую библиотеку Java для создания пользовательских интерфейсов — Abstract Window Toolkit.
Сравнение C Sharp и Java
В то время как «Java» — торговая марка Oracle (ранее - Sun), и только Oracle может лицензировать имя «Java», существуют многочисленные свободные проекты, частично совместимые с Oracle Java. Например, GNU Classpath и GNU Compiler for Java (GCJ) поставляют свободную библиотеку классов и компилятор, частично совместимые с текущей версией Oracle Java. В конце 2006 года Sun объявила, что весь исходный код Java, за исключением закрытого кода, на который они не сохраняют права, будет выпущен к марту 2007 года в качестве свободного программного обеспечения под видоизменённой лицензией GPL. Oracle в настоящее время распространяет свою HotSpot Virtual Machine и компилятор Java под лицензией GPL, но на стандартную среду выполнения Java сейчас нет свободной лицензии. Поскольку Oracle сохранит право собственности на свой исходный код Java, выпуск под лицензией GPL не запретит Oracle распространять несвободные или неоткрытые версии Java, или давать на это лицензии другим.
Перечисляемый тип
В первоначальной Java перечислений не было, вместо них предлагалось использовать классы со статическими константами. Начиная с версии 5 (1.5) перечисления были введены в язык, они представляют собой полноценный класс, в который можно добавлять произвольное количество полей и методов. Перечисления были введены для улучшенного контроля за типобезопасностью.
Java-апплет
Компания Sun предприняла значительные усилия для обеспечения совместимости между Java-версиями по мере их появления. Например, Microsoft Internet Explorer, самый популярный браузер с конца 1990-х, имел обыкновение загружать собственную JVM для Microsoft по умолчанию. MS JVM имеет ряд дополнительных функций, не входящих в Java, которые, будучи использованы, будут препятствовать выполнению MS JVM-апплетам в среде Sun’s Java (но не наоборот). Sun предъявила Microsoft иск за нарушение прав на товарный знак, так как суть Java заключается в том, что не должно быть никакого собственного расширения и что код должен работать везде.
Развитие MS JVM было заморожено до правового урегулирования, оставив многих пользователей с чрезвычайно устаревшими виртуальными Java-машинами. Позже, в октябре 2001 года, MS остановил включение Java в Windows, и в течение ряда лет было оставлено на усмотрение производителей компьютеров устанавливать Java или нет, независимо от операционной системы. Большинство новых машин сейчас поставляется с официальной Sun Java.
Oracle
В результате поглощения Sun Microsystems, к Oracle перешла значительная часть активов, связанная с технологиями Java: языком Java, платформами J2ME, J2SE, J2EE, виртуальной машиной HotSpot. Oracle и ранее активно использовал Java-технологии в своих продуктах, в частности, в 1999 году в Oracle Database была включена виртуальная машина Java собственной разработки (Aurora JVM), с того же года выпускается средство Java-разработки (JDeveloper), а с начала 2000-х годов — компания выпустила большую серию связующего программного обеспечения, поддерживающего Java-стандарты, а также активно участвовала в Java Community Process.
Java
Релиз версии состоялся 28 июля 2011 года, кодовое имя Dolphin. В финальную версию Java Standard Edition 7 не были включены все ранее запланированные изменения. Согласно плану развития (план «Б»), включение нововведений будет разбито на две части: Java Standard Edition 7 (без лямбда-исчисления, проекта Jigsaw, и части улучшений проекта Coin) и Java Standard Edition 8 (все остальное), намеченный на конец 2012 года.
JLex
JLex — свободно распространяемый генератор лексических анализаторов для языка программирования Java на основе анализатора Lex. Написан на языке Java. JLex был разработан Эллиотом Берком в Принстонском Университете. Последняя версия — 1.2.6, обновлённая 7 февраля 2003 года.
История версий Java SE
Следующей базовой версией Java стала версия Java 2, символизировавшая собой второе поколение. Первой версии Java 2 был присвоен номер 1.2. С появлением версии 2, SUN Microsystems стала выпускать Java в виде пакета J2SE (Java 2 Platform Standard Edition — Стандартная версия платформы Java 2) и теперь номера версий указываются применительно к этому продукту.
Rhino
Проект Rhino был начат в Netscape в 1997 году. В то время Netscape планировала разработать версию Navigator, написанную полностью на Java и поэтому ей требовалась реализация JavaScript, написанная на Java. Когда Netscape остановила работу над «Javagator», как он был назван, проект Rhino был закончен как JavaScript движок. С того времени несколько крупных компаний (включая Sun Microsystems) лицензировали Rhino для использования в своих проектах и платили для этого Netscape, позволяя продолжать работу над ним.
Java (программная платформа)
Программная платформа Java — ряд программных продуктов и спецификаций компании Sun Microsystems, ранее независимой компании, а ныне дочерней компании корпорации Oracle, которые совместно предоставляют систему для разработки прикладного программного обеспечения и встраивания её в любое кросс-платформенное программное обеспечение.
Java используется в самых разных компьютерных платформах от встраиваемых устройств и мобильных телефонов в нижнем ценовом сегменте, до корпоративных серверов и суперкомпьютеров в высшем ценовом сегменте. Хотя Java-апплеты редко используются в настольных компьютерах, однако они в них иногда используются для улучшения функциональности и повышения безопасности при просмотре всемирной паутины.
Java (программная платформа)
13 ноября 2006 года компания Sun Microsystems сделала большую часть своей реализации Java доступной в соответствии с GNU General Public License (GPL) , хотя некоторые части поставляются в скомпилированном виде из-за вопросов авторского права с кодом, на который имеет лицензию (но не право собственности) компания Sun Microsystems.
Javac
Javac — оптимизирующий компилятор языка java, включенный в состав многих Java Development Kit (JDK).
Компилятор принимает исходные коды, соответствующие спецификации Java language specification (JLS), и возвращает байт-код, соответствующий спецификации Java Virtual Machine Specification (JVMS).
История языков программирования
Кобол был разработан в 1959 году и предназначался прежде всего для написания программ для разработки бизнес приложений, а так же для работы в экономической сфере.
Блох, Джошуа
Джошуа Блох (англ. "Joshua J. Bloch") (род. 28 августа 1961 г.) — программный инженер и писатель, бывший работник компании Sun Microsystems и Google. Он возглавлял разработку и реализацию различных функционалов платформы Java, включая фреймворк коллекций Java Collections, пакет java.math и механизм assert.
История версий Java SE
Основными усовершенствованиями Java 2 по сравнению с Java 1.0 являются:Кодовое имя Kestrel.
Кодовое имя Merlin.
Кодовое имя Tiger.
Спецификация Java 5 была выпущена в сентябре 2004 года. В данной версии разработчики внесли в язык целый ряд принципиальных дополнений:
Полиз, Ким
Sun Microsystems, ведущий менеджер проекта Java. По заявлениям самой Ким Полиз, именно она придумала термин Java. По мнению других, в частности Артур ван Хофф убеждён, что первым предложил это слово Крис Уорт, один из инженеров проекта LiveOak.
Java (программная платформа)
Программная платформа Java — это имя для пакета программ компании Sun, которые позволяют разрабатывать и запускать программы, написанные на языке программирования Java. Эта программная платформа не является специфической для какого-либо одного процессора или операционной системы, но механизм выполнения (называемый виртуальной машиной) и компилятор с набором библиотек, которые реализованы для различного аппаратного обеспечения и различных операционных систем, чтобы Java-программы могли работать везде одинаково.
Сценарный язык
Создатель Java Джеймс Гослинг отвёл динамическим языкам программирования (упомянув PHP и Ruby) роль сценарных языков, генерирующих веб-страницы, но непригодных для применения в более широкой нише приложений из-за проблем с масштабируемостью и производительностью. Приверженцы динамических языков не оставили критику без ответа по всем пунктам, в частности о его старании представить современные динамические языки всего лишь «сценарными».
Java Virtual Machine
JVM является ключевым компонентом платформы Java. Так как виртуальные машины Java доступны для многих аппаратных и программных платформ, Java может рассматриваться и как связующее программное обеспечение, и как самостоятельная платформа. Использование одного байт-кода для многих платформ позволяет описать Java как «скомпилировано однажды, запускается везде» (compile once, run anywhere).
GNU Classpath
GNU Classpath представляет собой проект, направленный на создание свободной реализации стандартной библиотеки классов для языка программирования Java. Несмотря на большой размер библиотеки, большая часть задачи уже выполнена, включая Swing, CORBA, и другие основные элементы. Разработчики Classpath реализовали почти все классы J2SE 1.4 и 5.0. Таким образом, Classpath можно использовать для запуска популярных Java-программ, таких, как Vuze и Eclipse.
MIDletPascal
Компилятор языка MIDletPascal преобразует исходный код в байт-код Java. Синтаксис MIDletPascal подобен синтаксису языка программирования Паскаль. Компилятор MIDletPascal встроен в одноимённую интегрированную среду разработки, включающую в себя также инспектор байт-кода Java и обеспечивающую построение архива .jar и создание файла .jad, так что компиляция и компоновка мидлетов довольно проста даже для начинающих программистов. MIDletPascal позволяет любому человеку, знакомому с языком Паскаль, быстро создать программу для телефона, в отличие от JavaME (другого языка, испольуемого для мобильного программирования), требующего серьёзного изучения.
J (язык программирования)
Единственный из разработанных полноценный интерпретатор J являлся в 1994—2010 гг. несвободным, однако после выхода седьмой версии, 6 марта 2011 г., его исходные коды были открыты под лицензией GPL3.
Java Native Interface
Платформенно-зависимый интерфейс JNI предоставляет доступ не ко всему интерфейсу прикладного программирования конкретной операционной системы, а лишь к некоторой его части.
Впервые JNI использовался в Java версии 1.1 и был развит в Java 2.
Java Community Process
Java Community Process (JCP) — сформированный в 1998 году формальный процесс, который позволяет заинтересованным лицам участвовать в формировании будущих версий спецификаций платформ языка Java.
Критика Java
В первых версиях Java (до того, как HotSpot был реализован в Java 1.3 в 2000 году) было много критики по поводу низкой производительности. Java продемонстрировала работу на скорости, сравнимой с оптимизированным машинным кодом, а современные реализации виртуальной машины Java в тестах на производительность регулярно показывают одни из лучших результатов среди доступных языковых платформ — обычно в пределах 3 позиций по отношению к Си/C++.
История версий Java SE
Java 2, или Java 2.0 — дальнейшее развитие и усовершенствование спецификации исходного стандарта языка и платформы Java, на который теперь принято ссылаться как на Java 1.0. В настоящее время спецификация платформы Java 2 продолжает интенсивно развиваться и обогащаться, пополняясь новыми возможностями, особенно из-за конкуренции с платформой .Net, перенявшей у Java ряд ключевых особенностей.
Модель памяти Java
Язык программирования Java позволяет писать многопоточные программы. Поскольку Java может работать на самых разных процессорах и ОС, синхронизация потоков особенно затрудняется. Чтобы программист мог сделать какие-то выводы о поведении программ, разработчики Java решили чётко определить различные варианты поведения всех программ на Java.
Язык программирования
В 1990-х годах в связи с активным развитием Интернета распространение получили языки, позволяющие создавать сценарии для веб-страниц — главным образом Perl, развившийся из скриптового инструмента для Unix-систем, и Java. Возрастала также и популярность технологий виртуализации. Эти изменения, однако, также не представляли собой фундаментальных новаций, являясь скорее совершенствованием уже существовавших парадигм и языков (в последнем случае — главным образом семейства Си).
Байт-код Java
Для программирования на языке Java или других JVM-совместимых языках знание особенностей байт-кода не обязательно. Однако, как следует из публикации в журнале IBM developerWorks, «понимание байт-кода и понимание механизмов его генерации компилятором Java помогает Java-программисту так же, как и знание языка ассемблера помогает программисту, пишущему на Си или C++».
Java Cryptography Extension
Пакет Cryptix JCE является самым известным из бесплатных расширений. Работа над ним началась в 1995 году. Это была первая доступная криптографическая библиотека для Java. Тогда криптография не имела широкой доступности, и данный проект играл важную роль в защите информации при разработке программ на Java платформе. Последняя версия Cryptix была выпущена 28 апреля 2005 года. В том же году поддержка Cryptix была прекращена.
Java
Дата выпуска 6 февраля 2002 года. Кодовое имя Merlin.
Java Card
На уровне языка "Java Card" — это подмножество более полных платформ Java: все языковые конструкции "Java Card" присутствуют в "Java" и ведут себя в точности так же. Более того, при стандартной последовательности компиляции используется обычный компилятор Java (javac) без каких-либо специальных опций, и лишь потом результат обрабатывается специфичной для Java Card программой, чтобы получить файл, который можно будет установить на смарт-карту. Однако многие возможности языка Java не поддерживаются в Java Card, например, типы "char", "double", "float" и "long", ключевое слово "transient", перечислимые типы ("enum"), многомерные массивы, финализаторы, клонирование объектов, потоки.
FIT
Fit был изобретен Уордом Каннингемом в 2002 году. Он создал первоначальную Java версию Fitа. К 2005-му году существовали версии Fit для Java, C#, Python, Perl, PHP и Smalltalk.
Abstract Window Toolkit
Одновременно с разработкой Java начал разрабатываться проект Caciocavallo. Его целью является предоставление Java API, основанных на OpenJDK для облегчения написания реализаций AWT для новых операционных систем. Для построения интерфейса используется Java2D. Все необходимые модификации включены в JDK начиная с версии OpenJDK 7.
Java Virtual Machine
В 1996-м году компания Sun выпустила первую версию документа «Голубая книга JVM», в котором описана спецификация виртуальной машины Java, ставшего де-факто отраслевым стандартом платформы Java. Благодаря этому документу появились альтернативные реализации JVM, являющиеся «разработками с чистого листа» (). В качестве примера можно привести Kaffe.
Java
Разработка Java началась в 1990 году, первая официальная версия — Java 1.0, — была выпущена только 21 января 1996 года.
JavaFX
Технология JavaFX была впервые продемонстрирована корпорацией Sun Microsystems на конференции JavaOne в мае 2007 года. 4 декабря 2008 года вышла версия 1.0 платформы, содержащая следующие компоненты:Приложения JavaFX создаются с помощью декларативного языка программирования JavaFX Script. Для разработки приложений на языке JavaFX Script необходимо установить JavaFX SDK, который входит в поставку с Java SE 7. Из кода, написанного на языке JavaFX Script, можно обращаться к любым библиотекам Java. Поэтому совместное использование языков Java и JavaFX Script позволяет решать разнообразные задачи, например, логика бизнес-приложения может быть написана на Java, а графический интерфейс пользователя — на JavaFX Script.
Java
Java не является процедурным языком: любая функция может существовать только внутри класса. Это подчёркивает терминология языка Java, где нет понятий «функция» или «функция-член» (), а только "метод". В методы превратились и стандартные функции. Например, в Java нет функции codice_69, а есть метод codice_70 класса codice_71 (содержащего, кроме codice_69, методы codice_73, codice_74, codice_75, codice_76 и многие другие). Конструкторы в Java не считаются методами. Деструкторов в Java не существует, а метод codice_77 ни в коем случае нельзя считать аналогом деструктора.
Джарайский язык
Письменность на основе латинского алфавита создана французскими миссионерами в начале XX века. Эта письменность используется преимущественно во Вьетнаме и включает следующие буквы: A a, Ă ă, Â â, B b, Ƀ ƀ, Č č, D d, Đ đ, E e, Ĕ ĕ, Ê ê, Ê̆ ê̆, G g, H h, I i, Ĭ ĭ, J j, Dj dj, K k, L l, M m, N n, Ñ ñ, Ng ng, O o, Ŏ ŏ, Ô ô, Ô̆ ô̆, Ơ ơ, Ơ̆ ơ̆, P p, R r, S s, T t, U u, Ŭ ŭ, Ư ư, Ư̆ ư̆, W w, Y y. В Камбодже в начале XXI века для джарайского языка была создана письменность на основе кхмерского алфавита.
Java
В 2005 году компанией Microsoft для платформы .NET был представлен Java-подобный язык J#, не соответствующий официальной спецификации языка Java и исключённый впоследствии из стандартного инструментария разработчика Microsoft Visual Studio, начиная с Visual Studio 2008.
Monkey (язык программирования)
Monkey был разработан Марком Сибли из Blitz Research Ltd. и выпущен 1 марта 2011 года. Monkey классифицируется как компилятор от источника к источнику, который может преобразовывать код Monkey в код Java, ActionScript, C++, C# или JavaScript. Этот язык программирования направлен на мульти-платформенную разработку приложений. Он имеет подробную реализацию объектно ориентированной парадигмы и поддерживает наследование, полиморфизм, шаблоны, интерфейсы. Monkey классифицируется как строго типизированный язык.
Julia (язык программирования)
Обсуждение необходимости создания нового языка началось в августе 2009 года. Стефан Карпински, к тому времени поработавший с математическим пакетом Matlab и языком программирования R, испытывал неудовлетворённость их ограничениями. И после того, как Вирал Шах познакомил его с Джеффом Безансоном, все трое принялись обсуждать концепцию нового языка. Для выбора женского имени в качестве названия языка, как пояснял в интервью ведущий разработчик языка Стефан Карпински, «особой причины не было», разработчикам просто «понравилось это имя». Первая открытая версия была опубликована в феврале 2012.
История версий Java SE
Вышла 18 марта 2014 года.
Java Platform, Enterprise Edition
Java Platform, Enterprise Edition, сокращенно Java EE (до версии 5.0 — Java 2 Enterprise Edition или J2EE). В 2018 Eclipse Foundation переименовала Java EE в Jakarta EE — набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий.
JavaScript
Первоначально язык назывался Mocha, затем он был переименован в LiveScript и предназначался как для программирования на стороне клиента, так и для программирования на стороне сервера (там он должен был называться LiveWire). На синтаксис оказали влияние языки Си и Java, и, поскольку Java в то время было модным словом, 4 декабря 1995 года LiveScript переименовали в JavaScript, получив соответствующую лицензию у Sun. Анонс JavaScript со стороны представителей Netscape и Sun состоялся накануне выпуска второй бета-версии Netscape Navigator. В нём декларируется, что 28 лидирующих ИТ-компаний выразили намерение использовать в своих будущих продуктах JavaScript как объектный скриптовый язык с открытым стандартом.
Abstract Window Toolkit
Когда Sun Microsystems впервые выпустила Java в 1995 году, виджеты AWT предоставляли тонкий уровень абстракции над основным родным пользовательским интерфейсом. Например, создание флажка AWT заставляет AWT напрямую вызвать более низкоуровневую нативную подпрограмму, которая и создает флажок. Однако, флажок (check box) на Microsoft Windows это не совсем то же, как флажок на Mac OS или на различных видах Unix. Некоторые разработчики предпочитают эту модель, поскольку она обеспечивает высокую степень соответствия основному оконному инструментарию и беспрепятственную интеграцию с родными приложениями. Другими словами, GUI программа, написанная с использованием AWT, выглядит как родное приложение Microsoft Windows, будучи запущенной на Windows, и в то же время как родное приложение Apple Macintosh, будучи запущенным на Mac, и т. д.. Однако, некоторым разработчикам не нравится эта модель, потому что они предпочитают, чтобы их приложения выглядели одинаково на всех платформах.
История версий Java EE
Разработка была начата после противоречивого голосования: 14 голосов за (87.5 %), 1 — против (6.25 %, Apache) и 1 — воздержался (6.25 %, Borland). Участники затронули проблемы, связанные с условиями лицензирования Sun Microsystems.12 июня 2013 была выпущена спецификация Java EE 7. В связи с трендомм на HTML5, в спецификацию была добавлена технология "Java API for WebSocket", "Java API for JSON Processing", асинхронные сервлеты и неблокирующий NIO, который стал причиной создания Play. В связи с трендом на большие данные, в Java EE было добавлено решение "Batch Applications for the Java".21 сентября 2017 была выпущена спецификация Java EE 8. Java EE перешла под контроль Eclipse Foundation, а также был открыт исходный код. Eclipse основала на Java EE Eclipse Enterprise for Java (EE4J). Эта версия направлена на улучшение поддержки HTML5 и базовую поддержку HTTP/2, упрощена интеграция "Managed Beans", улучшена инфраструктура для приложений в облаке, а также расширение диапазона технологий Java EE в пространство веб и облаков.
Cocoa
Фреймворки Cocoa написаны на Objective-C, и посему этот язык является предпочтительным для написания Cocoa-приложений. Доступна также связка для языка Java (Cocoa-Java Bridge), которая, впрочем, не особенно популярна среди разработчиков. Более того, использование позднего связывания приводит к тому, что многие ключевые функции Cocoa невозможно применять на Java. В 2005 году Apple объявила, что Cocoa-Java будет считаться устаревшей. Другими словами, функции, добавленные в Cocoa в версиях Mac OS X после 10.4 не будут добавляться в интерфейс Cocoa-Java.
Java
Вторая версия была выпущена 19 февраля 1997 года.
Джави
Алфавит джави существовал в течение многих столетий в Нусантаре (малайском мире). Его развитие было связано с принятием ислама. Алфавит состоит, главным образом, из арабских символов, наряду с некоторыми дополнительными знаками, уникальными для джави. К 29 арабским буквам добавлены шесть: ca, ba, ga, nga, nya, va. Последняя введена в оборот Советом по языку и литературе в 1990-е гг. .
Балийский язык
Балийский язык выделился приблизительно в 500 году н. э. и на протяжении нескольких веков оставался разговорным. Первый известный письменный источник появился в 882 году. В IX — XII вв. язык изменялся вследствие распространения на Бали индуизма и буддизма, заимствуя лексику из санскрита. В следующие столетия основное влияние на балийский оказывали сначала кави — древнеяванский язык, а затем яванский язык.
Scala (язык программирования)
Язык был выпущен для общего пользования на платформе JVM в январе 2004 года и на платформе .NET в июне 2004 года, в 2016 году создан LLVM-компилятор (Scala Native).
История свободного программного обеспечения
8 мая 2007 года компания Sun Microsystems выпустила комплект разработки приложений Java Development Kit, доступный под лицензией GPL. Однако часть библиотек была выпущена в виде бинарных файлов в виду невозможности открытия исходного кода по ряду причин. В июне 2007 компания Red Hat запустила проект GNU Classpath, направленный на доработку проекта с целью создания полнофункционального свободного аналога. К настоящему времени практически все известные проблемы решены.
Scripting for the Java Platform
Спецификация Scripting for the Java Platform была разработана в рамках Java Community Process, получив номер JSR 223. Её финальный релиз выпущен 11 декабря 2006 года. Однако 13 декабря 2016, после дискуссии и голосования, было решено, что эта функциональность будет включена как составная часть в Java 9, и JSR 223 была отозвана.
Гослинг, Джеймс
Джеймс Гослинг (; 19 мая 1955 года, Калгари, Канада) — автор объектно-ориентированного и кросс-платформенного языка программирования Java. Кроме того, является создателем оконной системы NeWS, Gosling Emacs, а также был одним из разработчиков Star Seven.
История языков программирования
Языки программирования принято делить на пять поколений. В первое поколение входят языки, созданные в начале 50-х годов, когда первые компьютеры только появились на свет. Это был первый язык ассемблера, созданный по принципу «одна инструкция — одна строка».
Сервлет (Java)
Первая спецификация сервлетов была создана в Sun Microsystems (версия 1.0 была закончена в июне 1997). Начиная с версии 2.3, спецификация сервлетов разрабатывалась под руководством Java Community Process. Стандарт JSR 53 определял как Servlet 2.3, так и спецификацию JavaServer Page 1.2. JSR 154 включает в себя спецификации Servlet 2.4 и 2.5. Текущая спецификация на 13 июня 2013 года — Servlet 3.1 (описана в JSR-340).
Java API for XML Based Web Services
Java API for XML Based Web Services (JAX-WS) — это прикладной программный интерфейс языка Java для создания веб-служб, являющийся частью платформы Java EE. JAX-WS является заменой технологии JAX-RPC, предоставляя более документо-ориентированную модель сообщений и упрощая разработку веб-служб за счёт использования аннотаций, впервые появившихся в Java SE 5. Технология JAX-WS является стандартом и описана в JSR 224.JAX-WS использует аннотации, описанные в JSR 181, для отображения POJO классов на WSDL. Среди них:
Pnuts
Pnuts был первоначально разработан в 1997 году Toyokazu Tomatsu как средство тестирования классов Java. Позже язык Pnuts был расширен, ориентируясь в основном на главные функции необходимые скриптовому движку, такие как модульная система и компилятор байт-кода.
Гаевица
Га́евица, или хорватская латиница (названа по имени своего создателя, деятеля хорватского Возрождения Людевита Гая) — латинский алфавит для хорватского языка, созданный в середине XIX века по образцу чешского, и с тех пор более не менявшийся.
Java
Такая жёсткая стандартизация была необходима, чтобы сделать язык платформенно-независимым, что является одним из идеологических требований к Java. Тем не менее, одна небольшая проблема с платформенной независимостью всё же осталась. Некоторые процессоры используют для промежуточного хранения результатов 10-байтовые регистры или другими способами улучшают точность вычислений. Для того, чтобы сделать Java максимально совместимой между разными системами, в ранних версиях любые способы повышения точности вычислений были запрещены. Однако это приводило к снижению быстродействия. Выяснилось, что ухудшение точности ради платформенной независимости мало кому нужно, тем более если за это приходится платить замедлением работы программ. После многочисленных протестов этот запрет отменили, но добавили ключевое слово codice_32, запрещающее повышение точности.
Java (программная платформа)
Программный код, написанный на Java, виртуальная машина Java исполняет байт-код Java. Однако есть компиляторы байт-кода для других языков программирования, таких как Ada, JavaScript, Python, и Ruby. Также есть несколько новых языков программирования, разработанных для работы с виртуальной машиной Java. Это такие языки как Scala, Clojure and Groovy. в основном заимствован из Си и C++, но объектно-ориентированные возможности основаны на модели, используемой в Smalltalk и Objective-C. В Java отсутствуют определённые низкоуровневые конструкции, такие как указатели, также Java имеет очень простую модель памяти, где каждый объект расположен в куче и все переменные объектного типа являются ссылками. Управление памятью осуществляется с помощью интегрированной автоматической сборки мусора, которую выполняет JVM.
Java
Начиная с версии Java 5.0 в языке появился механизм обобщённого программирования — шаблоны, внешне близкие к шаблонам C++. С помощью специального синтаксиса в описании классов и методов можно указать параметры-типы, которые внутри описания могут использоваться в качестве типов полей, параметров и возвращаемых значений методов.
Даль, Оле-Йохан
Учился с 1949 по 1957 год в университете Осло, получил степень магистра наук по вычислительной математике. С 1952 по 1963 являлся сотрудником норвежского военного научно-исследовательского института (), затем работал в Норвежском вычислительном центре. В альма-матер получил полную профессуру в 1968 году, став первым профессором информатики в Норвегии. Там он работал до 1999 года вместе с Кристеном Нюгором над теорией объектно-ориентированных языков программирования. Вместе они разработали первый объектно-ориентированный язык "Simula I", позже "Simula 67". Даль и Нюгор ввели такие понятия, как класс, объект, наследование, динамическое создание объектов и т. д. Сейчас эти термины являются неотъемлемыми основами всех современных объектно-ориентированных языков программирования — в частности, языков Java и C++. Кроме того, в университете Осло Даль работал над иерархической структурой программирования.
MacOS
Также macOS поддерживает Java. Это означает, что Java-приложения, использующие Swing, выглядят так же, как и приложения на Cocoa. Традиционно Cocoa-приложения разрабатываются на Objective-C — де-факто компилируемой альтернативе Java. Однако 25 июля 2007 года Apple заявила, что дальнейшие расширения в Cocoa не будут портированы на Java. В составе macOS, начиная с версии 10.5 Leopard, поставляется интерпретатор Ruby с поддержкой Cocoa.
Оберон (язык программирования)
По утверждению Вирта, разработчики языка Java за несколько лет до её создания «изучили исходные коды Оберона и, в частности, исходные коды обероновских сборщиков мусора. Потом они испортили Оберон синтаксисом Си и назвали получившееся словом Java». Хотя от устного выступления нельзя требовать абсолютной точности формулировок, но во всяком случае несомненное сходство идеологий Оберона и Java (стремление к минимализму и строгой типизации, ограничение множественного наследования, автоматическое управление памятью) говорит о том, что здесь имеет место определённый консенсус относительно того, какие средства должны составлять ядро современного языка программирования общего назначения. Однако если в Обероне и его прямых наследниках минимализм остаётся во главе угла, разработчики Java пошли по пути экстенсивного наращивания возможностей языка.
Java
Релиз версии состоялся 11 декабря 2006 года, кодовое имя Mustang. Изменена официальная индексация — вместо ожидаемой 6.0 версия значится как 6. Минорные изменения, как и в Java 5.0, вносятся в обычные обновления версии, например, Java Standard Edition Development Kit 6 Update 27. Внесены следующие изменения:Дата выпуска 8 октября 2013 года.
Байт-код Java
Байт-код Java разработан для исполнения на виртуальной машине Java (JVM, Java Virtual Machine) компании Sun. На сегодняшний день также доступны различные реализации JVM, как свободные, так и коммерческие.
Java
Программы, написанные на Java, имеют репутацию более медленных и занимающих больше оперативной памяти, чем написанные на языке C. Тем не менее, скорость выполнения программ, написанных на языке Java, была существенно улучшена с выпуском в 1997—1998 годах так называемого JIT-компилятора в версии 1.1 в дополнение к другим особенностям языка для поддержки лучшего анализа кода (такие, как внутренние классы, класс , упрощенные логические вычисления и т. д.). Кроме того, была произведена оптимизация виртуальной машины Java — с 2000 года для этого используется виртуальная машина HotSpot. По состоянию на февраль 2012 года, код Java 7 приблизительно в 1,8 раза медленнее кода, написанного на языке Си.
OpenGL
Для подтверждения независимости от языка программирования были разработаны различные варианты привязки (binding) функций OpenGL или полностью перенесены на другие языки. Одним из примеров может служить библиотека Java 3D, которая может использовать аппаратное ускорение OpenGL. Прямая привязка функций реализована в Lightweight Java Game Library, которая имеет прямую привязку OpenGL для Java. Sun также выпустила версию Java OpenGL (JOGL), которая предоставляет прямую привязку к Си-функциям OpenGL, в отличие от Java 3D, которая не имеет столь низкоуровневой поддержки. Официальный сайт OpenGL имеет ссылки на привязки для языков Java, Фортран 90, Perl, Pike, Python, Ada, Visual Basic и Pascal. Имеются также варианты привязки OpenGL для языков C++ и C#.
Visual J++
Visual J++ — реализация языка Java и среды разработки для него от компании Microsoft. Компания Microsoft прекратила развитие языка в январе 2004 года, критические обновления прекращены в 2007 году. Последней версией среды разработки с языком Visual J++ являлась Visual Studio 6.0.
Байт-код Java
В большинстве случаев байт-код Java генерируется для исполнения на виртуальной машине Java из исходного кода на языке Java. Единственный оригинальный компилятор, преобразующий код на языке Java в байт-код Java — это Javac, созданный компанией Sun Microsystems. Но поскольку все спецификации байт-кода Java доступны, существуют и сторонние компиляторы, генерирующие этот байт-код. Примеры таких компиляторов:
Для некоторых проектов существуют компиляторы, позволяющие генерировать байт-код для JVM из исходного кода на другом языке программирования. Среди этих проектов:
Модель памяти Java
В J2SE 5.0 (30 сентября 2004) появилась новая модель памяти, разработанная через Java Community Process под названием JSR-133. Она лучше отражала принципы работы современных процессоров и компиляторов, и другие языки брали идеи из модели Java.
OCaml
В современном виде OCaml появился в 1996 году, когда Дидье Реми (Didier Rémy) и Джером Вуйон (Jérôme Vouillon) реализовали для языка стройную и эффективную поддержку объектов. Эта объектная система позволяет на этапе компиляции в типобезопасной манере использовать идиомы объектно-ориентированного программирования, без свойственных C++ и Java проверок времени выполнения.
HotSpot
«HotSpot», впервые выпущенная 27 апреля 1999 года, изначально разрабатывалась «Longview Technologies» — небольшой компанией, основанной в 1994 году. В 1997 году компанию купила Sun Microsystems. Сначала «HotSpot» использовали как дополнение к «Java 1.2», однако, эта виртуальная машина стала основной с выходом «Java 1.3».
Критика Java
Критика Java — комплекс из большого количества разной степени проработанности критических замечаний, выдвинутых к языку программирования Java, одноимённой программной платформе, проектным решениям, выполненным на основе этого языка и платформы, а также к организации процесса развития языка и базовой платформы.
Сравнение C Sharp и Java
C#, в свою очередь, развивается быстрее, гораздо слабее ограничивая себя в добавлении новых проблемно-ориентированных возможностей. Особенно эта тенденция проявилась в версии C# 3.0, в которой, например, появились SQL-подобные запросы. (Новые возможности при этом строятся так, чтобы язык оставался языком общего назначения. Подробнее о C# 3.0 см в статье о C#). Проблемно-ориентированные дополнения к Java рассматривались, но, по крайней мере на сегодняшний день, были отвергнуты.
Java OpenGL
Java OpenGL (JOGL) — библиотека, представляющая собой прямую привязку функций OpenGL к языку программирования Java. Является эталонной реализацией спецификации JSR-231 (Java Bindings to OpenGL). Отмечена независимым сообществом opengl.org (см. Programming Language Bindings to OpenGL). Изначально библиотека разрабатывалась Кеннетом Бредли Расселом и Кристофером Джоном Клайном, а позже группой Game Technology Group компании Sun Microsystems. В настоящее время является независимым открытым проектом.
JAWS
В 1992 году, когда Microsoft Windows стала занимать доминирующие позиции на рынке, Опперманн приступил к работе над новой версией JAWS. Интерфейс изменён не был. Бета-версии JAWS для Windows (JFW) были продемонстрированы на конференциях в 1993 и 1994 годах. В течение этого времени разработчик Глен Гордон начал работу над кодом, в конечном счете, став главным разработчиком, после перехода Опперманна в Microsoft в ноябре 1994 года. Вскоре после этого, в январе 1995 года, вышла финальная версия JAWS для Windows 1.0.
JavaScript
В 1992 году компания (впоследствии приобретённая ) начала разработку встраиваемого скриптового языка (Си-минус-минус), который, по замыслу разработчиков, должен был стать достаточно мощным, чтобы заменить макросы, сохраняя при этом схожесть с Си, чтобы разработчикам не составляло труда изучить его. Главным отличием от Си была работа с памятью. В новом языке всё управление памятью осуществлялось автоматически: не было необходимости создавать буферы, объявлять переменные, осуществлять преобразование типов. В остальном языки сильно походили друг на друга: в частности, поддерживал стандартные функции и операторы Си. был переименован в , поскольку исходное название звучало слишком негативно, а упоминание в нём Си «отпугивало» людей.
На основе этого языка был создан проприетарный продукт . В конце ноября 1995 года разработала версию , внедряемую в веб-страницы. Страницы, которые можно было изменять с помощью скриптового языка, получили название  — они демонстрировали использование скриптового языка для создания игры, проверки пользовательского ввода в формы и создания анимации. позиционировались как демоверсия, призванная помочь представить, что случится, если в браузер будет внедрён язык . Работали они только в 16-битовом Netscape Navigator под управлением Windows.
Кобол
Кобо́л ("COBOL", "COmmon Business Oriented Language") — один из старейших языков программирования (первая версия выпущена в 1959 году), предназначенный, в первую очередь, для разработки бизнес-приложений. Руководителем проекта по созданию Кобола была Грейс Хоппер («бабушка Кобола»). Практически с самого своего рождения Кобол является ANSI-стандартизованным языком программирования.
OpenJDK
Компания Sun на конференции JavaOne 2006 объявила, что Java станет свободным программным обеспечением, и 25 октября 2006 на конференции Oracle OpenWorld Джонатан Шварц сказал, что компания намерена открыть коды ядра платформы Java в течение 30—60 дней.
J (язык программирования)
Язык программирования J был разработан в начале 1990-х Кеннетом Айверсоном и как синтез APL (также разработанного Айверсоном) и языков комбинаторного программирования и , разработанных Бэкусом.
Основные его черты — это ориентированность на MIMD инструкции, функциональный подход (переменные исключены вообще, вместо них действует механизм переименований и комбинаторы).