Ruby Shines on All Platforms

Published: Feb 4, 2008
Updated: Feb 2, 2021
3 minute read
eWeek のコンテンツおよび製品のおすすめは、編集上の独立性を保っています。パートナーへのリンクをクリックすると、当社が報酬を得る場合があります。 詳細を見る

REDMOND, Wash. — As the Ruby language becomes more popular, Microsoft, Sun Microsystems and others are working on ways to make the language run better on various platforms.

John Lam, a program manager on the Microsoft DLR (Dynamic Language Runtime) team and the creator of the RubyCLR bridge for Ruby developers to write Ruby code on the Microsoft CLR (Common Language Runtime), spoke about Microsoft’s effort to deliver an implementation of Ruby for the .Net platform, known as IronRuby.

Lam spoke at the Lang.NET conference on Microsoft’s campus here Jan. 30, noting that Ruby is a “cross-generational” language because “old fogies and young kids” alike like to use the language. Some folks are using the Ruby-based Ruby on Rails framework for large-scale data center work, Lam said.

However, Lam added that his goal is to see Ruby run in as many places as possible.

“We want it to run natively on Windows and wherever the DLR runs,” including Linux and the Mac, he said. “And almost everybody is interested in running Rails on top of our implementation.”

Lam pointed to the various implementations in the works, including his own IronRuby effort, Sun’s JRuby, Queensland University of Technology’s (QUT) Ruby.Net and the Rubinius virtual machine and compiler for Ruby. IronRuby thus far passes 57 percent of the Rubinius test suite. However, the project has debugging support and has inherited the “tokenizer” and parser from the QUT project.

Meanwhile, as the interfaces between the DLR and IronRuby are still in the process of being solidified, Lam said Microsoft is not yet ready to open up the entire project to outside developers. In addition, the IronRuby team has done nothing in the way of performance tuning, he said, adding that the effort is still early and the IronRuby team continues to work toward a beta and then a 1.0 release.

Wayne Kelly, a lecturer at QUT and lead on the Ruby.NET project, said the effort started in 2005 after QUT had done some work in 2003 on delivering a version of the Perl language for the .Net platform — Perl.Net, funded by Microsoft Research.

Kelly said the first beta release of the Ruby.NET compiler came out in 2006 and it was based on early results coming out of Microsoft’s IronPython project to deliver an implementation of the Python language on the .Net platform.


The Da Vinci Machine

The Ruby.NET project produced the Gardens Point Parser Generator, which was then used in other .Net language projects and found its way into Visual Studio, Kelly said. Yet, despite several ongoing Ruby development efforts, “there’s no real potential for reuse from the different teams,” he said.

Advertisement

“If we were to start this project today we’d be crazy not to use the DLR,” Kelly said. “It’s superior to the approach we adopted,” but the DLR was not available when Kelly’s effort started.

Meanwhile, Sun is working on its own approach to delivering new languages on the JVM (Java Virtual Machine). John Rose, a Sun engineer and lead of a Sun project known as the Da Vinci Machine, said his company “had to do something like the CLR.”

The JVM provided flexible online code tooling, reflective access to classes and objects, lots of ancillary tools, good libraries and clever performance techniques, Rose said.

But some things have been missing that would enable other languages to run easily on the JVM, such as dynamic invocation, higher performance, lightweight method objects, continuations and stack introspection, and others, Rose said.

Enter the Da Vinci Machine.

“We are extending the JVM with first-class architectural support for languages other than Java, especially dynamic languages,” said the mission statement for the Da Vinci Machine project on Sun’s Web site. “This project will prototype a number of extensions to the JVM, so that it can run non-Java languages efficiently, with a performance level comparable to that of Java itself.”

Rose said that he hopes this project will make the JVM useful for all language implementations. “We want first-class support [for other languages on the JVM]. I think of Java as a great systems programming language for these other languages.”

Charles Nutter, a lead developer on the JRuby effort to create an implementation of Ruby for the JVM, said that until a year ago the JRuby implementation was fully interpreted, but as of November, “we had the compiler complete.” It runs in two modes: AOT (ahead-of-time) and JIT (just-in-time) compiling.

Darryl K. Taft

Darryl K. Taft

Content Writer

Darryl K. Taft covers the development tools and developer-related issues beat from his office in Baltimore. He has more than 10 years of experience in the business and is always looking for the next scoop. Taft is a member of the Association for Computing Machinery (ACM) and was named 'one of the most active middleware reporters in the world' by The Middleware Co. He also has his own card in the 'Who's Who in Enterprise Java' deck.

eWeek Logo

eWeek has the latest technology news and analysis, buying guides, and product reviews for IT professionals and technology buyers. The site's focus is on innovative solutions and covering in-depth technical content. eWeek stays on the cutting edge of technology news and IT trends through interviews and expert analysis. Gain insight from top innovators and thought leaders in the fields of IT, business, enterprise software, startups, and more.

TechnologyAdvice が所有・運営しています。 © 2026 TechnologyAdvice. 無断転載を禁じます

広告主に関する開示:このサイトに掲載されている製品の一部は、TechnologyAdvice が報酬を受け取っている企業のものです。この報酬は、製品がこのサイトのどこにどのように表示されるか(表示される順序など)に影響する場合があります。TechnologyAdvice は、市場で入手可能なすべての企業やすべての種類の製品を掲載しているわけではありません。