The creator of Ruby explains why Ruby sucks
rubyist.net
rubyist.net
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.
The slides and the issues they outline were from 2003. Many of those issues have been/are being fixed.
The development outlined has taken and is taking place. I view that as a success of the Ruby community and I also believe Ruby to be a good language now that many of these issues are fixed.
Therefore, I believe these slides point to good things about Ruby.
Judging from the list on these slides, I think you're being a bit sanguine about the state of Ruby; at least four of the seven issues are still outstanding.
What do you want, someone to act like George W. Bush and claim that everything is going perfectly? Matz is at least willing to see the good and the bad and to openly acknowledge it.
Unlike GWB's rhetoric (which you seem to prefer) this is not a religious war. Just use the right tool for the job.
I personally do not find it distasteful when someone is honest about the shortcomings of their project. It takes humility to do this, and it's totally uncool to rip on someone when they do it.
no. for instance, presentations about Rails are often about why other things suck (PHP, Java, VC-funded startups, etc.)
But, in reality, all software sucks. If they can't see the suckage, it's just because of their ignorance.
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
1.8.x and 1.9 are just experimentation and intermediate steps to ruby 2.0 which is a "start from scratch" project
See http://eigenclass.org/hiki/Changes+in+Ruby+1.9 for some of the changes that are coming up.
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! 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?Maybe my head has just gone blank, but I cannot think of a way to get a local called 'x' inside that block that is in scope only within the block.
In Perl you would have done
my $x = 5;
foreach my $i in (1..5) {
my $x = $i;
...
}
And it would have given you a new 'block local' and left your original x alone, but I cannot think of how you can do the equivalent of 'my' in Ruby ...Sometimes this leads to funny looking code (if you know to avoid it) or truly inscrutable bugs (if you don't).
1.upto implies starting at 1... otherwise why would upto be called on 1?
If you want the behavior you expect, type:
x = 4
5.times do
x += 1
endYou'd expect these two examples to output the same number:
x = 1
my_fun do |x|
x = 5
end
puts x # => 5
and x = 1
my_fun do |y|
y = 5
end
puts x # => 1
where my_fun could be defined as: def my_fun
yield 2
endI posted the example I did so that those unfamiliar with Ruby would see that the parent was a contrived example to use upto in that context. Sure it's awkward b/c it's not the intended semantics of the upto method, hence the ambiguity.
Maybe an ideal language would not introduce that sort of ambiguity... I personally slightly perfer the 1.9 syntax.