Live data from Hacker News

The Rise and Fall of Commercial Smalltalk

wirfs-brock.com

111–120 of 141 posts

Re: The Rise and Fall of Commercial Smalltalk

#111
post #5

From inside ParcPlace, it looked like we were starting to gain traction. There'd been a number of spectacular C++ project failures, and people seemed to be willing to try this weird, new (to them) thing that let them get prototypes up quickly and then grow them. Then Java arrived and sucked all of the air and mindshare out of the ecosystem. Java lucked into ideal circumstances, and Sun Marketing played their hand ver…

>There'd been a number of spectacular C++ project failures, Do you have any examples in mind? Big corporate software project failures are always super interesting imo. Especially those that happened during such pivotal times as rhe 1990s.

C++ programming in the early 90s was, in retrospect, not all that much fun. templates were very underpowered and not widely implemented, the library was minimal. Everybody defined their own string and vector classes, or used products such as Rogue Wave Tools.h++, which at the time still offered macro-based container classes.

There were a lot of fumbling exploration into what kind of OO design would prove long term workable, and in what existed of the C++ standard library at the time, some classes, like iostream with its multiple inheritance and virtual base classes, may not have given particularly sound examples to emulate.

The arrival of the GoF design pattern book and of the STL were, in my opinion, massive game changers.

Re: The Rise and Fall of Commercial Smalltalk

#112
post #103

For those of you smalltalk fans, what are you working in today / what would you prefer to be working in today given your history with smalltalk?

I design processors optimized for Smalltalk.

This sounds interesting, like the kind of thing that keeps me coming to HN every day...tell us more please.

Re: The Rise and Fall of Commercial Smalltalk

#113
post #97

Earlier quoted context omitted.

I am surprised that what alrs has said. At some point, one actually does poke around and understand what is going on to know how a system works. alrs states that they are contributing to K8s. That does require poking around to learn the plumbing of the system. You could very well write Smalltalk apps without poking around the underlying classes. The Visual Age for Smalltalk environment just made it very easy to do so…

I love poking around. I love poking around with vi, more, and grep. I cannot fathom how someone would want to poke around with a mouse while pointing, clicking, and peering into a little 2" x 2" dialog box.

> … how someone would want to poke around with a mouse…

Back in the day, not having a TKL keyboard could become a pain.

Back in the day, poking around could be an effective way to learn not just what batteries were included but whether, with a tweak and nudge, they might solve le problème du jour.

Poking a running program not just a source code file.

Re: The Rise and Fall of Commercial Smalltalk

#114

Earlier quoted context omitted.

It’s funny because I’ve only started using it recently and what really captivates me is the live environment. The fact that you can dig in and evaluate/change everything in the same environment you are running it provides an amazing feedback loop. To me it really seems like the “killer feature” of the language but I can’t think of any modern language that has adopted it.

Smalltalk was inspirational, but the environment was a double-edged sword. In ParcPlace Smalltalk even things like stack frames were editable classes. One of the first mistakes I made was trying to edit the stack frame class in a running VM. It immediately corrupted the VM. BTW another brilliant innovation of Smalltalk was incremental compilation. Edit a method, save, and it was instantly part of the runtime. It must…

"ObjectWorks for C++" was a ParcPlace IDE which iirc provided incremental compilation.

Re: The Rise and Fall of Commercial Smalltalk

#115

I never used Smalltalk directly, but it's (weirdly) related cousin, Objective-C. My first exposure to OO was reading the Byte Magazine edition about Smalltalk (the one with the Balloon on the cover) which led me to experiment with adding OO to plain C in the late 80's (I did not have access to C++ or Objective-C at that time).

Yes, I remember there was a OO programming style/discipline layered on C that was floating around in the mid 80's and I tried it out. (just found out there's a whole book about it - https://book.huihoo.com/pdf/object-oriented-programming-with...)

Shortly thereafter, C++ arrived in the form of "cfront" which was a cross-language translator that would generate .c and .h files from .cxx and you'd compile those with a C compiler. There was no actual C++ compiler at first.

Re: The Rise and Fall of Commercial Smalltalk

#116
post #103

Earlier quoted context omitted.

I design processors optimized for Smalltalk.

This sounds interesting, like the kind of thing that keeps me coming to HN every day...tell us more please.

Here is a long talk (more than 1 hour) I gave at the Smalltalks 2019 conference in Argentina about the history of Smalltalk computers:

https://www.youtube.com/watch?v=tATpzsyC6OA

and slides in PDF and LibreOffice formats:

http://www.merlintec.com/download/2019_slides_jecel_fast1v2....

http://www.merlintec.com/download/2019_slides_jecel_fast1v2....

This includes projects from various different groups as well as my own projects (which I should have clearly labeled as such).

The key events: from 1977 to 1992 Brazil had a "reserved market" policy that only allowed local companies to make and sell micro and minicomputers. After reading the 1981 Byte magazine about Smalltalk I wanted one, but by 1984 it was clear I would have to build my own. I toyed with the idea of designing my own processor (with TTLs) but went instead with the Motorola 68000 I had already used in other projects.

In 1986 I joined forces with Softec, which had launched the first PC clone in Brazil. Note that the reserved market thing kept the Macintosh out of the country (Apple was able to kill a local clone) so this would have been the only option for a graphical computer. This ended in 1988 after we had built several prototypes and operating systems. I had previously dropped out of the university so I went back to finish with a focus on chip design. In 1990 I got a scholarship to do an object oriented processor, but with the wonderful results the Self group at Stanford had with software JIT compilation I changed the project to be a modified Sparc. Even that got cancelled the next year in favor of a 64 node machine with 68020 processors (bought back in 1987) and I did research on parallel Smalltalk/Self on that.

People tried to convince me there was no longer any point in special hardware and that I should just do software for PCs instead. But in 1998 I was working on a digital cable TV project and came up with a VLIW MOVE processor that would be great for that but could also implement Smalltalk/Self very well. NEC was not interested in it but I thought it was too good to just drop it, so I left the university and set up a company to develop it.

The first products would have to use FPGAs since I didn't have funds for custom chips. Things went slowly since I had to do consulting. With the new Virtex II FPGAs there was enough internal RAM that it made more sense to have a bunch of small processors, each with a little cache, than a single large VLIW processor with external RAM as cache. Compiling for VLIW is not easy at all, as many people have found.

In 2007 I got into a master's program at a local university and in late 2008 I started to collaborate with a group that wanted to do a SqueakPhone and a Croquet cloud. To make it easier for us to work together I adapted a 2004 SqueakProcessor I had sketched into SiliconSqueak, optimized both for running bytecodes and as a target for JIT compilers.

This evolved over the years but with weak single core performance in favor of more cores per silicon area and better energy efficiency. Since late 2018 I have been developing version 5 of SiliconSqueak to have both a very high peak performance for a single thread and many slower threads depending on demand. And the adaptive compilation technology can not only handle bytecodes but efficiently simulate any processor (x86 binaries, for example).

Re: The Rise and Fall of Commercial Smalltalk

#117
post #46

Earlier quoted context omitted.

>There'd been a number of spectacular C++ project failures, Do you have any examples in mind? Big corporate software project failures are always super interesting imo. Especially those that happened during such pivotal times as rhe 1990s.

I wasn't there, but apparently Taligent was a failed C++ operating system from Apple and IBM in the 90's. I think there is a talk on YouTube by Bryan Cantrill that gives some color on it... https://en.wikipedia.org/wiki/Taligent http://bobcongdon.net/blog/2004/06/the-taligent-effect/

Might be the video you were referring to: https://www.infoq.com/presentations/os-rust/

Skip to 24:30 for the Taligent part.

Re: The Rise and Fall of Commercial Smalltalk

#118
post #85

One of the things that Allen only barely hints at and I'm not sure Gilads piece really touches on was the shifting economics in Software development. In 1995/96 when Java gut punched the wind out of Smalltalk and the other OO solutions (CLOS, Eifel, Beta, etc), they spent a butt load on marketing and gave the stuff away for free. In other industries it would be called "dumping." It wasn't just Sun giving Java away. I…

>any of the languages I work in today (Swift, Kotlin, Python, Dart, C) Have you done any work in Ruby?

Just a little.

Re: The Rise and Fall of Commercial Smalltalk

#119

One of the things that Allen only barely hints at and I'm not sure Gilads piece really touches on was the shifting economics in Software development. In 1995/96 when Java gut punched the wind out of Smalltalk and the other OO solutions (CLOS, Eifel, Beta, etc), they spent a butt load on marketing and gave the stuff away for free. In other industries it would be called "dumping." It wasn't just Sun giving Java away. I…

> the languages I work in today (Swift, Kotlin, Python, Dart, C). Are you a mobile app developer?

I do embedded on the metal with no or RTOS, in C. Embedded on Linux (think Raspberry pi form factor) with Python and other Linux stuff. At Swift/Kotlin/Dart for mobile apps. A different sort of full stack where we're developing the gadgets and the apps that interface with them through bluetooth.

Re: The Rise and Fall of Commercial Smalltalk

#120
post #46

Earlier quoted context omitted.

I wasn't there, but apparently Taligent was a failed C++ operating system from Apple and IBM in the 90's. I think there is a talk on YouTube by Bryan Cantrill that gives some color on it... https://en.wikipedia.org/wiki/Taligent http://bobcongdon.net/blog/2004/06/the-taligent-effect/

Might be the video you were referring to: https://www.infoq.com/presentations/os-rust/ Skip to 24:30 for the Taligent part.

Yes that's it, thanks!
Post reply on HN