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 principals:
- No runtime library
Mirah does not impose any jar files upon you. 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.
More about => MirahFeatures
There’s a few ways to get your hands on Mirah.
Download a Mirah distribution here: https://github.com/mirah/mirah/downloads
If you’re using JRuby,
gem install mirah
For maven users, see the sample project here: https://github.com/mirah/mirah/tree/master/examples/maven
Test it out by running
mirah -e 'puts "Hello, Mirah!"'
Then check out the examples directory in the distribution or on Github here: https://github.com/mirah/mirah/tree/master/examples
The Mirah.org site and wiki are actually written in Mirah and deployed to Google AppEngine. Check out the wiki source here: https://github.com/mirah/mirah/tree/master/examples/wiki
About the Name
The word “mirah” means “ruby” in Javanese, the language of the island of Java. Get it? “Ruby” in “Java”?
Rubyconf 2009 Presentation
Please join the discussion on the Mirah mailing lists or stop in to the #mirah IRC channel on FreeNode.