HOME

TheInfoList



OR:

This list of JVM Languages comprises notable computer
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
s that are used to produce computer
software Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work. ...
that runs on the Java virtual machine (JVM). Some of these languages are interpreted by a
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
program, and some are compiled to
Java bytecode In computing, Java bytecode is the bytecode-structured instruction set of the Java virtual machine (JVM), a virtual machine that enables a computer to run programs written in the Java programming language and several other programming langua ...
and JIT-compiled during execution as regular Java programs to improve performance. The JVM was initially designed to support only the programming language Java. However, as time passed, even more languages were adapted or designed to run on the
Java platform Java is a set of computer software and specifications developed by James Gosling at Sun Microsystems, which was later acquired by the Oracle Corporation, that provides a system for developing application software and deploying it in a cro ...
.


JVM languages


High-profile languages

As of September 2022, according to the TIOBE Index of the top 100 programming languages, the top JVM languages are: *
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
(#3), a statically-typed
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of p ...
language * Scala (#33), a statically-typed object-oriented and
functional programming In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that ...
language * Kotlin (#34, at one point at #27), a statically-typed language from
JetBrains JetBrains s.r.o. (formerly IntelliJ Software s.r.o.) is a Czech software development company which makes tools for software developers and project managers. , the company has offices in Prague; Munich; Berlin; Boston, Massachusetts; Ams ...
, the developers of
IntelliJ IDEA IntelliJ IDEA is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ) and is av ...
and Google's preferred language for Android *
Groovy ''Groovy'' (or, less commonly, ''groovie'' or ''groovey'') is a slang colloquialism popular during the 1950s, '60s and '70s. It is roughly synonymous with words such as "excellent", "fashionable", or "amazing", depending on context. History The ...
(#41, before #32), a
dynamic programming language In computer science, a dynamic programming language is a class of high-level programming languages, which at runtime execute many common programming behaviours that static programming languages perform during compilation. These behaviors co ...
(also with static typing) and
scripting language A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled. A scripting ...
*
Clojure Clojure (, like ''closure'') is a dynamic and functional dialect of the Lisp programming language on the Java platform. Like other Lisp dialects, Clojure treats code as data and has a Lisp macro system. The current development process is comm ...
(#47), a
dynamic Dynamics (from Greek δυναμικός ''dynamikos'' "powerful", from δύναμις ''dynamis'' "power") or dynamic may refer to: Physics and engineering * Dynamics (mechanics) ** Aerodynamics, the study of the motion of air ** Analytical dyna ...
, and functional
dialect The term dialect (from Latin , , from the Ancient Greek word , 'discourse', from , 'through' and , 'I speak') can refer to either of two distinctly different types of linguistic phenomena: One usage refers to a variety of a language that is a ...
of the Lisp
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
is TIOBE's top language, and Jython, its JVM implementation, doesn't make the list (of 100 languages) under that name; its syntax compatible with Python 2.7, now an outdated Python version.
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
(7th),
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group. ...
,
R (programming language) R is a programming language for statistical computing and graphics supported by the R Core Team and the R Foundation for Statistical Computing. Created by statisticians Ross Ihaka and Robert Gentleman, R is used among data miners, bioinfor ...
and others, also make top 20 and have JVM implementations, and
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
ranked 20th, with its JRuby that's not listed separately.


JVM implementations of existing languages


New languages with JVM implementations

* Ateji PX, an extension of Java for easy parallel programming on multicore, GPU, Grid and Cloud
Ballerina
a programming language for cloud applications with structural typing; network client objects, services, resource functions, and listeners; parallel concurrency with workers; image building; configuration management; and taint checking. * BeanShell, a scripting language whose syntax is close to Java * EPL (Event Processing Language), a domain-specific, data manipulation language for analyzing and detecting patterns in timed event streams, which extends SQL 92 with event-oriented features. It is implemented by Esper: up to version 6 EPL was mostly a language interpreted by a Java library; since version 7 it is compiled to JVM bytecode.
Concurnas
an open source JVM programming language designed for building reliable, scalable, high performance concurrent, distributed and parallel systems. * Ceylon, a Java competitor from Red Hat *
CFML ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the JVM, the .NET framework, and Google App Engine. Multiple commercial and open source implementations of CFML engines are availab ...
, ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the JVM, the .NET framework, and Google App Engine. * Quark Framework (CAL), a
Haskell Haskell () is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming lan ...
-inspired functional language * E-on-Java, object-oriented programming language for secure distributed computing * Eta, pure, lazy, strongly typed functional programming language in the spirit of Haskell * Fantom, a language built from the base to be portable across the JVM, .NET Common Language Runtime (CLR), and JavaScript *
Flix Flix () is a town in the ''comarca'' of Ribera d'Ebre, Catalonia, Spain. Situated on a promontory by the Ebro river, the town occupied an important strategic position. Situated on the Madrid–Barcelona railway line, it expanded in the earl ...
, a functional, imperative, and logic programming language with first-class
Datalog Datalog is a declarative logic programming language. While it is syntactically a subset of Prolog, Datalog generally uses a bottom-up rather than top-down evaluation model. This difference yields significantly different behavior and properties ...
constraints and a polymorphic effect system. * Flow Java * Fortress, a language designed by Sun as a successor to Fortran, mainly for parallel scientific computing. Product development was taken over by Oracle when Sun was purchased. Oracle then stopped development in 2012 according to Dr. Dobb's. *
Frege Friedrich Ludwig Gottlob Frege (; ; 8 November 1848 – 26 July 1925) was a German philosopher, logician, and mathematician. He was a mathematics professor at the University of Jena, and is understood by many to be the father of analytic ph ...
, a non-strict, pure functional programming language in the spirit of Haskell * Golo, a simple, dynamic, weakly-typed language for the JVM developed at
Institut national des sciences appliquées de Lyon An institute is an organisational body created for a certain purpose. They are often research organisations (research institutes) created to do research on specific topics, or can also be a professional body. In some countries, institutes can ...
, France, now an incubating project at the Eclipse Software Foundation. * Gosu, an extensible type-system language compiled to Java bytecode *
Haxe Haxe is an open source high-level cross-platform programming language and compiler that can produce applications and source code, for many different computing platforms from one code-base. It is free and open-source software, released under the ...
, a cross-platform statically typed language that targets Java as well as JVM. * Ioke, a prototype-based language somewhat reminiscent of Io, with similarities to
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
, Lisp and Smalltalk * Jelly * Join Java, a language that extends Java with join-calculus semantics *
Joy The word joy refers to the emotion evoked by well-being, success, or good fortune, and is typically associated with feelings of intense, long lasting happiness. Dictionary definitions Dictionary definitions of joy typically include a sense of ...
*
Judoscript Judoscript is a general purpose programming language designed primarily for scripting language, scripting tasks on the Java platform. It was conceived and developed by James Jianbo Huang (), starting in late 2001. Judoscript was one of the first ...
*
Mirah Mirah (born Mirah Yom Tov Zeitlyn) is an American musician and songwriter based in Brooklyn, New York. After getting her start in the music scene of Olympia, Washington in the late 1990s, she released a number of well-received solo albums on K ...
, a customizable language featuring
type inference Type inference refers to the automatic detection of the type of an expression in a formal language. These include programming languages and mathematical type systems, but also natural languages in some branches of computer science and linguistic ...
and a highly Ruby-inspired syntax *
NetLogo NetLogo is a programming language and integrated development environment (IDE) for agent-based modeling. About NetLogo was designed by Uri Wilensky, in the spirit of the programming language Logo, to be "low threshold and no ceiling". It teache ...
, a multi-agent language * Noop, a language built with testability as a major focus * Pizza, a superset of Java with
function pointer A function pointer, also called a subroutine pointer or procedure pointer, is a pointer that points to a function. As opposed to referencing a data value, a function pointer points to executable code within memory. Dereferencing the function poi ...
s and
algebraic data type In computer programming, especially functional programming and type theory, an algebraic data type (ADT) is a kind of composite type, i.e., a type formed by combining other types. Two common classes of algebraic types are product types (i.e., ...
s * Pnuts * Processing, a visualization and animation language and framework based on Java with a Java-like syntax
Prompto
a language "designed to create business applications in the cloud". It is part of the namesake platform to design business applications directly in the cloud. The Prompto language includes three "dialects": Engly, Monty, and Objy. Engly "mimics English as much as possible", Monty "tries to follow as much as possible the syntax of the Python 3 language", and Objy "tries to follow as much as possible the syntax of OOP languages such as C++, Java or C#". All three dialects seamlessly translate to one another. *
RascalMPL Rascal is an experimental domain specific language for metaprogramming, such as static code analysis, program transformation, program generation and implementation of domain specific languages. It is a general meta language in the sense that it do ...
, a source and target language independent (parameterized) meta programming language *
Whiley Whiley is the surname of: * Manning Whiley (1915–1975), British actor * Richard Whiley (born 1935), English cricketer * Jo Whiley (born 1965), English DJ * Matthew Whiley (born 1980), English cricketer * Jordanne Whiley (born 1992), British w ...
* X10, a language designed by IBM, featuring constrained types and a focus on concurrency and distribution * Xtend, an
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of p ...
, functional, and
imperative programming In computer science, imperative programming is a programming paradigm of software that uses statements that change a program's state. In much the same way that the imperative mood in natural languages expresses commands, an imperative program ...
language built by the Eclipse foundation, featuring tight Java interoperability, with a focus on extension methods and lambdas, and rich tooling
Yeti
an ML style functional programming language
Yirgacheffe
a language that aims to simplify and extend the object oriented paradigm. * Yoix, general purpose, non-object-oriented, interpreted dynamic programming language


Comparison of these languages


See also

*
Da Vinci Machine The Da Vinci Machine, also called the Multi Language Virtual Machine, was a Sun Microsystems project aiming to prototype the extension of the Java Virtual Machine (JVM) to add support for dynamic languages. It was already possible to run dynami ...
* Java virtual machine#JVM languages * List of CLI languages, following the CLI specification, Microsoft's response to JVM


Notes


References

{{DEFAULTSORT:List of JVM languages
JVM A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes ...
pl:Lista języków wirtualnej maszyny Javy tr:BeanShell