Live data from Hacker News

"I decided not to introduce full refinement for Ruby 2.0."

bugs.ruby-lang.org

21–25 of 25 posts

Re: "I decided not to introduce full refinement for Ruby 2.0."

#21

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 think there is too much pressure because of the version number. If it were 1.10 the eyes wouldn't be on it as much and they could be more incremental without anyone complaining.

Re: "I decided not to introduce full refinement for Ruby 2.0."

#22
This, I feel, is a rather striking difference between the development processes in ruby and python and tells more about them than any superficial language benchmark or example could.

This 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."

#23

Steve, 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…

> didn't Rails 3 have some last minute changes before its release as well, and 3.1 was a big jump also?

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."

#25
post #15

Ok, 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…

NoMethodError: undefined method `new' for Foo:Module

You can't initialize modules, I think you meant to make Foo a class.

Post reply on HN