Список программного обеспечения для программирования
Этот список языков JVM содержит известные языки программирования , которые используются для создания программного обеспечения , работающего на виртуальной машине Java (JVM). Некоторые из этих языков интерпретируются программой Java , а некоторые компилируются в байт-код Java и компилируются в режиме just-in-time (JIT) во время выполнения как обычные программы Java для повышения производительности.
JVM изначально была разработана для поддержки только языка Java. Однако со временем все больше языков были адаптированы или разработаны для работы на платформе Java .
Языки JVM
Популярные языки
По состоянию на 2024 год, согласно индексу TIOBE [1] 100 лучших языков программирования и PyPL [2] , лучшими языками JVM являются:
- Java (#3, одно время #1; #2 в PyPL), статически типизированный объектно-ориентированный язык
- Kotlin (#21, в какой-то момент #18; #13 в PyPL), статически типизированный язык от JetBrains , разработчиков IntelliJ IDEA [3] и предпочитаемый Google язык для Android
- Scala (#26, в какой-то момент #20; #22 в PyPL), статически типизированный объектно-ориентированный и функциональный язык программирования [4]
- Groovy (больше не входит в топ-50, входит в 51–100, в какой-то момент был на 15-м месте; на 26-м месте в PyPL), динамический язык программирования (также со статической типизацией) и язык сценариев [3] [5]
- Clojure (больше не входит в топ-50, входит в 51–100, в какой-то момент занимал 47-е место), динамичный и функциональный диалект языка программирования Lisp [3] ( ClojureScript не попадает в индекс TIOBE отдельно, его статистика включена в Clojure, и это реализация, ориентированная на веб с JavaScript , а не на JVM.)
- Язык программирования ByteSkript, предназначенный для новичков, который превращает простой, читаемый код в эффективную и безопасную программу для JVM . (Это язык, подобный Skript)
Python — главный язык TIOBE; Jython , его реализация JVM, не входит в список (из 100 языков) под этим названием (его синтаксис совместим с Python 2.7, ныне устаревшей версией Python). JavaScript (6-е место), PHP , R и другие также входят в двадцатку лучших и имеют реализации JVM; Ruby занимает 18-е место, в то время как JRuby , его реализация JVM, не указана отдельно.
Реализации существующих языков на JVM
Новые языки с реализациями JVM
- Ateji PX , расширение Java для простого параллельного программирования на многоядерных процессорах, GPU, Grid и Cloud [23]
- Ballerina — язык для облачных приложений со структурной типизацией; сетевые клиентские объекты, сервисы, функции ресурсов и слушатели; параллельная работа с работниками; построение образов; управление конфигурацией. [24]
- BeanShell — скриптовый язык, синтаксис которого близок к Java
- EPL (язык обработки событий), предметно-ориентированный язык манипулирования данными для анализа и обнаружения шаблонов в синхронизированных потоках событий, который расширяет SQL 92 с помощью событийно-ориентированных функций. Он реализован Esper : до версии 6 EPL был в основном языком, интерпретируемым библиотекой Java; с версии 7 он компилируется в байт-код JVM.
- Concurnas — язык JVM с открытым исходным кодом, предназначенный для создания надежных, масштабируемых, высокопроизводительных параллельных, распределенных и многопоточных систем.
- Ceylon , конкурент Java от Red Hat [3]
- CFML , ColdFusion Markup Language, более известный как CFML, — это язык сценариев для веб-разработки, работающий на JVM, .NET Framework и Google App Engine. [25]
- Quark Framework (CAL), функциональный язык, вдохновленный Haskell
- E -on-Java, объектно-ориентированный язык для безопасных распределенных вычислений
- Eta, чистый, ленивый, строго типизированный функциональный язык в духе Haskell [26]
- Fantom — язык, созданный с нуля для переносимости между JVM, .NET Common Language Runtime (CLR) и JavaScript [27] [3]
- Flix — функциональный, императивный и логический язык с первоклассными ограничениями Datalog и полиморфной системой эффектов.
- Поток Java
- Fortress — язык, разработанный Sun в качестве преемника Fortran, в основном для параллельных научных вычислений. Разработка продукта была передана Oracle, когда Sun была куплена. По словам доктора Доббса, Oracle прекратила разработку в 2012 году.
- Frege, нестрогий, чисто функциональный язык в духе Haskell [28]
- Golo — простой, динамичный, слабо типизированный язык для JVM, разработанный в Национальном институте прикладных наук в Лионе , Франция, в настоящее время являющийся инкубационным проектом в Eclipse Software Foundation. [29] [30] [31]
- Gosu — расширяемый язык системного типа, скомпилированный в байт-код Java
- Haxe — кроссплатформенный статически типизированный язык, ориентированный на Java и JVM.
- Ioke — прототипный язык, несколько напоминающий Io , имеющий сходство с Ruby , Lisp и Smalltalk.
- Желе
- Join Java , язык, расширяющий Java с помощью семантики join-calculus
- Радость
- Manifold — это «плагин» компилятора Java. (Т.е. вместо того, чтобы быть отдельным языком и компилятором, он захватывает и расширяет javac.) Его функции включают метапрограммирование, свойства, методы расширения, перегрузку операторов, шаблоны, препроцессор и многое другое.
- Mirah — настраиваемый язык с выводом типов и синтаксисом, во многом схожим с Ruby [32] [33]
- NetLogo , многоагентный язык
- Noop — язык, созданный с упором на тестируемость
- Pizza , надмножество Java с указателями функций и алгебраическими типами данных
- Пнутс
- Обработка , язык визуализации и анимации, а также фреймворк на основе Java с синтаксисом, подобным Java.
- Prompto, язык, «разработанный для создания бизнес-приложений в облаке». Он является частью одноименной платформы для разработки бизнес-приложений непосредственно в облаке. Язык Prompto включает три «диалекта»: Engly, Monty и Objy. Engly «максимально имитирует английский», Monty «пытается максимально следовать синтаксису языка Python 3», а Objy «пытается максимально следовать синтаксису языков ООП, таких как C++, Java или C#». Все три диалекта легко переводятся друг в друга. [34]
- RascalMPL — независимый от исходного и целевого языков (параметризованный) метаязык
- Пока
- X10 — язык, разработанный IBM, отличающийся ограниченными типами и фокусирующийся на параллелизме и распределении [3]
- Xtend — объектно-ориентированный , функциональный и императивный язык программирования, созданный на основе Eclipse , отличающийся тесной совместимостью с Java, с упором на методы расширения и лямбда-выражения, а также богатым инструментарием.
- Yeti, функциональный язык в стиле ML [35]
- Yirgacheffe, язык, призванный упростить и расширить объектно-ориентированную парадигму. [36]
- Yoix, универсальный, необъектно-ориентированный, интерпретируемый динамический язык
Сравнение этих языков
Смотрите также
Примечания
- ^ [19] [20] [21] — бесплатная IDE в бета-тестировании с 2009 года с частично открытым исходным кодом [22] среды выполнения Jabaco. Jabaco компилирует исходный код синтаксиса VB 6 в байт-код Java.
Ссылки
- ^ "TIOBE Index". TIOBE . Получено 4 ноября 2024 г. .
- ^ "PYPL PopularitY of Programming Language index". pypl.github.io . Получено 4 ноября 2024 г. .
- ^ abcdef Урма, Рауль-Габриэль (1 июля 2014 г.). «Альтернативные языки для JVM. Взгляд на восемь функций из восьми языков JVM». Oracle . Получено 13 марта 2019 г. .
- ↑ Уомплер, Дин (15 января 2009 г.). «Внедрение новых языков JVM на предприятии (обновлено)». objectmentor.com. Архивировано из оригинала 22 мая 2009 г. Получено 18 июня 2009 г.
- ^ "Groovy Springs поддерживает список языков программирования TIOBE" . Получено 10 марта 2021 г. .
- ^ "Брошюра NTT Data Enterprise COBOL" (PDF) .
- ^ "Visual COBOL Brochure" (PDF) . Получено 5 апреля 2017 г.
- ^ "isCOBOL Evolve Datasheet" (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". IBM . Получено 2 июля 2015 г.
- ^ "Запуск PHP с Quercus в Sun Java System Web Server" . Получено 2 июля 2015 г.
- ^ "ssllab / ZipPy — Bitbucket". bitbucket.org . Получено 12 апреля 2018 г. .
- ^ "oracle/fastr". GitHub . Получено 12 апреля 2018 г. .
- ^ "oracle/truffleruby". GitHub . Получено 12 апреля 2018 г. .
- ^ "Redline Smalltalk". Архивировано из оригинала 24 марта 2021 г. Получено 2 сентября 2018 г.
- ^ "Запись Jabaco в разделе Mindteq.com Basics" . Получено 2 июля 2015 г. .]
- ^ "Статья о Jabaco в немецком издании Pro-Linux" . Получено 2 июля 2015 г.]
- ^ "Basic meet Java" . Получено 26 февраля 2015 г. .
- ^ "Framework" . Получено 26 февраля 2015 г. .
- ^ "Ateji PX: Java Parallel Programming Made Simple". Ateji . Архивировано из оригинала 24 февраля 2014 года . Получено 1 марта 2014 года .
- ^ «Гибкие, мощные, красивые интеграции как код с Ballerina». Ballerina . Получено 28 сентября 2024 г. .
- ^ CFML , скриптовый язык, скомпилированный в Java, используемый на серверах приложений ColdFusion или Railo.
- ^ "Язык программирования Eta" . Получено 10 мая 2017 г.
- ^ "Язык программирования Fantom". Fantom . Получено 1 марта 2014 г. .
- ^ "Frege" . Получено 1 марта 2014 г. .
- ^ "Oracle.com - Golo – легкий динамический язык для JVM". Архивировано из оригинала 3 июля 2015 г. Получено 2 июля 2015 г.]
- ^ "Golo номинирован на премию JAX Awards 2014" . Получено 2 июля 2015 г. .]
- ^ "Golo entry at JAX Awards 2014" . Получено 2 июля 2015 .]
- ^ "Язык программирования Mirah". GitHub . Получено 1 марта 2014 г.
- ^ "Мира" . Проверено 1 марта 2014 г.
- ^ "The Prompto Platform" . Получено 14 сентября 2019 г. .
- ^ "Yeti programming language" . Получено 5 мая 2020 г. .
- ^ "Yirgacheffe" . Получено 9 января 2020 г. .