the historical anecdote could be nice as part of the class documentation.
On Thu, Apr 17, 2014 at 8:59 PM, Alexandre Bergel <[email protected]>wrote: > 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 > > > -- Bernardo E.C. Sent from a cheap desktop computer in South America.
