Hi,

In message "Re: [ruby-core:39840] Re: Discussion results"
    on Mon, 3 Oct 2011 03:36:02 +0900, Intransition <transfire / gmail.com> writes:

|I did not have the fortune of attending the discussion, but I would
|like to put forth some notions I've had/seen for Ruby 2.0:
|
|1) Go through ActiveSupport core extensions and Ruby Facets to find
|most popular and useful methods and port them over. Good examples are
|String #indent, #tab, #tabto, #to_h/#to_hash methods, Hash#rekey,
|#blank, those have been useful to me. I'm sure others have their own
|favorites too --take a poll or do some code analysis to figure out
|which ones.

Activesupport is just fine by itself.  I am not that positive to merge
anything from Activesupport, unless there is some very specific reason
to merge to the core.  I have merged Symbol#to_proc from Activesupport
in the past, but slight behavioral difference caused problems.

|2) Make toplevel a self extended module instead of a weak proxy of
|Object. Besides being conceptually easier to understand, it would
|allow DSL scripts to run at toplevel without worry of infecting
|Object. This would have been a huge boon for me in couple of my
|projects, such as my test framework --instead I had to write my own
|toplevel-like proxy to fake it, which is inevitably imperfect and just
|pain to have to do.

I don't understand what would satisfy you.  Could elaborate rather
than forcing me to guess your intention?

|3)  Add margin literal, e.g.
|
|    > %L|This is
|        |  margin
|        |    controlled.
|    => "This is\n  margin\n    controlled."
|
|Nothing sucks more for readability than having to flush a literal
|string to the left margin in the middle of indented code.

Use here documents.  At least above syntax requires huge overhaul of
the lexer/parser, that I don't think worth it.

|4) Treat `@` as a hash object, so @['foo'] is the same as @foo. This
|would make it much easier to work with instance variables, e.g.
|@.each{ |k,v| ... }

I am not positive about this proposal.  It is not intuitive.

|5) Better support for lazy and differed processing, e.g. lazy.rb and
|denumerable.rb.

I agree.  I like lazy. That would be a good candidate to be merged in.
I know little about denumerable.  I will investigate later.

|6) Add High-order Function to language but more tightly integrated to
|remove inefficiencies of pure-Ruby implementation. This is great
|device for making robust fluent notations.

Be more specific.  What would code look like by using it?

|7) Lastly, I think serious consideration should be given to removing
|the distinction between class and module. The distinction is purely a
|conceptual one that has built artificial limitations and undo
|complications into the language. What difference does it make to Bar
|if we include Bar, subclass Bar or instantiate Bar? Bar shouldn't have
|to care --it's just an encapsulation.

I am sorry but I'd have to say no.  Distinction between class and
module is very important for the fundamental OO design policy of Ruby
language.  I really like the simplicity of Ruby's mix-in system.
Removing the distinction would mean going back to multiple
inheritance, which I hate.

Of course I know multiple inheritance works just fine for many cases,
but this is my language, so it will follow my preference.


In message "Re: [ruby-core:39842] Re: Discussion results"
    on Mon, 3 Oct 2011 03:44:14 +0900, Intransition <transfire / gmail.com> writes:
|
|Oh, how could I forget:
|
|8) Open up access to the internal methods for looking up scripts used
|to find files in the $LOAD_PATH. Use of this is plugin file loaders.

It is under discussion.  Even though I am not positive about
disclosing internals of #require, it might be useful for some cases.

|9) autoload needs use an overridable require method of some sort. I
|use a custom load manager for developement, but since I can't get hold
|of autoload's require I can't use autoload in my projects, which
|majorly sucks!!!

I hate autoload.  autoload is one of things I regret.  I'm not
positive about enhancing something that I hate.

							matz.