I love Ruby with all my heart but that seems to be quite a mess. While a not-well-thought-through feature in some application can be forgiven (and maybe even removed), in language design it cetainly has no place. And while this should be a secondary consideration, I really feel for those poor JRuby and Rubinus guys. As if Ruby wasnt "dynamic" enough, the sheer complexity of implementing refinements must be awful! I t…
"I decided not to introduce full refinement for Ruby 2.0."
21–25 of 25 posts
Re: "I decided not to introduce full refinement for Ruby 2.0."
#22This is how generally new things to python are introduced: http://www.python.org/dev/peps/
Re: "I decided not to introduce full refinement for Ruby 2.0."
#23Steve, I agree with you that this is a lot of change for something in preview, but didn't Rails 3 have some last minute changes before its release as well, and 3.1 was a big jump also? Matz, Shugo, and Charlie will figure it out soon enough, but it is interesting. What is more upsetting to me really is the version number. 2.0 implies some major changes, but 1.9 was more major. It should be 1.10, and then they should…
I'm not sure about 'last minute,' but yes, 3.1 was a big jump. Rails doesn't follow SemVer, neither does Ruby.
> They really need to spend more time on it.
This is absolutely true, and is my biggest complaint.
Re: "I decided not to introduce full refinement for Ruby 2.0."
#24If so, is there something to just learn from or copy for the Ruby team?
Re: "I decided not to introduce full refinement for Ruby 2.0."
#25Ok, tell me if I have this correct: module Foo def hello puts "Hello World" end end ...in a different file... foo = Foo.new.msg Q: What does that print? A: There is no way to tell. It depends on what the 'using' line (not shown) is, and whether anything has refined 'Foo'. Seems like bad action at a distance, to me. Or am I missing something? The example about the effects of refining 'each' is also pretty disconcertin…
You can't initialize modules, I think you meant to make Foo a class.