A key Java platform developer is moving forward with an experimental programming language dubbed Mirah, which attempts to meld the niceties of Ruby with the heavy-duty performance of Java. Mirah is intended to look like Ruby while being statically typed and compiling to fast Java Virtual Machine bytecode. The Mirah project is headed up by Charles Oliver Nutter, a co-lead of the JRuby project that puts Ruby on the JVM.
Mirah provides "a nicer way to write Java code," Nutter said Thursday at the O'Reilly Open Source Convention (OSCON) in Portland. "Mirah is essentially Ruby syntax for writing Java code," said Nutter, who works for Engine Yard. Developers, he said, can eliminate the "ceremony "of Java. "You can write what looks like Ruby and get plain old Java," he said.
While Mirah would be of use in high-performing applications, Ruby still has features that Mirah lacks, said Nutter. JRuby and Ruby, he said, have some nicer APIs, for example.
Mirah has been in development for about a year but in the past six months has begun to reach a usable state, Nutter said. A 1.0 release is planned for the end of this year. Currently, Mirah could be used for writing simple applications but at the moment, it lacks some Java features such as generics, Nutter said.
Developers could use Mirah to write applications for the Google App Engine cloud and for the Google Android mobile platform. A Mirah website has been set up that says Mirah means Ruby in Javanese, the language of the island of Java.
Also in the programming language spotlight at OSCON, a Google official cited the company's efforts with its Go language which, like Mirah, is open source. Go, said Rob Pike, who holds the title of distinguished engineer at Google, is intended for writing applications such as large-scale software for clusters, web servers, and connected machines.
"It's gotten very difficult to write those programs in languages like C++" or Java he said. "The builds take too long [and] the language doesn't address some of the things we have to be thinking about," such as multiple processors, networking, and distributed computations, Pike said.
Currently, Go has reached a status where it is stable but libraries still need to be improved, according to Pike. Linux and Mac OS backing is offered, with Windows support also planned.
Go is an attempt to make a language with the fluidity of a dynamic language such as Python while offering benefits of a statically typed program that is compiled, Pike said. Programs written in dynamic languages have had drawbacks in that they have been slow, difficult to maintain, and they break, he said.
Go would not be used for programs that run in a browser, said Pike. The language is "not a panacea," he said. OSCON attendees Thursday also were brought up to speed on the D language, which is unrelated to a Microsoft language that had been internally codenamed "D" two years ago.
The 10-year-old D language has static typing and an extremely fast compiler, said Walter Bright, of compiler maker Digital Mars. A co-inventor of the language, Bright described D as a big, multi-paradigm language that is, among other things, imperative, object-oriented, and supports functional programming and concurrency.
"If you're looking for a very small language, you need to look for another because D is a big language, but it's not unnecessarily big," Bright said. The idea with D is to push complexity into the compiler so user code is simple and elegant, he said.
D 2.0 was released last month and features capabilities for functional and concurrent programming.