Another beginner question

Sorry if my “newbie” questions are excessive. I promise that if/when I
start getting on my feet with Ruby programming I will contribute back to
the learning process 10-fold. That’s how I role.

Simple question:

I was turned on to Ruby via Ruby on Rails at the RailsConf here in
Portland via a friend. I was told there’s a “plugin” (I’m assuming for
rails) for inline C code. What I’m wondering-- is as an interpreted
language, if there is a chunk of code that needs to execute very
quickly, is there a way to have C code that’s compiled? Perhaps a
library?

So, let’s say I have a little GTK+ GUI that I wrote in Ruby to save
time, but it has some process-intensive routine-- could I write that
routine in C and have it as a compiled binary and run within my Ruby
code?

On 5 Jun 2007, at 14:43, Micah C. wrote:

execute very quickly, is there a way to have C code that’s
compiled? Perhaps a library?

So, let’s say I have a little GTK+ GUI that I wrote in Ruby to save
time, but it has some process-intensive routine-- could I write
that routine in C and have it as a compiled binary and run within
my Ruby code?

I’ve never used inline C in Ruby, but it is available (it is not
Rails specific AFAIK). You can also write C code and compile as an
extension:

http://www.rubycentral.com/book/ext_ruby.html

Alex G.

Bioinformatics Center
Kyoto University

On Jun 4, 2007, at 22:43, Micah C. wrote:

execute very quickly, is there a way to have C code that’s
compiled? Perhaps a library?

There’s a gem called RubyInline that does this (and C++ and Fortran).

So, let’s say I have a little GTK+ GUI that I wrote in Ruby to save
time, but it has some process-intensive routine-- could I write
that routine in C and have it as a compiled binary and run within
my Ruby code?

RubyInline does all the build steps for you, you just write the C,
save the file, and run your tests to make sure it works. Just as if
you’d written regular Ruby.

(Of course, you should have regular ruby, profile it, refactor for
speed, then write in C when you can’t get any more speed out of Ruby.)

Thank you. I appreciate the feedback.