Nick Sieger: RubyConf: Matz Roundtabletag:blog.nicksieger.com,2005:TypoTypo2010-11-22T20:51:34+00:00Anandurn:uuid:f46b7121-d00b-43c7-9e6b-2cf7ef9bd9942007-01-25T15:52:23+00:002010-11-22T20:51:34+00:00Comment on RubyConf: Matz Roundtable by Anand<p>Amazing...........</p>Jon Dahlurn:uuid:9127fc87-9be8-4217-984b-3e5c17c09d042006-10-21T20:15:11+00:002010-11-22T20:51:35+00:00Comment on RubyConf: Matz Roundtable by Jon Dahl<p>This is great - thanks for taking the time to blog these sessions.</p>Nick Siegerurn:uuid:4056b0d7-7b02-4fae-b5b7-536b0cfa5b762006-10-21T02:59:38+00:002010-11-22T18:11:21+00:00RubyConf: Matz Roundtable<p><em>An annual tradition at RubyConf is the “Roundtable”, where any member of the audience can come up and ask Matz any question. Transcript follows with partial paraphrasing.</em></p>
<p><em>Q. Will Ruby ever get the features of <code>evil</code> built in? Will we get <code>become</code>?</em> No.</p>
<p><em>Q. If Symbol is a “frozen” String, why do we need Symbol?</em> I don’t have a complete answer to that question -- following tradition.</p>
<p><em>Q. What’s the most unusual architecture Ruby has ever run on?</em> Ruby...I can’t think of one...JRuby? Some guys ran compiled Ruby on the NECS supercomputer. [From the audience] Symbian.</p>
<p><em>Q. As Ruby gains acceptance, it becomes more resistance to change. How do you keep agile while gaining momentum?</em> We have forked off 1.8, so if you want stable, use Ruby 1.8 forever.</p>
<p><em>Q. The array patch -- is there any chance of a backport for those of us who want 1.8 forever?</em> Could be, but the current patch has a bug in 1.9.</p>
<p><em>Q. Why isn’t YARV the only VM for 1.9? [Comment about register-based VM]</em> I’m not sure whether stack-based or register-based VMs are better...[THAT GUY!]...[Given the hook]</p>
<p><em>Q. It seems like momentum is based on strong metaprogramming facilities. With 1.9 there are more user-friendly features. Will code eventually be data, or are we just patching on techniques on a tool that is being used more heavily?</em> An extreme way to do metaprogramming is to use Lisp, but for practicality we have to start somewhere. I’m not sure that s-expressions are the way to go. We’re not going to have macros. It will remain similar to what we have in 1.9. <em>The ability to serialize code would be really powerful -- will that happen?</em> Disclosing internal state is tricky because it changes. It could be a platform-specific feature.</p>
<p><em>Q. Recently for 1.9, there was a patch for Array and String to be in the object header. Was this profiled? It seems like it would be an incredible performance problem.</em> It was done for slowness of malloc and gc. In some cases it could run slower, but it benchmarked at about 5% faster. It should be tested thoroughly.</p>
<p><em>Q. Ruby 2.0 will not have green threads or continuations, correct? Are there specific reasons for that decision?</em> It is difficult to implement green threads in YARV.</p>
<p><em>Q. People want to see development move quickly, but may not be able to contribute code. Can you suggest ways for those programmers to contribute?</em> Submit patches to the list. What is the obstacle to joining us? [Question restated] Submit testing, submit documentation. Contribute to RubyCentral? (looks at Chad Fowler)</p>
<p><em>Q. The CSV library is useful, but slow. Can we see FasterCSV in stdlib?</em> It’s ok to replace the csv library with FasterCSV, as long as the compatibility issues are resolved.</p>
<p><em>Q. I want to thank you because I love writing in Ruby every day. I tried to write Python first. Recently an unrelated upgrade broke my Python apps. Will we be able to manage multiple versions of Ruby?</em> You’ll have to have two versions, 1.8, and future ones.</p>
<p><em>Q. What would you say is the most important feature of your personality that has given you success?</em> Endurance? <em>Can you elaborate?</em> It’s easy to design a language, many of them disappear in a year or two. I’ve been working on Ruby for 13 years.</p>
<p><em>Q. I wanted to see in IRB how the class was implemented at runtime. (He means an uneval feature)</em> [Audience member (Eric Hodel?) mentioned ParseTree]</p>
<p><em>Q. If there wasn’t Ruby, what would you be programming in?</em> Some language of my own not named Ruby.</p>
<p><em>Q. Do you still look at RCRchive?</em> Yes. I’ll talk about it in the keynote.</p>
<p><em>Q. I would like a feature abstraction that would allow Ruby to fork itself rather than actually forking. Can you see this added to core?</em> We have to define the behavior of that feature. We have to have a good name for the method. Then there will be no problem to add it to core.</p>
<p><em>Q. Why do you need to bind methods to an object of the same original module?</em> If you bind a method taken from String class to Array class, it will crash, and we need to prevent it.</p>
<p><em>Q. What do you think of Ruby.NET?</em> I’m pretty open to new implementations. <em>Should there be a standard (language specs) that other projects should follow?</em> <a href="http://headius.blogspot.com">Charles</a> started work for a <a href="http://www.headius.com/rubyspec/">written 1.8 spec</a>, and I’ll help him with that if I have time.</p>