Some initial impressions from a Perl/Smalltalk programmer writing his first 
Ruby program...

There are no post- or pre-increment or decrement operators!

There's nil? but no notNil? Why? I realize that there's unless and until... 
(yes, I know I can make my own).

How do I display the current line context in debugger? The only way I've 
found is to display the call stack and then specify an explicit line number 
to "l". Would be nice to have a short-cut to specify "show me the current 
line". Perhaps "l ."

How do I get vi mappings in the debugger? It tells me that emacs mode is 
available... I got vi mappings going in irb.

Is there a standard equivalent of perldoc for Ruby? I'm used to having a 
standard command to get module documentation; there seems to be no standard 
way to find module documentation in Ruby. Yes, I've seen rdtool, but it 
doesn't seem to be integrated with anything. And 3rd-party modules don't 
install their documentation in a standard place, since there isn't one.

There doesn't seem to be a standard way to install 3rd-party modules in Ruby 
that works as smoothly as CPAN.pm.

"responds_to?" probably makes more sense to English speakers than 
"respond_to?".
---------
a = 0
a ||= 3
doesn't work but doesn't complain. Even though:
a.respond_to?('||=')  returns false. Why doesn't it complain?

Surprise! 0 isn't false, but the ||= operator doesn't complain about the 
non-Boolean receiver like it would in Smalltalk.
---------
p = Proc.new { |a| a }
p.call(1, 2)      # => [1,2]

Surprise! The list turned into an Array!

I would have either expected a warning or the second parameter to be ignored.

If you call a method with the wrong number of arguments, you get an error 
message. But not a Proc. Even though you could do this:

p = Proc.new { |a,*b| a }
p.call(1,2)   # => 1

In what other cases do lists turn into Arrays?
---------

-- 
Ned Konz
currently: Stanwood, WA
email:     ned / bike-nomad.com
homepage:  http://bike-nomad.com