[HN Gopher] The Evolution of Smalltalk from Smalltalk-72 to Sque...
___________________________________________________________________
The Evolution of Smalltalk from Smalltalk-72 to Squeak [video]
Author : gjvc
Score : 207 points
Date : 2021-08-27 19:45 UTC (1 days ago)
(HTM) web link (www.pldi21.org)
(TXT) w3m dump (www.pldi21.org)
| msie wrote:
| I wanted to check out Squeak so I went to the squeak.org website
| and ran into so many broken links on the wiki.
| smackeyacky wrote:
| Neither Squeak or Pharo have well maintained website and
| searching for documentation via google is very hit and miss.
| Pharo is worth downloading and playing with though. The old,
| main commercial implemention of Smalltalk is available through
| Cincom. VisualWorks was just about to take over the object
| world before Java was released:
|
| https://www.cincomsmalltalk.com/main/
|
| I have been blogging about it recently here:
|
| https://smackeyacky.blogspot.com/
| zelphirkalt wrote:
| Not sure about any other implications, but you could check out
| Pharo, which is much more active than Squeak development.
| dtlewis290 wrote:
| I have been working with Squeak for many years. It's stable,
| evolving, and always interesting. I'm also a big fan of Cuis,
| but Squeak is still my personal favorite.
| bastardoperator wrote:
| I noticed the same thing too, I just ended up copying the link
| and they work just fine.
| hencq wrote:
| I was surprised to see that Smalltalk-72 was actually a much
| different language. In some ways it reminded me of Lisp macros
| and a bit of stack languages like Forth.
|
| This document [0] and especially Appendix II in this pdf [1]
| explain it well. Essentially an object just gets the unparsed
| message sent to it for it to do what it wants. So the code for an
| object basically parses the raw symbols to figure out what
| message to respond to.
|
| [0] http://worrydream.com/EarlyHistoryOfSmalltalk
|
| [1]
| https://raw.githubusercontent.com/worrydream/EarlyHistoryOfS...
| jecel wrote:
| The first Actor languages were inspired by Smalltalk-72 and
| make a lot more sense if you are familiar with -72 and less for
| those who only know Smalltalk-80.
| ProfHewitt wrote:
| Excellent video by Dan Ingalls on the Xerox early history of
| Smalltalk.
|
| In November 1972, Alan Kay gave an inspiring seminar at MIT
|
| on Smalltalk-72. There were ongoing discussions during the
| weeks after the lecture about the following:
| Dennis and van Horn capabilities Petri nets
| Smalltalk-72 Simula, which was strangely very
| different from Smalltalk-72 the Internet
| etc.)
|
| After extensive discussion about limitations of previous
|
| efforts, we realized that
|
| there is a single abstraction that provided the foundation
|
| for all of computation which it was decided to name the
|
| "Actors Abstraction". The Actors Paradigm covers all of
|
| digital computation and consequently is more powerful than
|
| Church/Turing Paradigm. Although the use
| of bitmap displays with Smalltak-72 was very
| impressive, Smalltalk-72 left a great deal to be
| desired as a programming language. Later Smalltalk
| designs were completely different because they
| adopted the Simula class hierarchy instead of the
| byte stream interpreter of Smalltalk72
|
| Limitations of Smalltalk72 reinforced the decision to _not
|
| define the fundamental abstraction of computation using a
|
| programming language_. Instead computation should be
|
| defined axiomatically in terms of fundamental concepts
| including Actors
| Computational Events Partial order on
| computational events Regions of mutual exclusion
| Event induction as the foundation for proving properties of
| Actors Systems
|
| See the following on how to axiomatically define computation
|
| using the Actors Abstraction:
|
| https://papers.ssrn.com/abstract=3418003
|
| https://papers.ssrn.com/abstract=3459566
|
| Also, see the following video:
|
| https://www.youtube.com/watch?v=AJP1VL7shiI
| galaxyLogic wrote:
| Everybody parsing their own messages sounds interesting but in
| the end we need a shared language, shared syntax
| ProfHewitt wrote:
| Messages themselves should be Actors.
| scroot wrote:
| If you are curious for more details, here is the Smalltalk-72
| manual that Kay and Goldberg wrote at PARC:
|
| http://www.bitsavers.org/pdf/xerox/parc/techReports/Smalltal...
| blihp wrote:
| Fantastic video. Most of the previous talks I've seen Dan give
| started with Smalltalk-78 or maybe briefly touched on
| Smalltalk-76 before spending the bulk of their time on the later
| versions. So I very much appreciated the time he spent on the
| early Smalltalk implementations (Smalltalk-76 and earlier) as it
| filled out the picture of how Smalltalk evolved.
| diskzero wrote:
| The most active Smalltalk inspired community seems to be Pharo.
| https://pharo.org
|
| I have avoided calling Pharo "Smalltalk" as it has evolved from
| the original fork of Squeak and the project is evolving and
| modifying from its Smalltalk origins.
|
| My personal favorite language that has evolved from Smalltalk is
| Newspeak. https://newspeaklanguage.org
|
| The current version runs on top of WASM and can be used in a web
| browser. Gilad Bracha is going some exciting and interesting
| things with this language.
| virtualwhys wrote:
| > Gilad Bracha is going some exciting and interesting things
| with this language.
|
| Hopefully not in the same way that Dart turned out to be so
| "exciting and interesting" :)
| [deleted]
| bradrn wrote:
| What's wrong with Dart? (Don't know anything about the
| language, just curious.)
| igouy wrote:
| Nothing much.
|
| Perhaps a question of expectations: _" The big question is
| whether Google originally intended Dart to replace
| JavaScript"._
|
| https://insights.dice.com/2019/03/27/fall-rise-dart-
| google-j...
| agumonkey wrote:
| so far ~socially Dart has failed but the language is actually
| way more interesting than I thought it would ...
| travisgriggs wrote:
| Interesting. I'm a fan of Gilads work, and have a strong
| admiration for Lars Bak who were both involved in 1.0. I
| followed it cursorily from time to time and thought it
| looked intriguing. I had a number of colleagues from the
| Smalltalk industry that went to work on it.
|
| They've all left now (I don't know what Lars' involvement
| is anymore?).
|
| But I was curious about Dart for a cross platform app and
| learned Dart 2.0 and was wholeheartedly let down. I just
| felt like I was staring at a Java dialect. The "sanctioned"
| tutorial I watched introduced classes as a "way of
| organizing code" which I guess could abstractly be said to
| be true, but IMO misses the mark entirely.
|
| Anyway, I found Dart 2.0 to be very uninteresting. Very
| safe and traditional and boring. Maybe I need to relook
| closer to try and see what you're seeing that I did not.
| agumonkey wrote:
| don't read too much into what I said, I barely read the
| async/concurrent primitives they made, it felt different
| and interesting. I came with the impression that it would
| be a cuter java (like you somehow) but these bits caught
| my brain by surprise.
| andrea81 wrote:
| Just curious why it failed...
| zetalyrae wrote:
| Until recently[0] Dart had pervasive nullability, that
| is, all types `T` are implicity `Option(T)`. Which in my
| view was completely unacceptable even in 2011 when it was
| initially released.
|
| [0]: https://dart.dev/null-safety
| hota_mazi wrote:
| Because depending on what you want to do, Typescript and
| Kotlin are better languages with superior tooling,
| adoption, and community support.
| agumonkey wrote:
| No idea, and I wasn't judging, it's just that on average
| you'll see 12 languages on articles / news / threads
| before you see mention of Dart. I heard flutter was solid
| and quite used but "socially" the mentions are rare.
| igouy wrote:
| You mean a change in direction?
|
| Dart 1.0 Optional Types runtime checks
|
| Dart 2.0 Mandatory Types (sound null-safe type system) static
| checks + runtime checks.
| pjmlp wrote:
| Gilad had nothing to do with Dart 2.0, in fact it goes very
| much against his beliefs in language design.
|
| All the key designer from Dart 1.0 left Google shortly
| after Chrome dropped support.
|
| The language only got rescue thanks to AdWords not wanting
| to rewrite their stack yet again (they had recently
| migrated away from GWT).
|
| Afterwards Flutter provided the necessary funding to keep
| improving the language as they replaced JavaScript with
| Dart.
| igouy wrote:
| Quite. But is that what _virtualwhys_ meant?
| mhd wrote:
| I haven't kept up with Dart, as I kinda fail to see the
| point right now, so can you elaborate a bit on how you
| think the current design is going against Gilad Bracha's
| convictions?
|
| Language evolution is an interesting thing, especially
| when you've got corporate influence, second system effect
| etc. Or simply the need to add stuff, as languages are
| considered just another product, and otherwise you're
| considered "stale" in today's market. Weird.
| pjmlp wrote:
| Gilad is strongly into dynamic type systems and pluggable
| types (Dart 1.0, Typescript and so on).
|
| http://bracha.org/Site/Papers.html
| hota_mazi wrote:
| Wow, the NewSpeak repo doesn't inspire confidence [1]
|
| First, source files everywhere, including in the root, and
| routinely thousands of lines long [2] with zero comments in
| them.
|
| [1] https://github.com/newspeaklanguage [2]
| https://github.com/newspeaklanguage/newspeak/blob/master/Bra...
| diskzero wrote:
| I don't want to vigorously defend the organization of the git
| repo, but browsing the source code of Smalltalks is always an
| issue. The source code is closely tied to the "browser" and
| for the longest time this was the only way to view the
| classes contained in an image. At some point mechanisms were
| designed to serialize the code to source control repos. The
| relationship of Smalltalk and version control systems is a
| difficult one.
|
| In the case of Newspeak, I only would edit the raw source
| code if I had no other way to do it. It is so much easier and
| ergonomic to use the Newspeak IDE to view and modify the
| code, with the live debugger, object introspection and all
| the advantages that the IDE gives you. The recent addition of
| exemplars, where working fragments of the code are part of
| the documentation, is especially nice.
| igouy wrote:
| > ... only way to view the classes contained in an image...
|
| Apart from a text editor? $ nano
| Pharo9.0-64bit-bf4a85f.sources [Read
| 1230003 lines (Converted from Mac format)]
|
| "The relationship of Smalltalk and version control systems
| [not designed to preserve that Smalltalk way of working] is
| a difficult one."
|
| https://www.google.com/books/edition/Mastering_ENVY_Develop
| e...
| fmakunbound wrote:
| It's probably loaded into the image Iceberg-style. Git is
| just a backend to persist to, that way.
| Qem wrote:
| I played a bit with Newspeak, in their legacy Squeak-based IDE,
| but after they migrated to the new webapp IDE, I was kinda
| lost, in this new environment. I didn't find much documentation
| about the new IDE. Any recommendations?
| diskzero wrote:
| The forum will get a response from Gilad or others:
| https://groups.google.com/forum/#!forum/newspeaklanguage
|
| A simple example of Newspeak and literate programming:
| https://newspeaklanguage.org/samples/Literate/Literate.html
|
| The IDE works in a similar way to the Squeak-based IDE, but
| there is no image and being hosted in a browser has other
| limitations. This isn't a language you are going to use to
| make a quick and dirty CRUD app (although I have) but it is
| an interesting example of how Smalltalk concepts can be used
| in a web-based world.
| fiddlerwoaroof wrote:
| Is there a sample that demonstrates Gilad's ideas about
| parameterized modules?
| diskzero wrote:
| I can only point you to the doc, which you may have
| already seen: https://www.bracha.org/newspeak-modules.pdf
|
| It is worth asking on the forum to see if there is some
| exisiting code to show this in practice.
| fiddlerwoaroof wrote:
| Thanks, when I was working on a particularly convoluted
| React codebase, I realized that it's better to pass
| dependencies into modules rather than importing them and,
| when I looked around to see what prior art there was to
| this idea, I came across
| https://gbracha.blogspot.com/2009/06/ban-on-imports.html
| agumonkey wrote:
| the french mooc platform FUN made a Pharo MOOC and it was
| beyond great
|
| the smalltalk universe is pretty special, the live graphical
| environment is thrilling and their idioms/culture is also very
| interesting
| Qem wrote:
| The MOOC is great. It was my introduction to Pharo and
| Smalltalk programming. The focus is on web development, I
| hope they eventually create a version geared towards data
| science. I'm still far from mastering Pharo, or any
| Smalltalk-like languages, but just scratching the surface
| made me remind that William Gibson quote: "The future is
| already here - it's just not evenly distributed".
| agumonkey wrote:
| I thought they'd leverage more of the visual aspect of
| pharo for visualization/statistics. Maybe next time :)
| cobaltoxide wrote:
| https://www.fun-mooc.fr/en/courses/live-object-
| programming-p... ?
| adamors wrote:
| Here's a link for anyone curious https://www.fun-
| mooc.fr/en/courses/live-object-programming-p...
| isr wrote:
| IMHO, the claim that pharo is not smalltalk is, to put it
| bluntly, nonsense.
|
| Yes, I understand that Pharo may well eventually change the
| some semantics of the underlying language, or at least reserves
| the right to do so. Fine, call it "not smalltalk" when that
| happens (if ever).
|
| Until then, call pharo what it is. An interesting, in some ways
| innovative, FORK OF SQUEAK SMALLTALK.
|
| Its a squeak fork, in the same way that cuis smalltalk is a
| squeak fork. Both pharo and cuis have evolved in different
| directions, as per their original directives.
|
| And you know what? Thats fine. Great, in fact. Each can (and
| does) learn from the other.
|
| And they're both STILL smalltalk. And thats also fine!
| jecel wrote:
| Some people are very picky and only accept Smalltalk-80 as
| "Smalltalk". Of course, that would make Smalltalk-72, -74,
| -76 and even -78 not Smalltalk, which would be very odd.
|
| I, on the other hand, consider Self and Slate to be good
| examples of Smalltalk.
|
| Beyond any technical discussions there is the marketing
| issue. Smalltalk's reputation took a major hit in the 1990s
| with the rise of Java (from the "language of the future that
| doesn't run on the computers you have, yet" it became "a
| failed language of the past") and association with the name
| can hurt a project in some cases.
| pjmlp wrote:
| I did not help that major Smalltalk vendors like IBM,
| decided to replace their Smalltalk product line with Java
| ones.
|
| Eclipse grew out from Visual Age series.
|
| Or that Sun repurposed Strongtalk for Hotspot.
| caslon wrote:
| > Please don't use uppercase for emphasis. If you want to
| emphasize a word or phrase, put _asterisks_ around it and it
| will get italicized.
|
| https://news.ycombinator.com/newsguidelines.html
| [deleted]
| musicale wrote:
| > Until then, call pharo what it is. An interesting, in some
| ways innovative, FORK OF SQUEAK SMALLTALK.
|
| This, precisely. Pharo is a fork of Squeak Smalltalk, and
| Squeak Smalltalk is a direct descendant of Smalltalk-80.
|
| (And a common thread in Smalltalk implementations and
| versions from Smalltalk-72 to Squeak is the illustrious Dan
| Ingalls.)
|
| Still, Smalltalk has nothing on Lisp or BASIC in terms of
| dialects/variants/versions. ;-)
| fiddlerwoaroof wrote:
| I think of Pharo as a bit like Racket: it intentionally is
| distanced a bit from the parent language to avoid being
| limited to the design of that language. For example: the word
| "Smalltalk" isn't anywhere on the homepage of the project.
| gugagore wrote:
| I'm not so sure that's the only reason to intentionally
| distance from the "SmallTalk" brand. There might be a
| advertising benefit, too, since ST is sometimes maligned
| for having "lost".
| mumblemumble wrote:
| Even without active malignment, Smalltalk is largely
| perceived as a historical curiosity of primarily academic
| interest. Even among many people who like it.
|
| Since Pharo wants to position itself as a modern,
| industrial programming language, it makes sense that the
| project would want to distance itself from that
| reputation.
| sebastianconcpt wrote:
| But if you look at the hero myth is the wrong strategy.
| It's like the immature hero that wants to hide who his
| father is because is ashamed for some immature reason
| hence demonstrating that is not ready yet for the
| challenge of the world. The alternative is, embrace his
| history, have a clear own identity, and yet come back and
| rescue his father (not the project but the spirit) "from
| the belly of the beast" and improve itself and the world
| by doing so. Not doing it like that will not fit the
| psychological archetypes of the good stories that
| marketing needs and fail and waste a lot of effort having
| at the end of the day to always admit it is a Smalltalk.
| Not all products can aspire to be legends. This is one
| that can do it.
| igouy wrote:
| "A _position_ (or statement of position) is a cold-
| hearted, no-nonsense statement of how you are perceived
| in the minds of prospects. It _is_ your position. "
| zetalyrae wrote:
| Has there been any new work on typed Smalltalk, maybe along the
| lines of Strongtalk[0]?
|
| [0]: https://en.wikipedia.org/wiki/Strongtalk
| jecel wrote:
| Not exactly the same direction as Strongtalk, but Herman
| Wilkinson's "live typing" project does interesting things by
| collecting type information as Smalltalk runs.
|
| Here is a recent talk he gave about it:
|
| https://vimeo.com/ukstug
| offByJuan wrote:
| The threshold for starting new research projects from scrath is
| getting much higher all the time. When Smalltalk was developed
| you could implement most of the software stack in a quite small
| team in a few years. I'm not sure that is possible anymore if you
| want to connect to outer world eg. web. You will create
| dependencies out of your control quite fast. These dependencies
| will shape design decisions. Lowest common denominator rules and
| fighting that will take considerable resources and effort. I
| think this is one reason we are stuck with Unix like file based
| systems for most foreseeable future
| mastrsushi wrote:
| Smallcock-69
| dang wrote:
| Could you please stop posting unsubstantive comments? You've
| been doing it a lot, unfortunately, and we ban that sort of
| account.
|
| https://news.ycombinator.com/newsguidelines.html
___________________________________________________________________
(page generated 2021-08-28 23:01 UTC)