Hacker News new | past | comments | ask | show | jobs | submit login
Reviving Smalltalk-78: The First Modern Smalltalk Lives Again (2014) [pdf] (freudenbergs.de)
81 points by fniephaus on Oct 9, 2015 | hide | past | favorite | 23 comments




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.


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.


Someone broke that page (it's a Lively page, meaning it's editable by anyone). Here is a stand-alone version, running ThingLab: http://www.cdglabs.org/thinglab/


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.


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


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


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.


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?


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.


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


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


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


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.


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


Ah. An academic. Of course.


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.


>Smalltalk advocates never fail to entertain.

Are there Java advocates still in 2015?

In any case, you've missed the whole: "Java is better in number of libraries (obviously) and compiler/GC" thing I wrote -- and re-stated it as if it was some kind of counter-argument to my comment.

Also, regarding "Java has HotSpot", you do know that's based on the Strongtalk VM right?

>Smalltalk never succeeded for a good reason.

Yes: companies sold it commercially instead of having it widely available, and SUN spend millions marketing Java.


I wouldn't go that far. I did not refer to more modern implementations - I was talking about the original SmallTalk-80 you could get in 1980. With that, it's still only a half-joke.


You mean it's a great improvement on its successors?


And there is no reason not to make it load a modern image too: https://bertfreudenberg.github.io/SqueakJS/


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


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: