Hi there,

  I recently stumbled on ruby, and as a long time fan of Objective C
found it immediately appealing. More than perl anyway, which is what
I use for most projects nowaday.

  However, reading the language description and faq, there are some
points that leave me flabbergasted as to why it is done this way, or
which I really miss -- I'll throw them in the mailing list in the
next few days and probably be roasted to a crisp in the ensuing flame
fest :)

  The first point is the definition of constants (a symbol starting
with an upper case letter) -- WTF was it done that way, mixing
syntax and semantics, instead of having a "const" attribute. After
all, if you go down that way, ruby could define protected methods
as "starting with an underscore" or such.

  I'd rather have a const attribute which makes the object immutable.


  One of the other things I miss dearly is a way to create a new
block-local variable. I have been bitten by

	foo = 42
	bar.each { |foo| foo.doSomething(); }
	...foo is no longer 42

  which would have been avoided by defining the second foo as block
local -- by the way, it is a formal parameter for the block, why
does it even think about touching the foo from outside the block?
This looks so wrong to me.

  Any insights?

	mjl