>>>
>
>
> On 8/13/20, 4:34 AM, "Trygve Reenskaug" <
[hidden email]> wrote:
>
>>
>> Dear All,
>> Imagine that you bought an iPhone 20 years ago. Over the years, you have
>> filled it with pictures, contacts, and other personal data. You now want to
>> upgrade to iPhone SE and find that all your personal data are lost because
>> there is no way to transfer your data. Very sad.
>>
>> The same has happened to me with Squeak. The Squeak programs I have written
>> over the past 20 years are effectively lost because I can¹t port them to a
>> current version of Squeak. Very sad.
>>
>> The essence of object orientation is that objects collaborate to achieve a
>> goal. I retired 20 years ago and made it my task to create DCI
>> (Data-Context-Interaction), a programming paradigm that merges the concepts
>> of class and collaboration. BabyIDE is a non-intrusive Squeak program that
>> includes a model of DCI as well as tools for programming within the paradigm.
>> BabyIDE is a kind of Dynabook, a personal computer for experts in all
>> domains. Its target group could be department managers in business and
>> industry; they are experts in running their department in collaboration with
>> other managers. Another target group could be farmers; they are experts in
>> taking care of their animals. A third target group could be homeowners; they
>> build expertise in controlling their smart home.
>>
>> Squeak is more than a programming language; it is a live universe of
>> collaborating objects. The shared objects on the web is also a universe of
>> collaborating objects that Kevin Kelly called a single, global machine.
>> BabyIDE extends the Squeak image into this global machine, making all the
>> combined objects available for personal programming as illustrated below:
>>
>>
>>
>>
>>
>> BabyIDE is now running in Squeak 3.10.2, together with a new Squeak Reverse
>> Engineering tool. I want to port my programs to Squeak 3.5 to benefit from
>> its improved internet communication facilities. This port has been pestering
>> me since April, but the overwhelming complexity of 3.5 has forced me to
>> accept defeat. I can¹t avoid speculating about the nature of Squeak¹s current
>> target group. It used to be ³children of all ages.² Today, it neither
>> includes children nor old Smalltalk hands like me (I wrote my first Smalltalk
>> program in 1978). Stephen Pope, another veteran who also bemoans what is
>> happening to Squeak, wrote in a blog:
>>
>>
>>> ³The most popular systems (Squeak and Pharo) both suffer from unbelievable
>>> image bloat, with many thousands of classes, hundreds of root classes, class
>>> hierarchies with many instance variables in the high-level (abstract)
>>> classes, and too many packages with cute but meaningless (to a new-comer)
>>> names.²
>>>
https://smalltalk.tech.blog/2020/08/10/smalltalks-successor/>>> <
https://smalltalk.tech.blog/2020/08/10/smalltalks-successor/>
>>>
>>> I couldn¹t agree more. A few examples:
>>>
>>>
>>>> 1. Class Object defines 485 methods. This means that every Squeak object
>>>> understands at least 485 messages. Most of them are irrelevant to the
>>>> problem at hand, but all of them can be part of unexpected behavior.
>>>>
>>>> 2. The state of every Morph object is held in its regular instance
>>>> variables PLUS any number of undeclared and undocumented variables in its
>>>> extension, a Dictionary that may include another dictionary inside it. The
>>>> Morph class comment: ³MorphExtension Allows extra properties to be stored
>>>> without adding a storage burden to all morphs.² I¹m more concerned about
>>>> the burden put upon the code reader.
>>>>
>>>> 3. For me, the final straw was the new filtering phase added to Squeak¹s
>>>> already complex event handling mechanism. Squeak 3.5 has 208 new methods
>>>> with filter¹ in their name, but there is no indication as to what they are
>>>> for and when to use them. The abstract concepts of event filtering are
>>>> documented, but there is no documentation on their reification into
>>>> concrete code. The complexity of a basically simple mechanism has reached a
>>>> new high far beyond the capabilities of my brain.
>>>>
>>>> 4. Class MorphicEventDispatcher has 4 methods in 3.10.2 and 16 methods
>>>> in 5.3.
>>>>
>>>> 5. Class MyMorph>> processEvent: anEvent using: anIgnoredDispatcher
>>>> is a regular event handler in 3.10.2. In 5.3, it is a filter, and its
>>>> execution never stops.
>>>>
>>>
>>> After 60 years in programming, 42 of them in Smalltalk, and the last 20 in
>>> Squeak, I have reached the end of my patience and reluctantly have to quit
>>> Squeak programming. It is truly a sad day.
>>>
>>> Have fun and Goodbye,
>>> --Trygve
>>>
>>>
As one of 3.10 makers , I'm proud still you use it.
And as one of the admirers of you work also I'm sad.
Squeak these days is a cat bag.
That don't means is unusable.
I try to port Baby to modern Squeak and fail.
To all Squeakers my pray to help in this.
A BabyIDE return task force.