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

Getting Started

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

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

This Wiki

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 or stop in to the #mirah IRC channel on FreeNode.