A Sad Day

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
34 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Distributed Squeak

timrowledge


> On 2020-08-15, at 2:11 AM, karl ramberg <[hidden email]> wrote:
>
> Craig Latta has been developing similar stuff for a while

It's about 20 years now, IIRC.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: PNG: Pass Noxious Gas



Reply | Threaded
Open this post in threaded view
|

Re: A Sad Day

Chris Muller-3
In reply to this post by Trygve
Trygve, I couldn't avoid my eyes getting heavy by what I learned here.  I already knew I share your desire and vision for everyday people to be empowered by personal computing, and have pursued this goal for 20 years with Squeak as well.  Tablets came out since then, but they didn't solve it -- they're partitioned by function (app) rather than by object, with woefully insufficient inter-domain cohesion.  I still believe the paradigm of "one universe of objects" (some personal, some shared, some internal, some external) and "send a message to an object" -- if properly encapsulated and designed with sufficient empathy for users -- can be understood and embraced into an acceptable paradigm.

Indeed, today's Squeak community has become a lonely place for Dynabook dreams, as it became concerned with different goals, but I haven't given up on it still being possible with a derivative of Squeak 5.3.  I still have an email from you about Baby*, which I've starred, and intended to get back to you when I finally get to mount my second attack on MaUI[1].  Alas, time is a merciless teacher, I won't get to realize my fantasy to interact with you on this.  However, I've now secured a copy of your whitepaper PDF, and the versions of Baby* on SqueakMap, which I look forward to exploring and learning.

I don't know him personally, but have interacted with Marcel enough to believe his words were simply daring you to elicit more detail, not question your honesty.  He's darn good at wrangling Squeak, whatever issue you found, it's a good bet he would be able to fix it.  I hope you'll give him the benefit of the doubt.  Now is your time to be at peace with the universe.  Farewell.

Regards,
  Chris Muller


On Thu, Aug 13, 2020 at 2: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/
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

--

The essence of object orientation is that objects collaborate  to achieve a goal.
Trygve Reenskaug      
[hidden email]
Morgedalsvn. 5A       
http://folk.uio.no/trygver/
N-0378 Oslo             
http://fullOO.info
Norway                     Tel: (+47) 468 58 625




Reply | Threaded
Open this post in threaded view
|

Re: Distributed Squeak

Erik Stel
In reply to this post by Edgar De Cleene
Hi Edgar, Trygve, others,

The idea(s) behind CodeParadise should probably [*] lead to a situation in
which developing code is based on a number of relative small Smalltalk
images. Each image small enough to 'understand'. One image for the
application you're developing. One for the development environment. One for
the user interface (running inside the browser). Etc. Separating the
development environment means I won't be 'seeing' Compiler or Inspector
classes when working on my application. IF I do want to add or change a
feature of the development environment, I'll open a Browser on that
development image and change things there. Being able to change the full
environment (consisting of multiple images) should still be possible and
effective directly (Smalltalk design principles). Currently I'm mostly busy
realising/implementing the tiny image inside the browser (because it is a
difficult nut I'd like to crack first). I have chosen Pharo8 as my current
development environment, but it should be replaced by my own environment
because of the exact bloat Trygve and others refer to. I love Pharo,
Squeak(JS) and Cuis. All have their strengths.

I'm scheduled for a presentation about this 26th of August on the UK
Smalltalk user group (19hrs UK time). Please join if you're interested to
see and talk about this.

(This part is not well thought out yet, but I'd like to have something like
this for CodeParadise:)
If you need for example storage you'll probably have another image, somewhat
similar to applying a Microservice pattern. These services will not process
data (i.e. not your typical REST api), but process objects. These services
will at startup not contain the classes/methods of your (business) objects.
This also holds for the current tiny image in the browser. It does not
contain any code (classes and methods) for views/presenters. All this code
is added to the image/service when needed. This allows (but also requires)
more independent 'components'. This could lead to specifically compile time
configured services or more 'dynamic' services which are 'provisioned' at
runtime.

So the idea I have is to move away from the traditional single (Smalltalk)
image philosophy.

@Trygve, thanks for all your nice work. Hope you're doing well. My
description above is not the same as what you describe, but it feels like it
could have a similar end result (if I understand you correctly).
Still so much to do...so I won't be offering a solution anytime soon. Wish I
could...

[*] Things are still in early development and I haven't thought out all the
details yet. Some things might not work when theory meets practice ;-).

Cheers,
Erik




--
Sent from: http://forum.world.st/Squeak-Dev-f45488.html

Reply | Threaded
Open this post in threaded view
|

Trying to help to bring BabySRE to modern Squeak

Edgar De Cleene
In reply to this post by Edgar De Cleene
I digging in old experiments

So I found a 7179-basic.226publ.image and some .mcz we made with Hannes
Hirzel long time ago

Bring all BabySRE to modern Squeak take longer to me , so I share for young
people my founds.

Problems come of format changes in .image and also in missing dependencies

Here you have some BabySRE  in old 4.5 running in old iMac 2009 with John
VM.

I continue this line of work trying to found missing pieces.


Edgar
@morplenauta




world.jpeg (384K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Distributed Squeak

codefrau
In reply to this post by Erik Stel
On Sun, Aug 16, 2020 at 3:25 AM Erik Stel <[hidden email]> wrote:

I'm scheduled for a presentation about this 26th of August on the UK
Smalltalk user group (19hrs UK time). Please join if you're interested to
see and talk about this.

Will this be virtual or physical? The meetup page suggests it's in London:


Vanessa


Reply | Threaded
Open this post in threaded view
|

Re: Distributed Squeak

Erik Stel
Hi Vanessa,

It will be an online meetup. Hope to see you there.

Cheers,
Erik




--
Sent from: http://forum.world.st/Squeak-Dev-f45488.html

jrm
Reply | Threaded
Open this post in threaded view
|

Re: Trying to help to bring BabySRE to modern Squeak

jrm
In reply to this post by Edgar De Cleene
Edgar,
Thank you for working to bring Baby SRE up to a more current  Squeak release. This is a kind gift to the community.

-jrm

On Sun, Aug 16, 2020 at 4:08 AM Edgar J. De Cleene <[hidden email]> wrote:
I digging in old experiments

So I found a 7179-basic.226publ.image and some .mcz we made with Hannes
Hirzel long time ago

Bring all BabySRE to modern Squeak take longer to me , so I share for young
people my founds.

Problems come of format changes in .image and also in missing dependencies

Here you have some BabySRE  in old 4.5 running in old iMac 2009 with John
VM.

I continue this line of work trying to found missing pieces.


Edgar
@morplenauta




--
John-Reed Maffeo


Reply | Threaded
Open this post in threaded view
|

Re: Distributed Squeak

Craig Latta
In reply to this post by timrowledge

Hi--

     Karl writes:

> Craig Latta has been developing similar stuff for a while

     Tim responds:

> It's about 20 years now, IIRC.

     Since 2002... At least Squeak will turn 25 before this hits 20. :)


-C

--
Craig Latta
Black Page Digital
Berkeley, California
blackpagedigital.com



Reply | Threaded
Open this post in threaded view
|

Re: Distributed Squeak

timrowledge


> On 2020-08-18, at 10:54 PM, Craig Latta <[hidden email]> wrote:
>
>
> Hi--
>
>     Karl writes:
>
>> Craig Latta has been developing similar stuff for a while
>
>     Tim responds:
>
>> It's about 20 years now, IIRC.
>
>     Since 2002... At least Squeak will turn 25 before this hits 20. :)

Ah yes. A couple of years before we moved up north. I remember discussions about it at the place in Portola Valley... and I remember racing a Porsche 911 around the 280 on my way to visit. :-)

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
"Bother," said Pooh, as Satan pointed out the fine print...



Reply | Threaded
Open this post in threaded view
|

Re: Distributed Squeak

Douglas Brebner-2
In reply to this post by Trygve
On 15/08/2020 08:56, Trygve Reenskaug wrote:
Just an idea while a car is waiting to take me on a vacation.

Imagine:
  1. You have a computer with many independently running images.
  2. A super fast facility pass messages between the images,
  3. Selected services in the release image are move out and deployed as server objects in another image.
  4. Every image appears as a server offering RESTful interfaces to other images.
  5. Selected packages in any repository can be downloaded, compiled, instantiated, and deployed in an image as server objects.
  6. The different images can even run in different computers and use different VMs.
  7. There are now two dimensions to the reuse of functionality: a) download and compile a package. b In some image, install a package and deploy it as a server object.
  8. And presto: The original image is now small and manageable while the whole system can grow without increasing the complexity of the release image.
In haste. This is just an idea. It's full of holes and need a lot of work done to it before it can be usable.. It's a disruptive idea, so please give it some consideration This is before you shoot it down
--Trygve

Sort of like using Images as Actors?



Reply | Threaded
Open this post in threaded view
|

Trying to help to bring BabySRE to modern Squeak

Edgar De Cleene
In reply to this post by Edgar De Cleene
Finally I get BabySRE working in 6.0, without freezes and without undeclared
classes.
This do not means all wonderful work of Trygve is on 6.0
But is a start.
Also I see a couple of pages is on swiki
Still have my own expanded view on 190.191.74.232:9090 user visita no pass
Load orden is TextMorphEditor from Jurasik Park era

from Ladrillos repo
BabySRE-Connectors
BB1IDE-Support-edc.1
BB1UnmappedRole
And finally
BabySRE-edc.51

Also found I make several .mcz coming of original 3.10 image , so I dig some
more and perhaps we have more of Trygve .

So no Hasta la vista Baby.
Say Volviste Baby (You come back Baby)


Edgar
@morplenauta








AgregaRepoLadrillos.st (252 bytes) Download Attachment
BB1UnmappedRole.cs.gz (288 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Trying to help to bring BabySRE to modern Squeak

David T. Lewis
Edgar,

On Thu, Aug 20, 2020 at 08:08:16AM -0300, Edgar J. De Cleene wrote:
> Finally I get BabySRE working in 6.0, without freezes and without undeclared
> classes.
> This do not means all wonderful work of Trygve is on 6.0
> But is a start.
> Also I see a couple of pages is on swiki
> Still have my own expanded view on 190.191.74.232:9090 user visita no pass
> Load orden is TextMorphEditor from Jurasik Park era

Bravo!!! Well done!!!

Dave



>
> from Ladrillos repo
> BabySRE-Connectors
> BB1IDE-Support-edc.1
> BB1UnmappedRole
> And finally
> BabySRE-edc.51
>
> Also found I make several .mcz coming of original 3.10 image , so I dig some
> more and perhaps we have more of Trygve .
>
> So no Hasta la vista Baby.
> Say Volviste Baby (You come back Baby)
>
>
> Edgar
> @morplenauta
>

Reply | Threaded
Open this post in threaded view
|

Re: Trying to help to bring BabySRE to modern Squeak

Craig Latta
In reply to this post by Edgar De Cleene

     Sweet!


-C

***

     On 20/8/20 04:08, Edgar J. De Cleene wrote:

> Finally I get BabySRE working in 6.0, without freezes and without
undeclared

> classes.
> This do not means all wonderful work of Trygve is on 6.0
> But is a start.
> Also I see a couple of pages is on swiki
> Still have my own expanded view on 190.191.74.232:9090 user visita no pass
> Load orden is TextMorphEditor from Jurasik Park era
>
> from Ladrillos repo
> BabySRE-Connectors
> BB1IDE-Support-edc.1
> BB1UnmappedRole
> And finally
> BabySRE-edc.51
>
> Also found I make several .mcz coming of original 3.10 image , so I
dig some
> more and perhaps we have more of Trygve .
>
> So no Hasta la vista Baby.
> Say Volviste Baby (You come back Baby)
>
>
> Edgar
> @morplenauta

--
Craig Latta
Black Page Digital
Berkeley, California
blackpagedigital.com



Reply | Threaded
Open this post in threaded view
|

Re: Distributed Squeak

Trygve
In reply to this post by Trygve
Is there a server somewhere where I can deploy a Squeak object and make it available on the Net through its interface?
If so, is there some documentation I can read?
Best
--Trygve

On 2020-08-15 09:56, Trygve Reenskaug wrote:
Just an idea while a car is waiting to take me on a vacation.

Imagine:
  1. You have a computer with many independently running images.
  2. A super fast facility pass messages between the images,
  3. Selected services in the release image are move out and deployed as server objects in another image.
  4. Every image appears as a server offering RESTful interfaces to other images.
  5. Selected packages in any repository can be downloaded, compiled, instantiated, and deployed in an image as server objects.
  6. The different images can even run in different computers and use different VMs.
  7. There are now two dimensions to the reuse of functionality: a) download and compile a package. b In some image, install a package and deploy it as a server object.
  8. And presto: The original image is now small and manageable while the whole system can grow without increasing the complexity of the release image.
In haste. This is just an idea. It's full of holes and need a lot of work done to it before it can be usable.. It's a disruptive idea, so please give it some consideration This is before you shoot it down
--Trygve





On 2020-08-14 22:54, karl ramberg wrote:
Well said, Vanessa :-)

The complexity comes from people using Squeak and wanting to improve it in many directions.
And managing code , graphics , user interface , faster virtual machine, networking, security etc. are hard problems which add complexity.
And also the added accidental complexity on top of that.

It seems systems only are simple and elegant until people start using them.
One can see that as a good or bad thing.

Solution to the complexity problem will probably take a few generations to solve...

Best,
Karl



On Fri, Aug 14, 2020 at 9:42 PM Vanessa Freudenberg <[hidden email]> wrote:
On Fri, Aug 14, 2020 at 2:31 AM Marcel Taeumel <[hidden email]> wrote:
Hi Trygve,

I apologize for any misunderstandings here. I am not an English native speaker. It was not my intent do accuse you of lying.

However, there is a difference between a bug report and an unsubstantiated rant. I did read your entire post "A Sad Day" as the latter. Whose mistake that was, I cannot tell now. Neutral, objective bug reports would read different, I suppose.

It was neither a bug report nor an unsubstantiated rant. It was a criticism of the complexity of all current Smalltalks. The few examples of unexpected complexity in Squeak that Trygve chose to mention are not the actual issue. No need to feel personally attacked.

Having worked with a beautifully tiny system like Smalltalk-78, or even early versions of Squeak, the complexity in modern Squeak is staggering. 

Smalltalk used to be a system that can be fully understood by a single person - truly a personal computing system. That is no longer the case.

All the functionality we added over the years comes at the price of complexity (not to mention speed). It makes the system hard to understand. It makes it hard to see the design principles. We have not found a way to eliminate, or at least hide, any of the complexity we introduced.

I don't think there is a "solution" for this within the current system. We have accepted the complexity, and now we have to live with it. And we have to accept that that alienates people who are looking for simplicity and elegance.

I am sad to see Trygve leave, but I do understand. He didn't even owe us an explanation. Thank you, Trygve!

All the best,
Vanessa



--

The essence of object orientation is that objects collaborate  to achieve a goal.
Trygve Reenskaug      
[hidden email]
Morgedalsvn. 5A       
http://folk.uio.no/trygver/
N-0378 Oslo             
http://fullOO.info
Norway                     Tel: (+47) 468 58 625


--

The essence of object orientation is that objects collaborate  to achieve a goal.
Trygve Reenskaug      
[hidden email]
Morgedalsvn. 5A       
http://folk.uio.no/trygver/
N-0378 Oslo             
http://fullOO.info
Norway                     Tel: (+47) 468 58 625



12