List of programming software
В этот список языков JVM входят известные языки компьютерного программирования , которые используются для создания компьютерного программного обеспечения , работающего на виртуальной машине Java (JVM). Некоторые из этих языков интерпретируются программой Java , а некоторые компилируются в байт-код Java и JIT-компилируются во время выполнения как обычные программы Java для повышения производительности .
JVM изначально была разработана для поддержки только языка Java. Однако со временем все больше языков были адаптированы или разработаны для работы на платформе Java .
JVM-языки
Громкие языки
По состоянию на февраль 2023 года, согласно индексу TIOBE [1] 100 лучших языков программирования и PyPL, ведущими языками JVM являются:
- Java (№4, в какой-то момент №1; №2 в PyPL), статически типизированный объектно-ориентированный язык.
- Kotlin (№18, в какой-то момент №27; №13 в PyPL), статически типизированный язык от JetBrains , разработчиков IntelliJ IDEA [2] и предпочтительный язык Google для Android.
- Scala (№38, одно время №20; №19 в PyPL), статически типизированный объектно-ориентированный и функциональный язык программирования [3]
- Groovy (больше не входит в топ-50, входит в число 51–100; № 24 в PyPL), динамический язык программирования (также со статической типизацией) и язык сценариев [2]
- Clojure (больше не входит в топ-50, входит в число 51–100, в какой-то момент занял 47-е место), динамический и функциональный диалект языка программирования Lisp [2] ( ClojureScript не создает индекс TIOBE отдельно, и это реализация, ориентированная на Интернет с помощью JavaScript , а не JVM.)
Python — лучший язык TIOBE; Jython , его реализация JVM, не входит в список (из 100 языков) под этим именем (синтаксис совместим с Python 2.7, который теперь является устаревшей версией Python). JavaScript (7-е место), PHP , R и другие также входят в топ-20 и имеют реализации JVM; Ruby занимает 16-е место, а JRuby , его реализация JVM, указан отдельно.
JVM-реализации существующих языков
Новые языки с реализациями JVM
- Ateji PX , расширение Java для простого параллельного программирования на многоядерных процессорах, графических процессорах, в сетях Grid и в облаке [21]
- Ballerina — язык для облачных приложений со структурной типизацией; сетевые клиентские объекты, службы, функции ресурсов и прослушиватели; параллельный параллелизм с работниками; построение имиджа; управление конфигурацией; и проверка на наличие пятен. [22]
- BeanShell — язык сценариев, синтаксис которого близок к Java.
- EPL (язык обработки событий), специализированный язык манипулирования данными для анализа и обнаружения закономерностей в синхронизированных потоках событий, который расширяет SQL 92 функциями, ориентированными на события. Он реализован Esper : до версии 6 EPL в основном был языком, интерпретируемым библиотекой Java; начиная с версии 7 он компилируется в байт-код JVM.
- Concurnas — язык JVM с открытым исходным кодом, предназначенный для создания надежных, масштабируемых, высокопроизводительных параллельных, распределенных и параллельных систем.
- Ceylon , конкурент Java от Red Hat [2]
- CFML , язык разметки ColdFusion, более известный как CFML, представляет собой язык сценариев для веб-разработки, который работает на JVM, платформе .NET и Google App Engine. [23]
- Quark Framework (CAL), функциональный язык, вдохновленный Haskell .
- E -on-Java, объектно-ориентированный язык для безопасных распределенных вычислений.
- Эта, чистый, ленивый, строго типизированный функциональный язык в духе Haskell [24]
- Fantom — язык, созданный на базе, который можно переносить через JVM, .NET Common Language Runtime (CLR) и JavaScript [25] [2]
- Flix — функциональный, императивный и логический язык с первоклассными ограничениями Datalog и полиморфной системой эффектов.
- Поток Java
- Fortress — язык, разработанный Sun как преемник Fortran, в основном для параллельных научных вычислений. Разработка продукта была передана Oracle после покупки Sun. По словам доктора Добба, Oracle прекратила разработку в 2012 году.
- Фреге, нестрогий, чисто функциональный язык в духе Haskell [26]
- Golo — простой, динамичный, слабо типизированный язык для JVM, разработанный в Национальном институте прикладных наук Лиона , Франция, сейчас это инкубационный проект в Eclipse Software Foundation. [27] [28] [29]
- Gosu — расширяемый язык системы типов, скомпилированный в байт-код Java.
- Haxe — кроссплатформенный статически типизированный язык, ориентированный на Java и JVM.
- Ioke, язык , основанный на прототипах, чем-то напоминающий Io , имеющий сходство с Ruby , Lisp и Smalltalk.
- Желе
- Присоединяйтесь к Java , языку, который расширяет Java семантикой исчисления соединений.
- Радость
- юдоскрипт
- Mirah , настраиваемый язык с выводом типов и синтаксисом, во многом вдохновленным Ruby [30] [31]
- NetLogo — многоагентный язык.
- Noop — язык, в котором основное внимание уделяется тестируемости.
- Pizza — расширенная версия Java с указателями на функции и алгебраическими типами данных.
- Пнуты
- Processing — язык и платформа визуализации и анимации на основе Java с синтаксисом, подобным Java.
- Prompto — язык, «предназначенный для создания бизнес-приложений в облаке». Это часть одноименной платформы для разработки бизнес-приложений непосредственно в облаке. Язык Промпто включает три «диалекта»: англи, монти и обджи. Энгли «насколько это возможно имитирует английский язык», Монти «старается максимально следовать синтаксису языка Python 3», а Objy «старается максимально следовать синтаксису языков ООП, таких как C++, Java или C#. ". Все три диалекта легко переводятся друг в друга. [32]
- RascalMPL — независимый (параметризованный) метаязык исходного и целевого языков.
- Пока
- X10 — язык, разработанный IBM, с ограниченными типами и упором на параллелизм и распространение [2]
- Xtend — объектно-ориентированный , функциональный и императивный язык программирования, созданный на базе Eclipse , обеспечивающий тесную совместимость с Java, с упором на методы расширения и лямбда-выражения, а также богатый инструментарий.
- Yeti, функциональный язык в стиле машинного обучения [33]
- Yirgacheffe — язык, целью которого является упрощение и расширение объектно-ориентированной парадигмы. [34]
- Yoix , необъектно-ориентированный, интерпретируемый динамический язык общего назначения.
Сравнение этих языков
Смотрите также
Примечания
- ^ [17] [18] [19] — бесплатная IDE, находящаяся в стадии бета-тестирования с 2009 года, с частично открытым исходным кодом [20] среды выполнения Jabaco. Jabaco компилирует исходный синтаксис VB 6 в байт-код Java.
Рекомендации
- ^ "Индекс ТИОБЕ" . ТИОБЕ . Проверено 23 февраля 2023 г.
- ^ abcdef Урма, Рауль-Габриэль (1 июля 2014 г.). «Альтернативные языки для JVM. Взгляд на восемь функций восьми языков JVM». Оракул . Проверено 13 марта 2019 г.
- ^ Вамплер, Дин (15 января 2009 г.). «Внедрение новых языков JVM на предприятии (обновлено)». objectmentor.com. Архивировано из оригинала 22 мая 2009 года . Проверено 18 июня 2009 г.
- ^ «Брошюра 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 г.
- ^ ab «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 г.
- ^ «Язык программирования Yeti» . Проверено 5 мая 2020 г.
- ^ "Йиргачеффе" . Проверено 9 января 2020 г.