Paul Krill
Editor at Large

Rubinius seeks to modernize, not bury, the Ruby language

analysis
Oct 24, 20133 mins

Despite his criticism, Rubinius X backer Brian Shirai still loves Ruby and wants to make it more open to networked computing

All appearances of condemnation aside, proponents of the Rubinius X project are embarking on an effort to modernize the Ruby language, bringing it into the Internet era and focusing on improved concurrency.

A glance at the recent formal announcement of Rubinius X could give the impression it was written by a Ruby antagonist, as it belittles the language, saying, “Ruby is a dying language. Business is over its dalliance with Ruby. No major startup is lauding their use of Ruby, and existing businesses are migrating away or simply writing new applications in a different language.”

But the engineer who unveiled Rubinius X, Brian Shirai, of Engine Yard, emphasized he is an advocate, not an opponent: “I love Ruby. I think it’s a fantastic language.”

Ruby, he said, is more accessible than newer languages like Scala, but it needs to be brought into the networked, Internet era. “The motivating idea behind Rubinius X today is that there are no computers that do anything interesting without talking to at least one other computer. The Internet is forever.” But Ruby’s core library was built back in the Windows 3.0 days in the 1990s, before Internet dominance, Shirai added. Rubinius X is focused on the writing of collaborative, concurrent applications.

Recently, Ruby founder Yukihiro Matsumoto said he saw no need for major improvements to Ruby in his CRuby implementation, but Rubinius X advocates will continue overhauling the language anyway. Rubinius X builds on Rubinius, an implementation of Ruby that also stressed concurrency via native threads, but version 10 takes concurrency a step further. “More than any specific feature in Rubinius X, it is that the entire system is being reworked from the bottom up to support the highest degree of concurrency and parallelism possible,” Shirai said. “Certain APIs are being changed, further concurrency abstractions are being added, and all of this is built-in, instead of being an afterthought relegated to the ‘standard library’ or other libraries.”

Key features of Rubinius X for concurrency include promises and nonblocking I/O. “Promises are a more modern mechanism for concurrency,” Shirai said. Promises refer to constructs used for synchronizing in some languages, in which an object acts a proxy for result that is initially unknown, often because the computation of its value is not yet complete.

Version X also is slated to include persistent and concurrent data structures, as well as mirrors and object capabilities. Mirrors are a construct providing structure for composition through encapsulation and separation of object and meta-data object operations, according to Rubiniux X advocates; object capabilities structure interactions to control collaboration. Code-loading in Rubinius X, meanwhile, enables the combining of components into a single, running program.

Matsumoto gave an endorsement to Rubinius X, despite the criticism heaped on Ruby itself. “I am a true believer of diversity,” he said. “So I consider Rubinius itself diversity.” But Matsumoto said he was not sure Rubinius would survive. Still, he expects it to enrich the Ruby ecosystem.

“[Shirai] claimed ‘Ruby is a dying language,’ but as long as Ruby continues evolving, [including Rubinius], I think it will keep growing.”

This story, “Rubinius seeks to modernize, not bury, the Ruby language,” was originally published at InfoWorld.com. Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog. For the latest developments in business technology news, follow InfoWorld.com on Twitter.

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

More from this author