From: Charles Oliver Nutter Date: 2010-01-26T03:12:17+09:00 Subject: Re: ruby bounties--list of bounties On Mon, Jan 25, 2010 at 6:25 PM, Mike Dalessio wrote: > Charlie, you're making a great case against using FFI. FFI is much better than writing any C code at all, due to the security, stability, and portability problems of writing your own C bindings. If you are permitted to load a given library and that library is available and you *must* use that library, FFI is the only logical choice. But it doesn't get around the fact that you need the library you're binding to be available and loadable on your target platform. FFI > C bindings, but [platform-independent binary] > FFI. And that usually means Java-based. I should also point out that you don't necessarily have to write JVM libraries in Java; you could also use Scala or Fan or similar languages, and it would be just as portable (albeit a bit larger due to the runtime dependency on those languages' runtime libraries). But yes, at the end of the day, I believe writing stuff in a portable binary format like JVM bytecode (or CLR bytecode) is a better choice than writing in a language that has to be recompiled for every target system. You ought to know that already...would I be working on JRuby if I believed any differently? :) And yes...I'd love to be able to recommend that everyone just use Ruby for everything. But I don't think it's simply a performance issue; there's some pretty amazing things you can get for free with a rich static type system. - Charlie