Reviving Smalltalk-78: The First Modern Smalltalk Lives Again (2014) [pdf] - <AUTHOR> http://www.freudenbergs.de/bert/publications/Ingalls-2014-Smalltalk78.pdf <comment><USER2> If you want to play online: [http://lively- web.org/users/bert/Smalltalk-78.html](http://lively- web.org/users/bert/Smalltalk-78.html)

<comment><USER3> It took a minute to load, brought my beefy laptop to its knees and every character key press takes half a second to display... Probably the most faithful recreation of the Smalltalk I used to use in the late 80s.

<comment><USER4> Either your 'beefy laptop' isn't so beefy or you're exaggerating for some odd reason. On my four year old iMac (and we all know macs are soon slow by comparison to real computers, right?) it took 15 or sec to load (which is almost all network time) and typing could handle the fastest I could hit keys.

</comment></comment></comment><comment><USER5> I like to joke (only half-joke) Smalltalk-80 makes Java-2015 look somewhat primitive in comparison.

Around PARC is the place where the future was least evenly distributed.

<comment><USER6> > _I like to joke (only half-joke) Smalltalk-80 makes Java-2015 look somewhat > primitive in comparison._

It's not a half-joke, it's a fact.

The only places I'd say Java is better is number of libraries (obviously) and compiler/GC (whose legacy comes from later Smalltalk-oriented works anyway).

If Smalltalk images could work in some hybrid mode, where you get all the regular benefits, but with a "normal" editor and/or IDE too, and in plain text, it would be golden.

<comment><USER3> > It's not a half-joke, it's a fact.

Smalltalk advocates never fail to entertain.

Java has HotSpot, IDE's that actually perform automatic refactoring (Smalltalk's IDE's are naturally limited because the language is dynamically typed), the library ecosystem, sheer speed, standard libraries, debuggers that actually work, etc...

Smalltalk never succeeded for a good reason. It was a fantastic innovation back in its time but it never turned into a viable development ecosystem.

<comment><USER7> Alas, Java advocates always fail to entertain.

HotSpot was a Smalltalk VM that was bought by Sun and adapted to Java.

Automatic refactorings were first implemented in Smalltalk IDEs, and all major Smalltalk dialects have them today. Java's IDE's are direct descendants of Smalltalk IDEs. For example, Eclipse was a Java port of VisualAge Java, which had an IDE that could refactor Java even though it was _implemented in Smalltalk_. That in turn was based on VisualAge Smalltalk, which also had automatic refactoring.

I think advocacy is silly, but if you're going to do it, get your facts straight.

<comment><USER3> This is what's most baffling in these arguments about Smalltalk, the fact that even though these technologies are separated by twenty years, you automatically assume there has been no innovation nor improvement and that therefore, Smalltalk already did that twenty years ago.

Going down that path, we could claim that Smalltalk hasn't invented anything since Simula.

Not exactly a very honest approach, is it?

<comment><USER7> I don't assume there's been no innovation. HotSpot today is faster than Strongtalk ever was. Java has lots more libraries than Smalltalk today. For a broad range purposes, it's a better choice than Smalltalk today.

But a lot of what you wrote was just false. Smalltalk _does_ have refactoring IDEs. It _does_ have excellent debuggers. It _does_ have fast JIT-compiling virtual machines. (Not as fast as Hotspot, but way faster than Ruby, Python, Perl and most other dynamic languages.)

Note that I'm using the present tense here. We're not talking about technologies "separated by twenty years." Smalltalk has all these features today. I brought up the history because it's pretty cheeky to say that Java is better than Smalltalk because it has a refactoring IDE.

There _are_ big problems in the Smalltalk world, stemming from a small community and lack of corporate investment in the technology. As much as I like Smalltalk, I don't choose it for my day-to-day work because that would be a poor business strategy for my company. This is why I don't believe in advocacy. You make the right choice for your situation, and most of the time, somebody else can't make that choice for you.

As for honesty, yes, I do think I'm being honest. For starters, everything I wrote was true.

<comment><USER3> > Smalltalk does have refactoring IDEs.

Yes, but very few of those are automated. Which is not surprising since the absence of types in Smalltalk can lead to refactorings that break your code, so user supervision is necessary.

> I brought up the history because it's pretty cheeky to say that Java is > better than Smalltalk because it has a refactoring IDE.

Definitely, so it's a good thing I never said such a thing.

<comment><USER7> > Yes, but very few of those are automated. Which is not surprising since the > absence of types in Smalltalk can lead to refactorings that break your code, > so user supervision is necessary.

This is just not true. Go download a copy of VisualWorks. Try a Squeak image with OmniBrowser installed. They both have IDEs with _automated_ refactorings. I have used both. I have contributed to the OmniBrowser implementation.

What you say does apply to Ruby or Python. It does not apply to Smalltalk.

<comment><USER3> > They both have IDEs with automated refactorings.

Yes but they do not guarantee correctness. They can't, the IDE simply doesn't have enough type information for that.

<comment><USER7> As a matter of fact, they do. Unlike Java IDEs, Smalltalk dev tools are implemented via reflection on the running program. Between information available from the runtime data structures in the program and the fact that Smalltalk uses single dispatch polymorphism, static type declarations aren't necessary for correct automatic refactorings.

This will be my last post in this thread.

<comment><USER3> > static type declarations aren't necessary for correct automatic > refactorings.

They very much are, it's a scientific fact (look up the Curry-Howard isomorphism).

<comment><USER7> Ah. An academic. Of course.

<comment><USER3> No, a mere engineer who takes writing correct code very seriously.

But the simple fact you seem to throw the term "academic" derogatorily tells me a lot about you.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> And there is no reason not to make it load a modern image too: [https://bertfreudenberg.github.io/SqueakJS/](https://bertfreudenberg.github.io/SqueakJS/)

</comment><comment><USER9> Smalltalk running in a browser with the help of JavaScript and cloud... They definetely didn't planned that in 1978!

<comment><USER10> Actually they did. It's just loading a Smalltalk image over the network into a VM. That's fundamentally what the Smalltalk systems of the '70s were designed to do.</comment></comment>