I think this link is broken or overloaded.
Redmine appears to be quite slow at the moment.
"I decided not to introduce full refinement for Ruby 2.0."
11–20 of 25 posts
Re: "I decided not to introduce full refinement for Ruby 2.0."
#12I 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…
Re: "I decided not to introduce full refinement for Ruby 2.0."
#13Re: "I decided not to introduce full refinement for Ruby 2.0."
#14Re: "I decided not to introduce full refinement for Ruby 2.0."
#15 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 disconcerting.
Re: "I decided not to introduce full refinement for Ruby 2.0."
#16Ok, 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…
Re: "I decided not to introduce full refinement for Ruby 2.0."
#17Earlier quoted context omitted.
...except the previous listing does basically the same thing, but doesn't have any comment about R1's refinements not working when you're using R2.
Ah, I misread the feature list (namely the text right above the examples, about Module#include). Matsumoto gives two of the same examples, the first in how he wants the feature to work (R2 having the refinements of R1 if it includes it) and the second in how it works at the moment (or doesn't work). If you try that code it breaks, he wants it to not break and return :bar.
Re: "I decided not to introduce full refinement for Ruby 2.0."
#18I 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…
Agreed. Ruby is already difficult to debug on projects of any significant size, and frequeny docficut to wrap your head around where various behaviors are originating from. Ruby's dynamism is -- or was -- a strength, but it feels like the language maintainers might have taken it a bit too far.
Re: "I decided not to introduce full refinement for Ruby 2.0."
#19Ok, 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…
Re: "I decided not to introduce full refinement for Ruby 2.0."
#20Matz, 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 work on something more revolutionary for 2.
There is a lot of pressure on Matz also. They really need to spend more time on it.