From: Jeremy Henty Date: 2005-04-03T17:34:43+09:00 Subject: Re: Getting Ruby approved In article , Phil Tomson wrote: > ... I've used Tcl on and off over the years and personally, I > would not want to do a substantial project in it. Having done a fair amount of Tcl programming both at home and at work, I completely agree. There are two reasons why I would overwhelming prefer to do such a thing in Ruby (or even in Perl 5): 1. Tcl doesn't have first class data structures. I can't create an associative array, populate it, and pass the result to another bit of code. I have to fake it with call-by-name and upvar. Yeuch! 2. Tcl doesn't have lexical scoping. If I pass a block of code around I have to uplevel it to run it in the right context. Worse, I have to uplevel it by exactly the number of stack frames between the proc that supplies the block and the proc that executes it, which puts a burden on refactoring. Double Yeuch! In Ruby this just works; it doesn't get in the way. That said, Tcl's embedding API design is superb. I really hope Rite copies it. When I learned that the Ruby API forces a single global interpreter instance I felt a bizarre and unfamiliar emotion: disapointment with Ruby. Cheers, Jeremy Henty