[HN Gopher] Smalltalk-80 on Raspberry Pi: A bare metal implement...
       ___________________________________________________________________
        
       Smalltalk-80 on Raspberry Pi: A bare metal implementation
        
       Author : baptiste313
       Score  : 114 points
       Date   : 2023-01-01 17:56 UTC (5 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | johndoe0815 wrote:
       | Author here, feel free to ask any questions you have :).
       | 
       | It's amazing this little project shows up again here. So far, I
       | received a lot of very positive and friendly feedback about this
       | little pet project of mine.
       | 
       | The whole project would not have been possible without the work
       | of Rene Stange, who created the circle bare-metal library for the
       | Raspberry Pi (https://github.com/rsta2) and Dan Banay, who
       | created a C++ implementation of the Smalltalk-80 VM
       | (https://github.com/dbanay/Smalltalk). I mostly hacked together
       | some glue code...
       | 
       | If you want to dig deeper, the Blue Book by Adele Goldberg and
       | David Robson (scan provided by Stephane Ducasse, thanks a lot!)
       | is _the_ reference on both the language and the structure and
       | implementation of the underlying bytecode VM:
       | http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook....
       | 
       | Beware, though it's fully functional, crosstalk is still limited
       | by constraints of the original Smalltalk 80 system - e.g. in
       | terms of color (black and white only), possible screen resolution
       | (2^20 pixels, the system crashes if you try to increase the
       | resolution beyond this) and available memory (~1 MB!).
       | 
       | Nevertheless, I think it's a rather authentic reproduction of a
       | more than 40 year old system and I learned (in a comment thread
       | on a completely different topic) that one of our fellow
       | hackernews regulars used it to teach his kid Smalltalk
       | programming - love it! I haven't tried to optimize it
       | significantly, so there's no JIT compiler or bitblit acceleration
       | using the Raspberry Pi GPU.
       | 
       | There's a more modern bare-metal Smalltalk implementation based
       | on Squeak (https://squeak.org) for the Raspberry Pi by Pablo
       | Marx, though this seems to have some stability problems according
       | to the author: https://github.com/pablomarx/RaspberrySqueak
       | 
       | Finally, if you are interested in alternative bare-metal
       | language/OS environments for the Raspberry Pi, you could also
       | give Lukas Hartmann's (of MNT Reform notebook fame) Interim OS a
       | try: http://interim-os.com
        
         | b33j0r wrote:
         | I'm baffled that I never saw the name Alan Kay.
         | 
         | Given, I did not read everything. Expected it to be in bright
         | lights, based on the story I was told ;)
         | 
         | (That's my malformed question)
        
           | johndoe0815 wrote:
           | There are a lot of famous persons involved in the history of
           | Smalltalk, without who we would have nothing to write about
           | here.
           | 
           | Alan Kay was certainly the driving force, but let's not
           | forget Dan Ingalls, Adele Goldberg, Ted Kaehler, Diana Merry,
           | Scott Wallace, and Peter Deutsch (who is also the founder of
           | Aladdin Enterprises and creator of Ghostscript) - and all
           | others I forgot to mention here...
           | 
           | One other very important person related to this endeavor is
           | Mario Wolczko, who ported Smalltalk 80 to the Perq
           | workstation (his master thesis at Manchester University) and
           | extracted and distributed the Smalltalk 80 VM image - see
           | http://www.wolczko.com/st80/. Later, Mario worked on the SELF
           | language (and many other projects, of course) at Sun Labs.
        
       | dang wrote:
       | Related:
       | 
       |  _Bare metal Smalltalk-80 port to the Raspberry Pi_ -
       | https://news.ycombinator.com/item?id=23874206 - July 2020 (63
       | comments)
       | 
       |  _Ask HN: Automated SW testing on different Raspberry Pi models?_
       | - https://news.ycombinator.com/item?id=23806323 - July 2020 (1
       | comment)
        
         | johndoe0815 wrote:
         | Thanks for the links dang!
         | 
         | I still haven't managed to set up the automated test
         | environment on different Raspberry Pi models, this might be an
         | interesting project for one of my students...
        
       | 0x445442 wrote:
       | I love ST the language, I like ST the image but I hate the tight
       | coupling to the antiquated UI. I know there's GNU ST but I wish
       | there were more options. I also wonder how difficult it would be
       | to create a modern IDE integration with GNU ST with something
       | like IntelliJ, Eclipse, Net Beans or VS Code.
        
       | narutowindy wrote:
       | Someone explain what's smalltalk?
        
         | marvel_boy wrote:
         | Really it is a shame that lots of people on tech have never
         | hear of Smalltak. It is in my humble opinion the most
         | influential language ever created. Ask anyone who played with
         | Smalltak in the 80's and they will say the same: "I never ever
         | will have the sensation of power and confidence that Smalltak
         | provided".
        
           | layer8 wrote:
           | I think "most influential" is debatable. In the space of OO
           | languages that found widespread adoption, more seem to be
           | influenced by the Simula-C++ lineage (notwithstanding
           | counterexamples like Objective-C and Ruby).
        
         | glacials wrote:
         | I find an sample of Smalltalk is one of the most interesting
         | ways to see how it flows as a language, as its grammar almost
         | reads like English. From Wikipedia [1], this is a piece of
         | Smalltalk code:
         | 
         | > 3 factorial + 4 factorial > between: 10 and: 100
         | 
         | which means:
         | 
         | > 3 receives the message "factorial" and answers 6 > 4 receives
         | the message "factorial" and answers 24 > 6 receives the message
         | "+" with 24 as the argument and answers 30 > 30 receives the
         | message "between:and:" with 10 and 100 as arguments and answers
         | true
         | 
         | [1]: https://en.wikipedia.org/wiki/Smalltalk
        
           | worik wrote:
           | > as its grammar almost reads like English.
           | 
           | Really? How different our interpretations can be, that is
           | incredibly opaque too me. Even reading your explanation I do
           | not understand it.
           | 
           | Horses for courses, I guess
        
         | johndoe0815 wrote:
         | Smalltalk is a programming language (+runtime, GUI, development
         | environment) that originated at the Xerox PARC research center
         | in the early 1970s on the Alto computer. Smalltalk was one of
         | the first object-oriented systems (along with the Norwegian
         | Simula system), it differs from Simula/C++-style OO due to
         | using dynamic dispatch (late binding), i.e., selecting which
         | implementation of a polymorphic operation (method or function)
         | to call at run time instead of at compile time.
         | 
         | It had significant influence on the development of the personal
         | computer. Projects at Apple (Lisa/Mac) and Microsoft (Windows)
         | were influenced by the Smalltalk GUI and Smalltalk was also the
         | basis for Objective C, the language behind the NeXT/MacOS/iOS
         | UI frameworks - now on the way to be supplanted by Swift.
         | 
         | More details, as usual, on Wikipedia:
         | https://en.wikipedia.org/wiki/Smalltalk
        
           | JKCalhoun wrote:
           | I knew _of_ Smalltalk but was unaware it was 1) byte code
           | rather than compiled and 2) it influences Objective C. Very
           | cool.
           | 
           | Seeing also Pascal, Modula, Forth, Prolog... The 70's were an
           | innovative era for programming languages. https://en.wikipedi
           | a.org/wiki/Timeline_of_programming_langua...
        
             | pinewurst wrote:
             | It also introduced (in its later ParcPlace form) the idea
             | of JITing interpretive languages.
        
       | daitangio wrote:
       | Also, this Java implementation is nice
       | https://github.com/victorr/jsqueak
       | 
       | Look at Squeak Smalltalk for further enhancements
        
       | pulse7 wrote:
       | Any screenshots?
        
         | slim wrote:
         | it's based on this
         | 
         | https://github.com/dbanay/Smalltalk
         | 
         | (there's one screenshot there)
        
           | wrycoder wrote:
           | From 2020:
           | 
           | https://news.ycombinator.com/item?id=23307700
        
         | johndoe0815 wrote:
         | See my blog entries here (beware, something about the
         | certificate for the web server is broken right now, will try to
         | fix it right away):
         | 
         | https://www.multicores.org/blog/tag_Smalltalk.html
        
           | layer8 wrote:
           | The problem is that the certificate is issued for
           | _multicores.org_ , but not for _www.multicores.org_. Removing
           | the  "www." from the URL makes it work. You need to have the
           | certificate issued for all subdomains you want to use it for
           | (or for a wildcard subdomain).
        
             | johndoe0815 wrote:
             | Uh, good catch, thanks - that explains it!
        
           | slim wrote:
           | nothing is wrong with your certificate, it's just self signed
           | and browsers don't support that correctly. They just show the
           | same unsecure usual message.
        
             | johndoe0815 wrote:
             | Thanks for the feedback!
             | 
             | You're correct, but I seem to remember that I configured a
             | letsencrypt certificate for nginx, which should be
             | recognized as fully verified as far as I know.
        
               | AlbertoGP wrote:
               | Well, right now I'm getting a self-signed certificate
               | with a validity of one year, not the letsencrypt one.
               | Issuer name         Country: de         Organization:
               | multicores         Email Address: engel@multicores.org
        
       ___________________________________________________________________
       (page generated 2023-01-01 23:00 UTC)