Adam Parrott edited this page Jan 6, 2014 · 10 revisions

The Mirah Programming Language

Mirah is a new way of looking at JVM languages. In attempting to build a replacement for Java, we have followed a few guiding principles:

  • No runtime library

    Mirah does not impose any unwanted JAR files on your project — YOU decide what your application's dependencies should be.

  • Clean, simple syntax

    We have borrowed heavily from Ruby, but added static typing and minor syntax changes to support the JVM's type system. The result is pleasing to the eye, but as powerful as Java.

  • Metaprogramming and macros

    Mirah supports various mechanisms for compile-time metaprogramming and macros. Much of the "open class" feel of dynamic languages is possible in Mirah.

  • No performance penalty

    Because Mirah directly targets the JVM's type system and JVM bytecode, it performs exactly as well as Java.

To read more about Mirah's specific language features, please visit the Features page.

Getting Started

There's a few ways to get your hands on Mirah.

  • If you're using JRuby, simply install the gem from command line with gem install mirah.
  • If you're using Maven, check out the sample Maven project for tips on integrating Mirah with Maven.
  • Current and previous binary distributions can be directly downloaded from our Downloads page.

Test out your Mirah installation with a simple "Hello, World!" test by running:

mirah -e 'puts "Hello, Mirah!"'

For more information on using Mirah, check out our Getting Started page.


The Mirah project welcomes new feature requests, bug fix patches, and any other suggestions for improvement. For more information on contributing to the Mirah project, please see our Contributions page. You may also direct questions about contributions to the Mirah mailing list.


Current and archived discussions about the Mirah project can be found on the public Mirah mailing list. You may also reach members of the development team in the #mirah IRC channel on FreeNode.

Additional project resources may be found in the page sidebar or on our Resources page.


Curious to see who is using Mirah and what you can build with it? Check out our Showcase page for some examples of Mirah in the wild!

About the Name

The word "mirah" means "ruby" in Javanese, the language of the island of Java. Get it? "Ruby" in "Java"?