Disclaimer: This may sound like a rant but it isn't. I got out of that rabbit hole a decade ago. For me programming in Smalltalk is dreaming of the ideal software and programming in Python is Getting things done.
>From what I have seen, Pharo is the current popular Squeak derivative. I might >be wrong. My knowledge has a rot of 10+ years. That being said. A short recap: - Smalltalk (ST) has 5 reserved words: true, false, super, self and nil. Everything else is in Classes, methods and objects. - Arithmetic is not part of the language. "3 + 4" means the binary message '+' with argument '4' is sent to 3. Which means "3 + 4 * 5" evaluates to 35 (left to right) not 23 (multiplication before addition). - Everything except variables is an object. Which is also true for Python. - The image holds the complete state. On startup the image is loaded and every object recreated in RAM the way it was when the image was last saved. If the VM crashed either your last savepoint was good or you ended in the debugger or you really shot yourself in the foot. - With Squeak and a 32-bit VM the limit was 512 MB for the image. I wonder where the limits are with 64 bit. A save writes the complete image... - The last time I looked smalltalk didn't have what a Pythoneer would call a namespace. - Deploying an application is... you don't have applications. > Am 08.07.2017 um 20:45 schrieb Edward K. Ream <[email protected]>: > > > > On Friday, July 7, 2017 at 5:23:21 AM UTC-5, Edward K. Ream wrote: > I'm beginning to wonder what the difference is between the Pharo way and > #511: reload-leo command. Not much. You load stuff into RAM and do your best to keep it current. > How does Pharo handle changes in object format or methods? How does Pharo > recover from crashes due to changed method signatures, invalid calls, etc? It's a very integrated system. Class definitions are in image/RAM not a class file. Any Class/method can be changed at runtime because that's where they exist: in RAM at runtime. You have means to iterate over all objects and filter and manipulate them. > This simple, deep video shows how at around 3:30. It illustrates a great > quote at 5:40: > > "Objects are not there just to run whatever we put in classes. > Objects are there to carry on a dialog with us as programmers." > > Hmm. Roughly two minutes to change your world. Please invest another hour to get back to earth. I would hate it if you get lost on another planet: https://www.youtube.com/watch?v=YX3iRjKj7C0 If you're impatient, start at 19:30 and watch 5 min. I watch it at least once a year. > So...Could we define a PharoObject class (in Python) that could do the same? > Has anyone already done so? A quick google has not turned up anything. Yes you can... if you also take the VM and the class system. The VM for performance. The class system for the magic. If you want to know more about the magic: learn about MetaClasses and the class Behaviour. ######## If you really want to bring some of the good smalltalk stuff to Python: Write a class browser that works like the ST browser. And get as much fun and inspiration you could get from Squeak/Pharo. And please don't get lost. -karsten -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/leo-editor. For more options, visit https://groups.google.com/d/optout.
