[ANN] Rubinius interview with Evan Phoenix

J

Jörg W Mittag

pat said:
With all the recent buzz around rubinius, it was serendipitous that
Evan and I had nearly finished an interview. We wrapped it up over
lunch, and it's posted at:

http://on-ruby.blogspot.com/2006/12/rubinius-interview.html

Happy reading.

From the interview:

| Q: What facets of the other alternative Ruby implementations do you
| envy?
|
| A: I envy the jruby developers for not having to debug segfaults,
| thats a biggy.

Then why use C? Why not translate to, say, Eiffel, OCaml, Oberon,
Java, C#? People have written operating system kernels in most of
those (Oberon, Java, C#; not sure about Eiffel, OCaml), surely one
could write a language kernel?

Just wondering ...

Probably the answer is "I can write C but not Eiffel" (-;

jwm
 
W

Wilson Bilkovich

From the interview:

| Q: What facets of the other alternative Ruby implementations do you
| envy?
|
| A: I envy the jruby developers for not having to debug segfaults,
| thats a biggy.

Then why use C? Why not translate to, say, Eiffel, OCaml, Oberon,
Java, C#? People have written operating system kernels in most of
those (Oberon, Java, C#; not sure about Eiffel, OCaml), surely one
could write a language kernel?

Just wondering ...

Probably the answer is "I can write C but not Eiffel" (-;

At the risk of putting words in Evan's mouth, one of Rubinius's goals
is to make the core of Ruby's runtime accessible to a much, much wider
group of people what we've got currently.

Using something less common than C would work against that, even
though personally I'm a big OCaml fan. Rubinius wants to be
mainstream, and the wide availability of C knowledge and C compilers
will assist in that.
 
S

Sam Smoot

Since we're kinda on the topic of implementation I've got a question:

Avi Bryant's article in response to JoelOnSoftware said you could get
method calls down to a jump and compare.

My impression is that MRI basically uses hashtables for method lookup.

Is it in the cards for Rubinius to receive the sort of optimizations
Avi was talking about? Is it reasonable to expect that an optimized
version of Rubinius could get method calls into the same performance
realm as c# or Java?

This way I suppose C-Extensions would be used more as bridges to
leverage existing libraries, and not for performance reasons.

Any thoughts?
 
W

Wilson Bilkovich

Since we're kinda on the topic of implementation I've got a question:

Avi Bryant's article in response to JoelOnSoftware said you could get
method calls down to a jump and compare.

My impression is that MRI basically uses hashtables for method lookup.

Is it in the cards for Rubinius to receive the sort of optimizations
Avi was talking about? Is it reasonable to expect that an optimized
version of Rubinius could get method calls into the same performance
realm as c# or Java?

This way I suppose C-Extensions would be used more as bridges to
leverage existing libraries, and not for performance reasons.

Yes. One way to do this is to make the common case as fast as
possible, even if that assumption 'breaks' some of the dynamic
features of Ruby. At runtime, you then detect when you've violated
that assumption, trap the error, and re-evaluate the code in a slower
mode.

If you pick targets for that that don't trap very often, you can
supposedly gain back quite a lot of speed. I believe the JVM has
something like this for dynamic invocations, but I haven't looked at
that code, so I might be making a fool out of myself by saying it.
 
R

Rob Sanheim

At the risk of putting words in Evan's mouth, one of Rubinius's goals
is to make the core of Ruby's runtime accessible to a much, much wider
group of people what we've got currently.

Using something less common than C would work against that, even
though personally I'm a big OCaml fan. Rubinius wants to be
mainstream, and the wide availability of C knowledge and C compilers
will assist in that.

Arguably, I think Java is more accessible then c, especially as Ruby
gains a wider audience.

- Rob
 
W

Wilson Bilkovich

Arguably, I think Java is more accessible then c, especially as Ruby
gains a wider audience.

Startup time for small scripts is a core requirement for Ruby, and
that's a problem for the JVM. JRuby is targeting long-running
processes for that reason.
Also, there's a pretty bad impedance mismatch between the Java opcodes
and what Ruby needs. The JRuby team is working around that by being
really smart and dedicated, but it's not easy.

If you combine the stats for C and C++, it is still the most
widely-used language on Earth. Also, I never want to program in Java
again, if I can avoid it. Heh.

We're doing Rubinius to make ourselves happier, along with all the other go=
als.
 
R

Rob Sanheim

Startup time for small scripts is a core requirement for Ruby, and
that's a problem for the JVM. JRuby is targeting long-running
processes for that reason.
Also, there's a pretty bad impedance mismatch between the Java opcodes
and what Ruby needs. The JRuby team is working around that by being
really smart and dedicated, but it's not easy.

Agreed, I didn't say there weren't good implementation reasons that
you don't want to use java.
If you combine the stats for C and C++, it is still the most
widely-used language on Earth. Also, I never want to program in Java
again, if I can avoid it. Heh.

Hm, well obviously I prefer Ruby over Java, but I think I'd take Java
over c or c++ any day if all else is equal. I'll take NPE's and
Intellij IDEA over dangling pointers and buffer overruns. :)

That said, I'm rooting for rubinius. I saw Evan's presentation at
rubyconf and I really hope he can rally other core hackers around the
"simpler is better" rallying cry.

- Rob
 
A

Aredridel

--=-dVEFXDo/cqGdN+LI5Utk
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

=20
Agreed, I didn't say there weren't good implementation reasons that
you don't want to use java.
=20
=20
Hm, well obviously I prefer Ruby over Java, but I think I'd take Java
over c or c++ any day if all else is equal. I'll take NPE's and
Intellij IDEA over dangling pointers and buffer overruns. :)

Until Java was opened, I'd definitely have chosen C above Java any day.
(and in general, still do.)

Definitely a bit more optimistic for Java than I used to be though.
That said, I'm rooting for rubinius. I saw Evan's presentation at
rubyconf and I really hope he can rally other core hackers around the
"simpler is better" rallying cry.
=20
- Rob
=20
=20

--=-dVEFXDo/cqGdN+LI5Utk
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQBFef/MtP09exA3hooRAsFbAKCxwRj7Uc5a4o2WKVuxcRnAOYw8MACfQOlB
hMGrUvkZvhOJbaQ9AJPtnn0=
=ALLy
-----END PGP SIGNATURE-----

--=-dVEFXDo/cqGdN+LI5Utk--
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top