← Back to context

Comment by arohner

15 years ago

He was definitely clueless about the implementation of Ruby. MRI started as a half-assed Scheme implementation, which is easy to see when you read the MRI source code. Scheme has lexical scoping, while Ruby has...python/perl-style scoping.

Scheme has first class anonymous functions, while Ruby has blocks, which are a hack around MRI's slow function calls.

while Ruby has blocks, which are a hack around MRI's slow function calls

Is this really the reason? I thought Ruby has blocks because Smalltalk has blocks.

  • I believe smalltalk block are BlockClosure objects that can be passed around like any other parameter.