14 ms·
The Rise and Fall of Commercial Smalltalk (2020)
- stevedekorte 5y agoWhat if there was a free open source version of Smalltalk (with an option for using script source files instead of a GUI) for Unix in the early 80s? Could it have become the defacto Unix scripting language instead of Perl?. Might Netscape have put it in the browser? Would there have been a raison d'être for Python or Ruby (as more OO options to Perl)?
- jecel 5y agoYou are describing Tim Budd's Little Smalltalk. https://en.wikipedia.org/wiki/Little_Smalltalk https://en.wikipedia.org/wiki/Little_Smalltalk
- transfire 5y agoPharo looks very impressive.
- smackeyacky 5y agoIts incredible to me that the guys who lament the fall of Smalltalk always blame Java. It wasn't Java that killed Smalltalk, it was a combination of ParcPlace's hubris and Visual Basic. In the end, replacing those "green screen" CRUD apps was much easier in Visual Basic. For starters you could collaborate much easier with VB and visual source safe instead of spending thousands of dollars a seat on Envy/developer. Second, the guys at ParcPlace simply didn't understand how quickly the pentium PC would decimate the workstation market of Sun etc in financial institutions and how good VB got in a very short space of time. Yet here we are with another article blaming Java. An easy and lazy target to cover up for that elitism that pervaded the Smalltalk community back then and still does today.
- PaulHoule 5y agoObject-orientation became mainstream in many ways. There was Visual Basic and Microsoft's COM. (e.g. when Microsoft adds a new API to Windows it adds a COM interface.) Everything from TCL, Perl, Python not to mention LISP and Forth added ways to write object-based if not object-oriented code. Smalltalk won the battle for ideas even though the exact syntax and runtime didn't win.
- worik 5y agoBut it was a bad idea. Elements of it left now, but the very bad bits (like derivation hiding implementation Dog knkows where) have thankfully gone extinct
- PaulHoule 5y agoIt's reached the "Plateau of Productivity" Ideas from functional programming languages are now becoming mainstream. I like it how pattern matching turned up in both Java and Python at the same time. If people quit hating on Java for a moment they'd see it was getting "ML the good parts." Once people get past "A monad is like a burrito" and "this is the 20th blog post I've written about monads and I almost understand it now" that idea might get some traction too.
- cabalamat 5y ago> instead of spending thousands of dollars a seat on Envy/developer. It wasn't the cost of Smalltalk that was the problem, as there were low-cost implementations of Smalltalk, such as Smalltalk/V available on PC from the mid 80s onwards.
- smackeyacky 5y agoNo but the only credible source control tool for VisualWorks was envy/developer. Otherwise you were filing in and out classes and trying to share your changes. It was a disaster.
- filereaper 5y agoLots of folks went from OTI to Eclipse, J9 and other projects after the acquisition of IBM. Java was the succesor of Smalltalk as deemed by Big Blue.
- deleted 5y ago[deleted]
- tannhaeuser 5y agoBefore Eclipse, IBM had Visual Age for Java until early 2000's, repurposed from Visual SmallTalk. There were no source files and no VCS in the usual way, it was all integrated into a "database" giving you modal development experiences and anything not anticipated by the Visual Age devs was impossible :shudder: Update: interestingly, Java Swing/JFC, used by IntelliJ IDEA for its GUI until this day, is based on a SmallTalk OO design, though it originated from Sun not IBM I believe
- lukego 5y agoAlso, right before Swing was Netscape IFC, based on NeXT (IIUC), which ran like greased lightning in comparison. I'm not sure which UI VisualAge Java used but I remember that working much better than the median Java program too.
- pjmlp 5y agoBasically the same that was reborn as SWT on Eclipse. https://en.wikipedia.org/wiki/Standard_Widget_Toolkit https://en.wikipedia.org/wiki/Standard_Widget_Toolkit
- solarengineer 5y agoVisual Age for Java was a Smalltalk application.
- mpalfrey 5y agoMy first Java IDE (being used commercially) was Visual Age. We moved off that to IBM Websphere Development Studio. We were a big IBM shop at the time (Websphere + DB2).
- poulsbohemian 5y agoThe time I spent doing commercial Smalltalk development was some of the most productive and enjoyable of my career. Couldn’t stand the company I was at, but loved the work itself. Later did some consulting with a company that was moving everything from smalltalk to Java because they didn’t feel like they could find devs or stay current if they didn’t. I still feel like we lost something or like other languages haven’t quite caught up in their own way, even though I know the world won’t go back.
- mettamage 5y agoAccording to you, what was lost? I've never fully experienced Smalltalk, but the few posts that came by on HN always fascinated me, since there's a whole interactivity element to it. And I've noticed when it comes to programming, I like interactivity.
- poulsbohemian 5y agoFYI: Responded to your email privately.
- capableweb 5y agoThe Pharo "Features" page features animated GIFs and some text explaining the awesomeness of Smalltalk: https://pharo.org/features https://pharo.org/features
- smackeyacky 5y agoThe only two things I miss and they are closely related: 1. being able to catch an exception, and injecting a sensible return value so the underlying code could continue. Its incredibly powerful although a lot of inexperienced smalltalkers used it as a crutch for poor design. I.e. I won't handle the error or do bounds checking, I will put a try/catch block around it and send back some value the code can handle. 2. The interactive debugger was truly fix and continue, not the pale imitation you get in .NET or Java. Your code crashed, it threw up an exception window, you fixed the method and restarted the thread of execution like nothing happened. You can kinda do this in .NET now but its slow and doesn't always work right. The rest of the environment goodies like variable inspectors and live expression evaluation are largely as good or better in java and C# than the classic commercial smalltalks.
- praptak 5y agoTo me the simplest explanation is that Smalltalk is just too concept-heavy for the average developer, just like Lisp is. Yes, C++ could be said to be much more concept-heavy but there is a difference: you can sit and crank out C++ code without first absorbing the huge pile of concepts that make up C++. For Smalltalk or Lisp you need to first "get" the paradigm.
- kohlerm 5y agoNot sure why you say Smalltalk is concept heavy. There are much less concepts in Smalltalk then in most other languages.
- bitwize 5y agoIt's like "high-concept" in film, which is a fancy way of saying "weird". Those who "get it" get it, but most do not, and that is true of Smalltalk, necessitating the rise of Java.
- praptak 5y agoYes, the conceptual framework is pretty minimal (especially compared to C++). Still you need to "get it" to write even a simple conditional or a loop (I mean sending a block of code to a boolean or a block of code).
- zepto 5y agoHow is that more to ‘get’ than doing the same thing in C++?
- bodhiandphysics 5y agoSmalltalk is a lot more than it’s minimal syntax! The language is unusual without its associated libraries, and they are often extremely concept heavy
- bodhiandpysics1 5y agoI'm not sure this is true. Sure the syntax of the lanuage is simple, but smalltalk is useless with just its syntax (it doesn't even have ifs or loops!). You only have a real smalltalk with a class hierarchy defined, and then suddenly smalltalk becomes uber conceptual. MVC (and its infinite variants), meta-object protocols, object-relational mapping, smalltalk loves is high concept stuff.
- kohlerm 5y agoI worked on one of the larger Smalltalk project in the late 90s, an application of the HP OpenView Network management suite. Using Smalltalk was in principle very productive,non-Smalltalk people were always amazed seeing us changing code in the debugger and just continuing running the application without a restart. The problems were rather coming from the lack of integration with standard versioning systems and the monolithic nature of the Smalltalk image concept. Later on when ruby started to become popular, which in my opinion was very similar to Smalltalk, but had a module concept and not a monolithic image concept.
- strangeloopworm 5y agoSmalltalk is still technically used in a commercial setting at JPM , though mostly due to the incredibly long timeframes banks work on. I was tangentially involved with it last year via an upstream application that fed into it and don't have particularly pleasant memories of it (probably mostly due to the massive amount of cruft attached). I'm interested whether anyone here who worked on it knows whether it was a representative program for large scale Smalltalk applications? I remember the "frames" used to crash nearly continually, and keeping one open for a few days (often necessary on complex trades) used to be a real pain.
- pyjarrett 5y agoSeveral years ago, I had lunch with a former Smalltalk dev who gave me his perspective on what happened. He recounted it as IBM's entrance into the Smalltalk world, which wold be today's equivalent of a FAANG member deciding to compete in your niche. This caused several major Smalltalk providers to believe they had to unite in order to compete. Internal conflict within the Smalltalk providers eroded development and when IBM changed to push Java ("which falsely claimed to do what Smalltalk already did, like be able to run on a toaster" is the quote I roughly remember), this led to the collapse, when others followed IBM's lead. Seeing how smaller companies like to follow FAANG's technology choices today, combined with the profession following free-as-in-beer options, this also seems like an alternative plausible explanation. EDIT: I'm not blaming IBM or Java, I've just used this to inform my own technology choices for my knowledge portfolio.
- Tarucho 5y agoSmalltalk failed because at your typical enterprise there rarely is any incentive to do better than doing pseudo procedural code in java/c#/python/whatever which in smalltalk is possible but hard. The next step for enterprise programmers is being a PM or an analyst or nowadays an Scrum Master.
- Apocryphon 5y agoShould discussions about the history of Smalltalk mention Objective-C? Was it the most successful Smalltalk-inspired language after Java? Ironic that because of the quirks of corporate decisions, both became the initial languages for the most successful smartphone platforms- previously most mobile systems from Palm to Symbian were developed in C++.
- cout 5y agoEither Objective C or Ruby, yes (imo). One could also make an argument for javascript being a Smalltalk-derived or inspired language.
- retrocryptid 5y agoI'd argue Javascript is based on Self, but Self was very much inspired by Smalltalk, so my argument is really a small nit.
- jjtheblunt 5y agoIsn't Javascript awfully close to Scheme (in subset) but with C-ish (algol-ish, java-ish) syntax?
- bodhiandphysics 5y agoNot really? JavaScript doesn’t have conses so it’s not very lisp like in practice. What is gets from scheme is closures with lexical scoping (real closures). It’s closer in style to self, but js is textual instead of image based so that’s very very different. The other aspect of js that’s very different is it’s massive commitment to a synchronicity, which smalltalks generally don’t have
- chipotle_coyote 5y agoI think so, yes. My impression is that Smalltalk fans lament the loss of the tooling around the language more than the language itself, so they're not as likely to focus on Objective-C's success -- but I suspect there's a case to be made that the underlying object and message-passing concepts Obj-C borrowed from Smalltalk enabled a lot of NextStep's rapid interface builder technology to be as good as it was in the 1990s, and that technology kept them alive long enough to be bought by Apple, rejuvenated the Mac, and laid the foundation for iOS.
- dang 5y agoDiscussed at the time (of the article): The Rise and Fall of Commercial Smalltalk - https://news.ycombinator.com/item?id=23397560 https://news.ycombinator.com/item?id=23397560 - June 2020 (137 comments)
- sys_64738 5y agoDid my final year project in SmallTalk-80 on the SUN systems. Was that really thirty years ago? I recall the funky UI that you could edit from in the UI itself so it was like self-modifying code. Very freaky!