RubyConf 2007 Day 2

It’s Day 2 at RubyConf. Many people had very late nights yesterday, and the
excitement is just a little dimmer than yesterday morning. I’m making it down
just barely in time for the opening talk of this morning’s gauntlet of
alternative implementations of Ruby.

Iron Ruby

John Lam is presenting on the State of IronRuby.
It’s 9am on the 2nd day of the conference, and it’s Microsoft related, so I
expected sparse attendance, but I was wrong—people aren’t standing against
the walls, but the seats are basically full.

So John is spending about half of his talk on defending Microsoft, and his
decision to go there. Certainly the community has placed IronRuby on the
defensive through their endless suspicions about Microsoft’s bad intentions.
John believes these to be baseless, and that Microsoft is heading in a better
direction, using the MS open source licenses as an example. IronRuby will be
released under MS’ BSD-style license, the Microsoft Public
License.

The only question John takes at the end of his talk is about the projected
release schedule. John describes the IronRuby project as having a conference
driven release schedule, where they decide what features they want to have done
to demo at the next conference. The next one is the MIX conference in Las
Vegas, where they will have all sorts of networking features done.

JRuby

The JRuby guys, Charlie Nutter and Thomas Enebo,
are adorable, often finishing each other’s sentences. They’re mentioning their
recent releases and thanking the community, but before they can demo anything,
fellow Sun employee Tim Bray comes up on stage and interrupts them to mention a
deal Sun brokered with a university in Japan to work on Ruby implementations.
Charlie and Thomas don’t look happy to be interrupted, but let Tim say his
piece, give him a terse thank you when he leaves, and resume as if nothing
happened.

The most important thing I’m taking away is that JRuby is ready for action.
They released a 1.1 beta that is compatible with Ruby 1.8, and its performance
is quite solid, better than Matz’ 1.8. The only thing that beats JRuby 1.1 is
Ruby 1.9, which is about 33% faster. He demos some things for us, they go well,
and everyone seems pretty impressed. Koichi Sasada, the creator of the Ruby VM
in 1.9, YARV, is sitting next to me and gives an excited pump of the fist when
1.9’s blazing benchmarks are shown onscreen.

Contributors

Before Evan begins, a guy named Stuart is coming up to talk about what’s
happening in Room 3 later. He’s asking for a show of hands of who has
contributed to an open source project before, and it looks roughly half(!!)
of the audience raised their hands. Stuart says he’s never seen more than
15-20% of the audience raise their hand at any conference he’s ever been to.
That’s pretty terrific.

Rubinius

Rubinius has lots of buzz, and got the best slot of the
morning, as all the latecomers with hangovers have come in and filled in the
remaining gaps in the room. Evan is starting off strong, he’s an energetic
speaker and he rushes through the features of their progress from last year.
He’s asking the audience who prefers writing in Ruby to C, everyone raises their
hand, and then who prefers writing C to Ruby, and 3 of the people who came from
Japan with Matz raise their hand, earning some healthy applause.

Evan is doing some unfair but entertaining comparisons to Ruby, IronRuby, and
JRuby. He’s pointing out how none of them have any lines of Ruby code to them
(though some audience members point out that that’s not completely true), and
categorizes them as Ruby for C Programmers, for C# programmers, and Java
programmers, respectively. Of course, Rubinius is Ruby for Ruby programmers,
despite 2/3 of the code being currently written in C.

Q: Do you think Rubinius should replace the MRI?
A: Did the water fowl replace the dinosaur?

One highlight is him asking the question that Chad Fowler asks every year, which
is a show of hands for how many people are paid to use Ruby every day. The
informal poll looks to be around 90%, which is stunning. Evan recounts that
at RubyConf 2005, the response was at 10%, and that at RubyConf 2006, the total
number of attendees was half the number here. Everyone here knows how crazily
Ruby has grown in the last 2 years, I’m sure, but it’s still moving to see it so
strikingly, and to sit in the middle of it.

The sum of it seems to be that Rubinius is doing great, making awesome progress,
doing everything right, and we should all join them and contribute patches and
get commit rights and help them move full steam ahead. Sounds good to me.

Waiting For Godel

Luke Kanies is here to present on Essential Incompleteness in Program Modeling,
and starts by getting right into Godel’s Incompleteness Theorem. Godel’s
Incompleteness Theorem says that for any system that attempts to model reality
(any sufficiently complex system), it can never be both consistent and complete.

Most of the Ruby community has come from Rails, and the Rails community has an
above average number of people without a rigorous computer/mathematics
background than compared to other language/software communities, so this could
be a mindbending talk for many people here. It’s not about Ruby in the least,
all about modeling and fractals and number theory.

Decisions == Energy Deltas
—Luke Kanies

At the end of the talk, Luke talks outright about Godel, Escher, Bach: An
Eternal Golden Braid and discusses the Achilles/Tortoise dialogues, and the
analogy of the record player built to play any record, but can never play the
record that generates the vibrations that will destroy the record player. This
is awesome for me personally, as I’ve just started reading Godel, Escher, Bach
and have been really loving it.

The way Luke applies all this to software development, my interpretation of it
anyway, is that when you’re modeling your domain/problem, make as few decisions
as possible, for as long as possible. The more decisions you make, the more
potential energy is lost, the more your system grows sufficiently complex, and
the earlier the inconsistency or incompleteness will begin to bite you. By
delaying this, you keep your models as flexible as possible and have a greater
chance of arriving at the best solution.

It always takes longer than you expect, even when you take into account
Hofstadter’s Law.
—Hofstadter’s Law, Douglas Hofstadter

This is all pretty vague, and I don’t know that I actually learned anything
about how to really develop my software, but I appreciated the mind trip, and
the synchronicity with my personal life. This has been my favorite talk so far.

Waiting for Hodel

Eric Hodel is talking about Maximizing Productivity. I was expecting this to be
a talk about personal habits and methods of encouraging good self-discipline.
Instead, he’s talking about all the OS X tools he uses, like ssh-keychain,
Spirited Away, how he arranges his windows, and encourages pair programming. As
a Linux user who doesn’t like pair programming, so far this is pretty
disappointing.

There’s also tips on how to manage your own project, like, set up a bug tracker,
do your own feature ideas first, have somebody else look at your release before
you release it. There’s little of substance here.

One question ended up with someone polling the audience as to how many people
type Dvorak, and,
shockingly, about 20 people raised their hands. That may convince me to take
the plunge into Dvorak yet.

Risk

I dropped in Room 3 briefly for the Refactotum, long enough to hear Stuart
Halloway interrupt his JRuby demonstrations to make sure no one was recording
anything, and then confide in us.

Catholic Jesus is better than Protestant Jesus.
—Stuart Halloway

I left for safer pastures, and now I’m sitting in Francis Hwang’s talk on
Conversations vs. Laws: What do we mean when we say Ruby is dynamic?, where he
is discussing human slavery. He has a diagram on the screen with a box saying
Homo Sapiens, and then two boxes descending, European, and African. The
abolitionist movement, he’s explaining, can be seen as eliminating those boxes,
leaving only the parent box, Homo Sapiens. He seems to have the people
captivated as he goes on to discuss people applying to be recognized as Native
American, and how the money involved in this procedure could mean these people
are lying. Moving on, Francis brings up the 300-word 1992 definition of the
word buttocks by some local city council, drafted and voted into law.

I paid too little attention to the first half of the talk title, I had expected
a more technical talk. However, Francis is a terrific speaker and he’s begun
talking about the social issues in the Ruby/software world, and the dynamics of
the community as they release software, and nothing is written in stone, and
people release unstable work, etc. He’s even putting Jaron
Lanier quotes on the screen. So far this is pretty
awesome.

Francis is talking about how the healthiest mindsets are ones which embrace
risk. He’s describing how Toyota, who will be the #1 car maker in the world
this year, has a policy that any factory worker, on any level, has the authority
to stop the machinery if they suspect that defective parts are being
manufactured. They have made quality their #1 priority, and have helped ensure
it by placing an amazing amount of trust to the least educated level of their
staff.

The first question is not a question. The questioner stated that one of the
biologists who discovered the genetic code had become convinced that Africans
were genetically inferior. Francis nodded in recognition, said James Watson,
right? and the questioner nodded and then was silent. A few comments got yelled
back and forth through the audience, including one from myself, and then
everything somehow quieted and managed to go on without getting uglier. Pretty
disturbing, and I’m a little unsettled that I and others got so emotional. …I
guess we’re all fine now.

Whenever you interview fat people, you feel bad, because you know you’re not
going to hire them.
—Dr. James Watson

The questions are going on for a while more, and people are asking the kinds of
questions that demonstrate that they found Francis’ talk highly stimulating (I
don’t know how familiar you are with post structuralism, but…). They’re
asking questions all over the board, about philosophy and other computer
languages, not all of which is Francis equipped to answer, but all of that is
really a good sign. Some people are soapboxing it, but overall, still good. It
was a high level talk, related to Ruby in spirit only, but it ranged over many
issues and had lots of content that neither bored nor distanced the audience.
This is now the best talk at RubyConf so far.

Yukihiro Matsumoto

Matz is here, giving his keynote. It’s coming in two parts, the first being Why
Language Matters, Or Not. His major point here is that language really doesn’t
matter, in theory (Turing-completeness) and often in practice (Hello World looks
the same everywhere). The true difference between languages is the community
that they attract. The Ruby community, as observed by Matz, Martin Fowler, and
many within it, is nice. And, more diverse. There is not the same
fanatical commitment to the one true way. Yet, there are other things Matz says
that don’t seem to agree.

He says I made his life tough. If he doesn’t let his employees use
Ruby…they quit!
—Matz

Marking Ruby on the cycle of human history, Matz is declaring Ruby at the period
of Success, placed shortly before Pride, War, and Drop to Nothing. Looking at
the future, Matz has declared that Ruby must become Enterprisey. He doesn’t
want it to, really, but there isn’t much of a choice. Ruby must begin to scale,
to perform, and that is Ruby’s future. That is, most assuredly, a very
difficult thing for many of us to hear.

We will go enterprisey. I don’t want to, but, the suit people surround us.
—Matz

The surrealism is starting to hit me. This man, humble, an infrequent traveler,
and at one point a Christian missionary, wrote his dream language and watched a
small community develop around it. Suddenly, it has ballooned into a
significant force in the software industry and thus the Internet. The devoted
Ruby community of the Western world has flown him here to greet us, acknowledge
us, let us know he cares. He has a small group of quiet Japanese men here with
him, and they stand in stark contrast to everyone here, as a representative of
the entirely different world Matz spends his time in.

Everybody implements Lisp once or twice. Nobody implements Ruby. I did it
once. Never again.
—Matz

Sometimes Matz feels like one of us, and sometimes he doesn’t. What’s certain
is that he has come here to tell the devoted our future. Maybe at one point in
the past it felt like a conversation. Now, there’s a big crowd, a clear
cultural difference, and Matz’ is telling everyone things they don’t want to
hear. Our great leader is here for a day, and tomorrow he will be gone for
another year. Except for the bare few of us who have real contact and influence
with Matz and his world, like _why and the people at Ruby Central, we will spend
the next year simply working with what is handed to us from the other side of
the world, and waiting for news. There’s nothing wrong with this scenario.
Ruby is the most enjoyable programming language in the world, and the process
works. But, you can’t deny, it’s more than a little bit surreal.

RejectConf

The bonus round to Day 2 is RejectConf, a series of lightning talks in Room 1,
where zenspider Ryan Davis is bullying people into
line. There are a few neat ideas there, like DrNic’s RubiGen (a preview for
tomorrow’s presentation), God, and a D&D campaign
automation helper tool. The #rubyconf channel is on fire for most of the talks,
which makes the presentations twice as fun.

If you’re like me—and I certainly am…
—Ben Bleything

I also got up and gave a quick presentation on
Rubedo, my radio app I made for
thoughtbot so many months ago. I spent a couple hours earlier today whipping it
into a lighter and stabler shape, and I’ll be putting out another package soon,
and giving it more frequent attention.

That’s it for day 2! Long, but thought provoking and altogether intense.