Список языков JVM
В этот список языков JVM входят известные языки компьютерного программирования , которые используются для создания компьютерного программного обеспечения , работающего на виртуальной машине Java (JVM). Некоторые из этих языков интерпретируются программой Java , а некоторые компилируются в байт-код Java и . JIT-компилируются во время выполнения как обычные программы Java для повышения производительности
JVM изначально была разработана для поддержки только языка Java. Однако со временем все больше языков было адаптировано или разработано для работы на платформе Java .
JVM-языки
[ редактировать ]Громкие языки
[ редактировать ]По состоянию на 2024 год по индексу TIOBE [1] из 100 лучших языков программирования и PyPL, [2] Лучшие языки JVM:
- Java (№4, в какой-то момент №1; №2 в PyPL), статически типизированный объектно-ориентированный язык.
- Kotlin (№19, в какой-то момент №18; №13 в PyPL), статически типизированный язык от JetBrains , разработчиков IntelliJ IDEA. [3] и Google предпочтительный язык для Android
- Scala (№34, одно время №20; №21 в PyPL), статически типизированный объектно-ориентированный и программирования . функциональный язык [4]
- Groovy (больше не входит в топ-50, входит в число 51–100, одно время занимал 15-е место; 25-е место в PyPL), динамический язык программирования (также со статической типизацией) и язык сценариев. [3] [5]
- Clojure (больше не входит в топ-50, входит в число 51–100, в какой-то момент занимал 47-е место), динамический и функциональный диалект языка Lisp. программирования [3] ( ClojureScript не создает индекс TIOBE отдельно, его статистика включена в Clojure, и это реализация, ориентированная на Интернет с помощью JavaScript , а не JVM.)
Python — лучший язык TIOBE; Jython , его реализация JVM, не входит в список (из 100 языков) под этим именем (синтаксис совместим с Python 2.7, который теперь является устаревшей версией Python). JavaScript (6-е место), PHP , R и другие также входят в топ-20 и имеют реализации JVM; Ruby занимает 18-е место, а JRuby , его реализация JVM, не указан отдельно.
JVM-реализации существующих языков
[ редактировать ]Язык | Реализации JVM |
---|---|
Идти | игра |
Синтаксис Ардена | Arden2ByteCode |
КОБОЛ | NTT Data Enterprise COBOL [6] Микро Фокус Визуальный КОБОЛ [7] |
Язык разметки ColdFusion (CFML) | Adobe КолдФьюжн Трескаться Люси Открыть BlueDragon |
Общий Лисп | Вооруженный медведь Общий шепелявый [9] |
Сайфер | Neo4j [10] |
Хаскелл | Эта (язык программирования) |
JavaScript | Носорог носорог |
Биткод LLVM | Первый [12] |
Меркурий | Меркурий (класс Java) |
OCaml | OCaml-Java |
Компонентный Паскаль | Компонентный Паскаль Gardens Point |
Паскаль | МидлетПаскаль Кислород |
Раку | Ракудо |
PHP | Кверкус [13] [14] JPHP |
Пролог | JIПролог ТуПролог |
Питон | Джитон ЗипПи [15] Грааль.Питон [11] |
Р | Ренджин ФастР [16] |
Рекс | НетРекс |
Руби | ДжРубин ТрюфельРубин [17] |
Схема | Биглу горько-сладкий СИСЦ JScheme |
начало | Открытый исходный код: начало |
Смолток | Красная линия [18] |
Стандартный ML | MLj |
Ткл | Жакль |
Визуальный Бейсик | Хабако [примечание 1] |
Новые языки с реализациями JVM
[ редактировать ]- Ateji PX , расширение Java для простого параллельного программирования на многоядерных процессорах, графических процессорах, в сетях Grid и в облаке. [23]
- Ballerina — язык для облачных приложений со структурной типизацией; сетевые клиентские объекты, службы, функции ресурсов и прослушиватели; параллельный параллелизм с работниками; построение имиджа; управление конфигурацией; и проверка на наличие пятен. [24]
- BeanShell — язык сценариев, синтаксис которого близок к Java.
- EPL (язык обработки событий), специализированный язык манипулирования данными для анализа и обнаружения закономерностей в синхронизированных потоках событий, который расширяет SQL 92 функциями, ориентированными на события. Он реализован Esper : до версии 6 EPL в основном был языком, интерпретируемым библиотекой Java; начиная с версии 7 он компилируется в байт-код JVM.
- Concurnas — язык JVM с открытым исходным кодом, предназначенный для создания надежных, масштабируемых, высокопроизводительных параллельных, распределенных и параллельных систем.
- Ceylon — конкурент Java от Red Hat [3]
- CFML , язык разметки ColdFusion, более известный как CFML, представляет собой язык сценариев для веб-разработки, который работает на JVM, платформе .NET и Google App Engine. [25]
- Quark Framework (CAL), Haskell. функциональный язык, вдохновленный
- E -on-Java, объектно-ориентированный язык для безопасных распределенных вычислений.
- Эта, чистый, ленивый, строго типизированный функциональный язык в духе Haskell. [26]
- Fantom — язык, созданный на базе, который можно переносить через JVM, .NET Common Language Runtime (CLR) и JavaScript. [27] [3]
- Flix — функциональный, императивный и логический язык с первоклассными ограничениями Datalog и полиморфной системой эффектов.
- Поток Java
- Fortress — язык, разработанный Sun как преемник Fortran, в основном для параллельных научных вычислений. Разработка продукта была передана Oracle после покупки Sun. По словам доктора Добба, Oracle прекратила разработку в 2012 году.
- Фреге — нестрогий чисто функциональный язык в духе Haskell. [28]
- Golo — простой, динамичный, слабо типизированный язык для JVM, разработанный в Национальном институте прикладных наук Лиона , Франция, сейчас это инкубационный проект в Eclipse Software Foundation. [29] [30] [31]
- Gosu — расширяемый язык системы типов, скомпилированный в байт-код Java.
- Haxe — кроссплатформенный статически типизированный язык, ориентированный на Java и JVM.
- Ioke, язык, основанный на прототипах, чем-то напоминающий Io , имеющий сходство с Ruby , Lisp и Smalltalk.
- Желе
- Присоединяйтесь к Java , языку, который расширяет Java исчисления соединений. семантикой
- Радость
- Manifold — это «плагин» компилятора Java. (То есть, вместо того, чтобы быть автономным языком и компилятором, он захватывает и расширяет javac.) Его функции включают метапрограммирование, свойства, методы расширения, перегрузку операторов, шаблоны, препроцессор и многое другое.
- Mirah , настраиваемый язык с выводом типов и синтаксисом, вдохновленным Ruby. [32] [33]
- NetLogo — многоагентный язык.
- Noop — язык, в котором основное внимание уделяется тестируемости.
- Pizza — расширенная версия Java с указателями на функции и алгебраическими типами данных.
- Пнуты
- Processing — язык и платформа визуализации и анимации на основе Java с синтаксисом, подобным Java.
- Prompto — язык, «предназначенный для создания бизнес-приложений в облаке». Это часть одноименной платформы для разработки бизнес-приложений непосредственно в облаке. Язык Промпто включает три «диалекта»: англи, монти и обджи. Энгли «насколько это возможно имитирует английский язык», Монти «старается максимально следовать синтаксису языка Python 3», а Objy «старается максимально следовать синтаксису языков ООП, таких как C++, Java или C#. ". Все три диалекта легко переводятся друг в друга. [34]
- RascalMPL — независимый (параметризованный) метаязык исходного и целевого языков.
- Пока
- X10 — язык, разработанный IBM, с ограниченными типами и упором на параллелизм и распространение. [3]
- Xtend — объектно-ориентированный , функциональный и императивный язык программирования, созданный на основе Eclipse , обеспечивающий тесную совместимость с Java, с упором на методы расширения и лямбда-выражения, а также богатый инструментарий.
- Yeti , функциональный язык в стиле машинного обучения [35]
- Yirgacheffe — язык, целью которого является упрощение и расширение объектно-ориентированной парадигмы. [36]
- Yoix , необъектно-ориентированный, интерпретируемый динамический язык общего назначения.
Сравнение этих языков
[ редактировать ]Язык | Первый выпуск | Стабильная версия | Последний выпуск |
---|---|---|---|
Балерина | 2018 | 2019 | 2024 |
БинШелл | 1999 | 2013 | 2022 |
Затмение Цейлон | 2011 | 2017 | 2017 |
CFML | 1995 | 2018 | 2018 |
И | 1997 | 2016 | |
Фантом | 2011 | 2017 | 2024 |
Крепость | 2006 | 2011 | 2011 |
Спросил | 2012 | 2018 | |
Коллектор | 2019 | 2019 | 2023 |
Mirah | 2016 | 2016 | |
Экстенд | 2011 | 2021 | 2024 |
См. также
[ редактировать ]- Машина Да Винчи
- Виртуальная машина Java § Языки JVM
- Список языков CLI , соответствующий спецификации CLI, ответ Microsoft на JVM
Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ «Индекс ТИОБЕ» . ТИОБЕ . Проверено 16 марта 2023 г.
- ^ «Индекс популярности языков программирования PYPL» . pypl.github.io . Проверено 19 марта 2024 г.
- ^ Перейти обратно: а б с д и ж Урма, Рауль-Габриэль (1 июля 2014 г.). «Альтернативные языки для JVM. Взгляд на восемь функций восьми языков JVM» . Оракул . Проверено 13 марта 2019 г.
- ^ Уэмплер, Дин (15 января 2009 г.). «Внедрение новых языков JVM на предприятии (обновлено)» . objectmentor.com. Архивировано из оригинала 22 мая 2009 года . Проверено 18 июня 2009 г.
- ^ «Groovy Springs поддерживает список языков программирования TIOBE» . Проверено 10 марта 2021 г.
- ^ «Брошюра NTT Data Enterprise COBOL» (PDF) .
- ^ «Визуальная брошюра по COBOL» (PDF) . Проверено 5 апреля 2017 г.
- ^ «Техническое описание isCOBOL Evolve» (PDF) . Проверено 17 мая 2019 г.
- ^ Вооруженный медведь Common Lisp
- ^ «Новинки Neo4j: релиз Neo4j 2.3.0 Milestone 2 уже здесь» . 12 июня 2015 года . Проверено 20 февраля 2017 г.
- ^ Перейти обратно: а б «Oracle Labs GraalVM: обзор языков программирования и сред выполнения» . www.oracle.com . Проверено 12 апреля 2018 г.
- ^ "граалвм/сулонг" . Гитхаб . Проверено 12 апреля 2018 г.
- ^ «Представляем Quercus, PHP на основе Java» . ИБМ . Проверено 2 июля 2015 г.
- ^ «Запуск PHP с Quercus на веб-сервере Sun Java System» . Проверено 2 июля 2015 г.
- ^ «ssllab/ZipPy — Bitbucket» . bitbucket.org . Проверено 12 апреля 2018 г.
- ^ "оракул/фастр" . Гитхаб . Проверено 12 апреля 2018 г.
- ^ "оракул/трюфельруби" . Гитхаб . Проверено 12 апреля 2018 г.
- ^ «Красная линия Smalltalk» . Архивировано из оригинала 24 марта 2021 года . Проверено 2 сентября 2018 г.
- ^ «Запись о Jabaco в разделе «Основы» Mindteq.com» . Проверено 2 июля 2015 г. ]
- ^ «Статья о Jabaco в немецком издании Pro-Linux» . Проверено 2 июля 2015 г. ]
- ^ «Базовое знакомство с Java» . Проверено 26 февраля 2015 г.
- ^ "Рамки" . Проверено 26 февраля 2015 г.
- ^ «Ateji PX: параллельное программирование на Java стало проще» . Атеджи . Архивировано из оригинала 24 февраля 2014 года . Проверено 1 марта 2014 г.
- ^ «Анонсируем Балерину 1.0» . Балерина . Проверено 8 февраля 2020 г.
- ^ CFML , язык сценариев, скомпилированный в Java, используемый на ColdFusion или Railo. серверах приложений
- ^ «Язык программирования ETA» . Проверено 10 мая 2017 г.
- ^ «Фантомный язык программирования» . Фантом . Проверено 1 марта 2014 г.
- ^ «Фреге» . Проверено 1 марта 2014 г.
- ^ «Oracle.com — Golo — легкий динамический язык для JVM» . Архивировано из оригинала 3 июля 2015 года . Проверено 2 июля 2015 г. ]
- ^ «Голо номинирован на премию JAX Awards 2014» . Проверено 2 июля 2015 г. ]
- ^ «Заявление Golo на JAX Awards 2014» . Проверено 2 июля 2015 г. ]
- ^ «Язык программирования Mirah» . Гитхаб . Проверено 1 марта 2014 г.
- ^ «Мира» . Проверено 1 марта 2014 г.
- ^ «Платформа Промпто» . Проверено 14 сентября 2019 г.
- ^ «Язык программирования Йети» . Проверено 5 мая 2020 г.
- ^ «Йиргачеффе» . Проверено 9 января 2020 г.