Hacker News new | ask | show | jobs
by russellallen 1268 days ago
Keeping these amazing old systems around and usable is so very important to counteract the continual reinvention of the wheel that the industry is prone to (aka 'computing is a pop culture')
2 comments

I like to joke Smalltalk 80 made Java 2006 look primitive.

It still does for Java 2022 (and C# 11, or C++23)

Well, thank IBM for dropping the ball on Smalltalk.
There are more reasons why smalltalk failed to become popular:

  - expensive commercial licenses over free Java/C/C++
  - multiple vendors with incompatible versions
  - closed nature and hard to integrate with existing tooling (editors, vcs, OS)
  - poor story for Web, Java had applets and JS was native
  - slower and memory hungry compared to C++
  - lack of type safety compared to Java/C# or Ocaml
> closed nature and hard to integrate with existing tooling (editors, vcs, OS)

This is probably the big reason - Smalltalk is its own OS and GUI, and didn't play well with others until relatively recently.

> poor story for Web, Java had applets and JS was native

This only became relevant after Smalltalk was already very niche.

> slower and memory hungry compared to C++

So was Java back then, and, thanks to free-as-in-beer and being easier to integrate into build tooling and the workflows developers were used to, it had a much bigger impact.

> lack of type safety compared to Java/C# or Ocaml

The way Smalltalk works, this is more a feature than a bug. It's a given it'll result in more runtime errors if types are abused, but that's also one of the reasons so much early progress on automated unit testing started there.

I am quite sure that if Visual Age product line hadn't been rebooted into Eclipse, and IBM Smalltalk replaced by WebSphere, IBM J9, things would have worked otherwise.

IBM's Developer portal from 1998 - 2002 shows quite well how much IBM was partnering with Sun spreading the Java gospel.

C# only came to be after Microsoft's misadventure, and OCaml never mattered that much in 2000.

And which of those supposed explanations would also suggest that Python should be unpopular?

- poor story for Web - slower and memory hungry - lack of type safety compared

And which of those supposed explanation would also suggest that JS should be unpopular

- slower and memory hungry - lack of type safety compared

Think again.

> And which of those supposed explanations would also suggest that Python should be unpopular?

Python was free and open source, had one of the best interop with other tools and excellent open ecosystem. Python now have better type safety via mypy than Smalltalk ever had.

> And which of those supposed explanation would also suggest that JS should be unpopular

JS is destined to be popular, it has monopoly in browser. It is the only reason why it is popular.

> Think again.

I worked on Smalltalk project for a year and I know how limited and closed it is. Smalltalk had combination of all these factors that made people choose C/C++/C#/Java for performance, JS for browser, Perl/Python/PHP for scripting and Visual Basic for GUIs. There were hardly any places where Smalltalk was a better choice.

You talk as if 2020's Java and Python and… was available in 1990. Those language implementations were a lot worse back then.

I worked on Smalltalk projects for a decade.

Free as-in-beer wins popularity contests.

What makes you imagine that continual reinvention of the wheel is in anyway counteracted?