M. Edward (Ed) Borasky wrote:
> How does jRuby deal with extensions written in C or C++? Sure, there are 
> lots of "pure Ruby" applications and I assume jRuby will run them all.

Porting...delicious porting.

Actually in most cases the C portion of a library is usually 
well-represented in the Java world, and it's just a matter of wrapping 
it. There's already an early/partial RMagick port using a similar 
library in Java, there's a version of Ragel that can generate Java-based 
parsers for Mongrel, there's zlib, socket, and bigdecimal libraries for 
Java, and so on. At this point, we're starting to close in on some level 
of "true compatibility" with C Ruby as measured by our own and other 
applications' unit tests, and after that I suppose more effort will be 
paid to porting C libraries people really need.

Generally, we (Tom and Charlie) have had to do almost no extension 
porting ourselves; community members have decided an extension was worth 
writing and have done so. We've also seen that the original C extension 
writers have been very receptive to including our completed Java 
versions as they mature. So I don't expect that in the long term the 
lack of C extensions will hurt us much. And it's pretty easy to find 
Java developers, as you might guess.

There's also at least one effort to provide a pseudo-C-Ruby API via JNI 
that actually just uses JRuby behind the scenes, but due to the 
monumental complexity of such a task, I don't expect it to bear fruit 
any time soon.

- Charlie