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.
There's a few ways to get your hands on Mirah.
gem install mirah.
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!
The word "mirah" means "ruby" in Javanese, the language of the island of Java. Get it? "Ruby" in "Java"?