
The creator of Ruby explains why Ruby sucks - nreece
http://www.rubyist.net/~matz/slides/rc2003/index.html
======
iloveyouocean
Having the creator of Ruby give a presentation outlining the shortcomings and
planning for future fixes points more to something 'good' about Ruby than to
something sucky.

~~~
Husafan
How so? Aren't presentations about a current project's shortcomings/roadmap
for improvements pretty standard?

I do agree that it speaks well about the developer, but your opinion about
whether Ruby currently sucks or not should be informed by the content of the
slides.

[edit] I can show you a shoe box and call it a car. I can candidly explain to
you how it falls short of current cars, and how I will remedy these problems.
All of that does not hide the fact that my shoe box is currently a sucky car.

~~~
menloparkbum
"Aren't presentations about a current project's shortcomings/roadmap for
improvements pretty standard?"

no. for instance, presentations about Rails are often about why other things
suck (PHP, Java, VC-funded startups, etc.)

~~~
jrockway
That's because most of the Rails fanbois are just that, fanbois. They like
Rails, so that means that it's obviously the best thing in the world, and is
totally unflawed.

But, in reality, all software sucks. If they can't see the suckage, it's just
because of their ignorance.

------
systems
The latest relevant update I found was this talk he gave at google

<http://www.youtube.com/watch?v=oEkJvvGEtB4>

I think most of you stumbled upon it, I also believe it was even mentioned on
hacker news before

------
nreece
Although the slides date back to 2003, I wonder how much of it is still
relevant?

~~~
jotto
read the slides, its still relevant.

1.8.x and 1.9 are just experimentation and intermediate steps to ruby 2.0
which is a "start from scratch" project

~~~
kschrader
Ruby 2.0 is a not a "start from scratch" project. It's an evolution of the
language (which will be done mostly in the experimental 1.9 releases) with a
new interpreter. Once 1.9 is stable it will turn into the 2.0 release. The
actual effect on Ruby users will be noticeable, but minimal.

See <http://eigenclass.org/hiki/Changes+in+Ruby+1.9> for some of the changes
that are coming up.

~~~
zenspider
with one clarification... (last I checked) 1.9.1 will be the stable, it won't
be incremented to 2.0. Matz decided against the even/odd = stable/dev
versioning scheme.

------
Tichy
I only looked at the first few slides. Don't understand the problem with the
block variables? The current version seems clearer to me than the new
proposal. Variables are visible in the block they have been defined in, what
could be easier to understand? Probably I am missing something, though...

~~~
fendale
The major problem with block variables in ruby is that if you do something
like

    
    
        x = 4
        1.upto(5) do |x|
          puts x
        end
        puts "after the block x is #{x}"
    

It will print:

    
    
        1
        2
        3
        4
        5
       after the block x is 5
    

That is probably not what you would expect!

~~~
Tichy
true, but for this it would be fine(?):

    
    
        x = 4
        1.upto(5) do |y|
          x = y
          puts x
        end
        puts "after the block x is #{x}
    

So the problem is only the parameter to the block?

~~~
KirinDave
The problem is that Ruby's scoping rules aren't consistent. Sometimes it
appears lexically scoped, but sometimes it acts dynamically scoped.

Sometimes this leads to funny looking code (if you know to avoid it) or truly
inscrutable bugs (if you don't).

