News for hackers. Stuff that matters.
Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by nine_k on Thursday June 17, 2021 @10:33AM (#27539984)
Smalltalk brought both fascinating and terrible aspects.

Everything is inspectable, discoverable, interactive. Reactive programming, live objects, build stuff and see it come alive at every step. JIT makes everything fast, eventually.

But also the whole thing is one huge global mutable state. You used to be able to redefine "constants" like true by mistake. You want to save the entire system image, because now everything works, but you're not sure how exactly did you end up with it during the interactive session. Static checks and guarantees are hard to have at best.

AFAICT, initially Alan Kay tried to build something like Erlang: hence messages and protocols, objects keep their state as if they were nodes of a network. But hardware limitations did not allow yet back then, so the design changed, and was still hugely influential.

I think certain languages end up being bellwethers and test beds, without becoming industry mainstays. Haskell and OCaml don't have much industry adoption, but Rust does. APL (and even k) don't have much industry adoption but numpy and spark (admittedly both libraries) do. Smalltalk and Self don't have much industry adoption but Ruby and Python do.

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by pavlov on Thursday June 17, 2021 @10:48AM (#27540148)
I've never understood why Ruby is sometimes considered to be in the Smalltalk lineage. The syntax has some superficial similarities, but the practical use of the language is more similar to PHP.

Rails is extremely far from those dynamic Smalltalk application environments. Nothing is live. Object graphs are built up to serve a single request, then torn down immediately — a bizarre kind of kamikaze OOP. To me it's the worst of Smalltalk and PHP in one, as all the interesting aspects of dynamic typing are wasted and just become a source of bugs.

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by jegea on Thursday June 17, 2021 @02:37PM (#27542912)
Ruby, the language, is almost as flexible and dynamic as Smalltalk. It's just that it didn't come with an integrated graphical environment like Smalltalk.

For a glimpse of "what is possible", take a look at TkInspect (1), a set of gems that I'm working on that provide some of the goodies of that GUI, like an interactive, graphical console, a live inspector, a class browser or turtle graphics.

At the moment it's not more than a toy, but it does definitely show what can be done.

(1) https://github.com/josepegea/tk_inspect

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by jhgb on Thursday June 17, 2021 @10:52AM (#27540194)
The major similarities of Ruby and Smalltalk are semantic much more than syntactic (except perhaps for the existence of singleton classes). And as far as Rails is concerned, well, it probably wasn't written by a Smalltalker, but I fail to see how the existence of some specific framework changes how Ruby should be perceived as a language of its own.
Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by pavlov on Thursday June 17, 2021 @11:19AM (#27540535)
I think most people would agree that the benefits of Smalltalk the language are inextricable from the runtime environment and GUI.

Ruby has no such thing: it's pretty much only used for Rails and plain-jane Unix scripting. It's fair to judge the language in context of its actual applications.

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by e12e on Thursday June 17, 2021 @12:11PM (#27541231)
> I think most people would agree that the benefits of Smalltalk the language are inextricable from the runtime environment and GUI.

Most, not all: https://www.gnu.org/software/smalltalk/manual/html_node/Over...

Although it looks like somewhere along the path with the "new" graphical browser they dropped the tag line "Smalltalk for those who can type".

Rails is a monster, and historically pretty poor ruby code quality INMHO. That said, ruby does indeed miss an "image" concept, but is quite dynamic and object oriented. Some smalltalk patterns would work well with ruby, I think.

There's also (the abandoned?) maglev ruby on top of gemstone/s object db for smalltalk.

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by setpatchaddress on Thursday June 17, 2021 @12:37PM (#27541538)
I dunno what most people think about the benefits of Smalltalk, but I do know that people think Ruby and Objective-C are part of the Smalltalk lineage because they use the Smalltalk object model and have similar dynamic properties.
Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by Rochus on Thursday June 17, 2021 @11:31AM (#27540688)
> initially Alan Kay tried to build something like Erlang

It was actually Dan Ingalls who built it (btw. 15 years before Erlang was invented); he's also the author of the referenced worth reading paper; never understood why he didn't get the Turing price.

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by bitwize on Thursday June 17, 2021 @11:48AM (#27540926)
Indeed. Few people realize that Dan Ingalls was the John Carmack of the Smalltalk PARC team. Kay was the Romero.
Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by yesenadam on Thursday June 17, 2021 @01:52PM (#27542371)
> Dan Ingalls was the John Carmack...Kay was the Romero.

Sorry, I don't get the metaphor. It's a reference to a game I think?, but not sure which one, and I could be wrong. I'm very familiar with Ingalls and Kay, but not the other two, besides hearing Carmack's name around here sometimes.

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by bitwize on Thursday June 17, 2021 @03:37PM (#27543669)
Romero was the "frontman" for Id Software (Wolfenstein, Doom, Quake) back in the 90s. He gave the magazine interviews, attracted the hype, and claimed much of the credit for the game's success, at least in the popular press.

Carmack was the programmer who wrote the core bits that made the game possible. He didn't engage with the popular press, and when he did engage in discussions with the media or with fans, it was at a very deep and technical level.

You may also think about it in terms of Wozniak and Jobs. Point being that Alan Kay was out there, engaging the press and talking about Smalltalk's big ideas (objects, messaging, computers as medium, how they relate to children, etc.). He was the frontman. Whereas Dan Ingalls deserves the bulk of the credit for actually writing Smalltalk.

Fun fact: Ingalls wrote early Smalltalk versions... in BASIC.

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by igouy on Thursday June 17, 2021 @10:10PM (#27546700)
Fun source for "in BASIC" ?
Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by pedrow on Friday June 18, 2021 @04:31AM (#27548477)
It's on page 4 of this article: "I immediately went home myself and wrote a simulation of Alan’s interpreter in Basic (the only language to which I had easy access at home), as a proof of concept." (referring to Smalltalk-72)
Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by igouy on Friday June 18, 2021 @11:42AM (#27551527)
Now I will have to read it :-)
Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by yesenadam on Monday June 21, 2021 @03:45AM (#27577141)
Thank you!
Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by Pet_Ant on Thursday June 17, 2021 @02:08PM (#27542561)
On the off-chance this isn't a joke: https://en.wikipedia.org/wiki/Masters_of_Doom
Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by yesenadam on Thursday June 17, 2021 @02:17PM (#27542667)
Ok thanks. No, it's not a joke. Don't know why you would think that. I'm getting strong signals here that Carmack/Romero are supposed to be a lot better known than Ingalls/Kay. Even though this is a Smalltalk discussion! (I've never been that much into computer games, besides occasionally writing them, and have always loathed "first-person shooter" games. Maybe that explains something.)
Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by igouy on Thursday June 17, 2021 @12:40PM (#27541566)
> redefine "constants" like true by mistake

No, really not by mistake — intentionally, because someone told you that it was possible and you wondered what that would break.

> not sure how exactly did you end up with it during the interactive session

Well, every change you made "during the interactive session" was logged as a sequence of Smalltalk change-set actions in the changes file.

So, actually, you could just read what you did ;-)

> Smalltalk … don't have much industry adoption…

Now.

Then:

"Smalltalk, C++ knock heads. Computerworld 29, 45 (Nov. 6, 1995 )

https://books.google.com/books?id=oKDIlxbMaS4C&pg=PA153&lpg=...

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by nine_k on Thursday June 17, 2021 @01:10PM (#27541929)
Surely, Smalltalk did have some adoption, and a huge influence! The JIT that made the JVM fast was adopted from Smalltalk! All the GUI stuff was heavily influenced by Smalltalk. Etc.

But there were and are much fewer Smalltalk jobs in the industry than C++ jobs (though the Smalltalk jobs paid better).

Much like there were more number-crunching C++ jobs than APL or k jobs, up until some key ideas of APL were made available wrapped in Python, and numpy jobs skyrocketed. Maybe something similar will happen to some key Smalltalk ideas!

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by Rochus on Thursday June 17, 2021 @04:07PM (#27543995)
> The JIT that made the JVM fast was adopted from Smalltalk

No, that was technology developed for the Self programming language which didn't have much in common with ST (see e.g https://dl.acm.org/doi/10.1145/1238844.1238853, there is also an interesting talk by Ungar and Smith). The same technology was also used for an ST dialect (Strongtalk) which was quickly discontinued in favor of Java Hotspot. The influence of ST is generally overstated.

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by e12e on Thursday June 17, 2021 @06:28PM (#27545127)
> No, that was technology developed for the Self programming language which didn't have much in common with St (...)

My understanding was always that self grew out of smalltalk? But I suppose the jit work in particular was developed for/in self?

https://en.m.wikipedia.org/wiki/Self_(programming_language)

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by jecel on Thursday June 17, 2021 @08:26PM (#27545994)
A key development in dynamic compilation happened in Xerox PARC to allow Smalltalk to run well on commercial workstations:

https://dl.acm.org/doi/10.1145/800017.800542 "Efficient implementation of the smalltalk-80 system" by L. Peter Deutsch and Allan M. Schiffman in POPL '84: Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, January 1984, Pages 297–302

This motivated the creation of the ParcPlace spinoff to commercialize this technology. It was not the first JIT, but quite a few modern ones were inspired by it.

Self started out as one of the "Smalltalk-86" projects at Xerox PARC with Randy Smith collaborating with Berkeley's David Ungar. It was supposed to be a simpler and purer Smalltalk even if that made practical implementations impossible. But with David Ungar becoming a professor at Stanford, he found students that helped him make it possible, and eventually even much faster than existing Smalltalks. Craig Chambers worked on type inference for Self 1 and 2 and then Urs Hölzle worked on adaptive compilation with type feedback for Self 3 and 4.

https://dl.acm.org/doi/10.1145/191080.191116 "A third-generation SELF implementation: reconciling responsiveness with performance" by Urs Hölzle and David Ungar in OOPSLA '94: Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, October 1994, Pages 229–243

This is the technology that became "Hot Spot" for Java. But very few virtual machines have this level of sophistication.

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by igouy on Thursday June 17, 2021 @07:35PM (#27545662)
>The influence of ST is generally overstated.

My guess is the influence of Strongtalk is in this context taken to be influence of Smalltalk.

http://www.strongtalk.org/history.html

Re:The evolution of Smalltalk: from Smalltalk-72 through Squ... by e12e on Thursday June 17, 2021 @12:14PM (#27541270)
> Everything is inspectable, discoverable, interactive. Reactive programming, live objects, build stuff and see it come alive at every step. JIT makes everything fast, eventually.

And yet we suffer the experience of web "apps" like Gmail, which have some similar properties (which I'm reminded of every time I hit shift-ctr-c rather than ctrl-c to copy something in office365/Outlook - and the dev tools pop up).