Hi,

In message "Re: [ruby-core:39836] Re: Road to 2.0"
    on Mon, 3 Oct 2011 01:28:39 +0900, Yusuke Endoh <mame / tsg.ne.jp> writes:

|Actually, it is impossible to decide all of them, I think.
|
|So we should first distinguish between "Dreams" and "Requirements."
|"Dreams" are what feature we (or some people) want, but we don't
|necessarily have to conclude by 2.0.  "Requirements" are what
|feature we *must* conclude and implement, typically, which is
|"what matz and/or 2.0 release manager want."

Yes, we have to determine what are must-haves for 2.0 and what are
if-possibles.

|Matz, what feature are "Requirements?"
|You are the only one who can decide them because there is no
|2.0 release manager currently.
|
|Once, I heard from matz the only four "Requirements", though
|I forgot one:
|
|- Module#prepend
|- Refinements, Classbox, or something to do the similar
|- keyword arguments (or, named parameter)
|- ???

It was Module#mix I think.  But last night, after detailed discussion
and consideration, I give up the idea.  So, as of today, my must-have
list for the language is:

 * Module#prepend
 * keyword arguments (decomposition of hash argument in callee)

And if-possible list is:

 * refinement
 * renaming methods and constant lookup resolution for #include

The current reference implementation slows down method calls to 5-15%
so that unless we could find how to implement it faster before the
deadline (Fall 2012 maybe), I think we should give it up for 2.0.

Method renaming and constant resolution are mere idea. I wanted to
address them by Module#mix.  Since I gave up #mix, I'd like to address
them by enhancing #include, if possible.

The implementation issues are not covered here.  We'd love to add
thing such as new GC, better Windows performance, better VM
performance, etc.  But I think we'd better focus the language design
first.

							matz.