InfoQ

News

Interview: Wilson Bilkovich Discusses Rubinius

Posted by Werner Schuster on Feb 20, 2008 01:00 PM

Community
Ruby
Topics
Runtimes,
Compilers,
Performance & Scalability,
Dynamic Languages
Tags
Virtual Machines,
SmallTalk,
Rubinius
Rubinius core team member Wilson Bilkovich sat down with InfoQ at RubyConf 2007 to discuss what has been keeping him busy recently. A big theme is Rubinius and various aspects of the VM, such as threading and various concurrency aspects. An example of the topics covered:
Being a virtual machine everything is virtual so you are making a virtual CPU. And since there is this whole platform underneath you can decide what you want to do with that. You can map one to an operating system thread or you can map one and three of its friends to one operating system thread and schedule it. You can map all of them to one; you can do whatever you want. And depending on the hardware or depending on the work load you might make different decisions about using native threads or green threads or whatever. There is a whole universe of decisions you can make all the way from the way Erlang does it to the way Ruby 1.8 does it, to the way Java does it and they each go for different things. If there was one that was perfect for everything people would have just picked it.
The Ruby source to Rubinius bytecode compiler (which had just been rewritten prior to this interview) is another big topic, with Wilson giving an in-depth explanation of the problems of compiling the trickier Ruby language constructs.  Virtual Machine design aspects also come up in the interview, such as the Smalltalk Blue Book, upon which the Rubinius design is based:
The Smalltalk blue book has a concept called primitives which are not CPU instructions but are methods that are implemented inside the virtual machine at a level much lower than a regular method. And you do it when you need something to be efficient or you needed to talk to the platform in a way that you feel ready to expose or whatever. There are various reasons to do it. And I know our list of primitives is completely different from the set that is in the blue book at this point.
Wilson is also a member of the Ruby Hit Squad, which gathered in 2007 to write Vlad, The Deployer, a simpler competitor to the popular deployment tool Capistrano. The idea behind Vlad and that prompted it's creation are explained.

Watch Wilson Bilkovich Discusses Rubinius.

No comments

Reply

Exclusive Content

Intentional Software - Democratizing Software Creation

Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.

Getting Started with Grails

Jason Rudolph discusses Java/Grails integration, Grails plugins, creating a Grails sample application, Grails app structure, data querying and persistence, validation, controllers and tag libraries.

Creating Product Owner Success

The Scrum Product Owner role is powerful, valuable and challenging to implement. It brings healthier relationships between customers and developers, and competitive advantage - if you do it right.

Book Excerpt and Interview: Effective Java, Second Edition

Effective Java, Second Edition by Joshua Bloch is an updated version of the classic first edition, which won a 2001 Jolt Award. InfoQ asked Bloch questions about the areas that the new edition covers.

Tapestry for Nonbelievers

A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.

Pete Lacey on REST and Web Services

In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.

Business Natural Languages Development in Ruby

Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.

Distributed Version Control Systems: A Not-So-Quick Guide Through

Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.