[matz]:
>|2. I like the idea of named method parameters (ala Smalltalk, Objective-C).
>|There was a discussion elsewhere showing something similar using hash
>|tables.  With a bit of syntactic sugar...   :var => 10 could be  var: 10
> 
> I want something more, for example:
> 
>   class PC
>     def initialize(cpu:, os: "Windows", **info)
>       @cpu = cpu        # "cpu" is a mandatory named arg
>       @os = os          # "os" is with the default value
>       @info = info      # symbol=>value hashtable
>     end
>   end
>   PC.new(os: "Linux", cpu: "P-III", clock: "600MHz", hdd: "30G")

I like Python's way of not distinguishing between named and "unnamed"
parameters. The above would be:

	def initialize(cpu, os = "Windows", **info)

You could call it as

	PC.new("P-III", "Linux", clock: "600MHz", hdd: "30G")

Or (with named parameters order is flexible):

	PC.new(os: "Linux", cpu: "P-III", clock: "600MHz", hdd: "30G")

I like the flexibility of not having to decide which parameters
should be named/unnamed. 

Obviously, this would require some major changes to ruby. Also,
there might be performance penalties. For example, you would have
to store the names of all parameters with the method (though
that would be nice for introspection).

// Niklas