Thanks Eliot for the historical anecdote 

Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Apr 17, 2014, at 1:54 PM, Eliot Miranda <[email protected]> wrote:

> Hi Alexandre,
> 
> 
> On Thu, Apr 17, 2014 at 8:21 AM, Alexandre Bergel <[email protected]> 
> wrote:
> Because what we call a block is actually a closure. Smalltalk-80 invented 
> blocks, which were not closures at that time. Over the time we found out that 
> Blocks are not really useful, but instead the humanity largely prefer closure.
> 
> I don't think this is right.  Yesterday Clément and I had lunch with Dan 
> Ingalls and we talked about the origin of blocks.  At first blocks were not 
> even real objects; instead they were just a syntactic construct for delayed 
> evaluation.  Over time the original Smalltalk team found they needed more and 
> more useful features, and they wanted everything to be objects so they 
> introduced both the syntax for blocks and the class BlockContext, but they 
> didn't look at other languages and so they didn't implement blocks as 
> closures.
> 
> So I think its more accurate to say
>    Over time Smalltalkers found blocks were /really/ useful.  Later on they 
> found out that they could implement blocks as closures, with the result that 
> they were even more useful and much cleaner, leading to a more efficient 
> virtual machine.
> 
> But ok, this is not a pressing thing. Was just a tough.
> 
> If it ain't broke don't fix it.  The name BlockClosure isn't incorrect.  
> These are blocks implemented as closures.  The name MethodContext /is/ 
> broken.  These /aren't/ just MethodContexts any more, they are both 
> BlockContexts and MethodContexts, so collapsing ContextPart and MethodContext 
> together into just Context, and deleting the now unused BlockContext does 
> make sense.
>  
> [snip] 
> 
> Alexandre
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
> 
> On Apr 17, 2014, at 11:45 AM, Yuriy Tymchuk <[email protected]> wrote:
> 
> > It’s like saying that we have to run Pharo on JVM because everyone is doing 
> > that. In 80s block was invented. Why should we rename it because of some 
> > other languages?
> >
> > Uko
> >
> > On 17 Apr 2014, at 16:35, Alexandre Bergel <[email protected]> wrote:
> >
> >> Well… the whole community of programming language call a closure a 
> >> closure. Calling a block what is actually a closure may not be a 
> >> well-marketed move in my opinion.
> >>
> >> Alexandre
> >> --
> >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> >> Alexandre Bergel  http://www.bergel.eu
> >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >>
> >>
> >>
> >> On Apr 17, 2014, at 10:29 AM, Sebastian Sastre 
> >> <[email protected]> wrote:
> >>
> >>> On Apr 17, 2014, at 10:08 AM, Yuriy Tymchuk <[email protected]> wrote:
> >>>
> >>>> I would rather rename is to Block, as everyone is calling it a “block”.
> >>>
> >>> That might be actually a good idea
> >>>
> >>> sebastian
> >>>
> >>> o/
> >>>
> >>> PS: thinking in that line there is also ‘Context’ as, conceptually, what 
> >>> these blocks of code want to do is to keep the evaluation in a specific 
> >>> context. But to ease know-how transference and type less I’d rather go 
> >>> with the most popular name, as you suggested: ‘Block'
> >>>
> >>>
> >>
> >>
> >
> >
> 
> 
> 
> 
> 
> -- 
> best,
> Eliot


Reply via email to