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

~~~
incepted
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.

~~~
timrowledge
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.

------
rbanffy
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.

~~~
coldtea
> _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.

~~~
incepted
> 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.

~~~
cwp
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.

~~~
incepted
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?

~~~
cwp
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.

~~~
incepted
> 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.

~~~
cwp
> 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.

~~~
incepted
> 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.

~~~
cwp
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.

~~~
incepted
> 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).

~~~
cwp
Ah. An academic. Of course.

~~~
incepted
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.

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

------
genry_porter
Smalltalk running in a browser with the help of JavaScript and cloud... They
definetely didn't planned that in 1978!

~~~
pavlov
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.

