1. 41

“Smalltalk is alive and still about new ideas - about new ways of computing and modeling our world to form something better.”

  1.  

  2. 16

    Like Common Lisp, Smalltalk isn’t dead. It just smells funny. Dead or alive matters little to me. This past month, our Pharo-based cash-room system processed 10,000 cash-outs, and our admission system validated, redeemed, and counted 1.3 million tickets.

    1. 3

      Dead or alive matters little to me

      I think it matters in the scope of the OP. The OP refers to Alive as still exploring new ideas or how to leverage their core ideas in new ways. This is important to me. And it is that sense that Smalltalk is very much alive (and Common Lisp, much to my disappointment, dead)

      For example, Pharo is pushing forward the idea that Everything is an object in Smalltalk to make it easier to work with the AST for a number of use cases listed in the slides. Even in their vision they mention they don’t strive for ANSI Smalltalk comformance. They are not reveering Smalltalk like those Humans in the planet of the aps reveering the atomic bomb. They want to keep moving forwards the ideas of Smaltalk.

      It is in that sense the Common Lisp is dead. In that the ideas behind the MOP, like leveraging reflective semantics for a more configurable/modifiable compilation strategies or for modifying the behavior of the same code base for different requirements is not being explored on to my knowledge, except by Robert Strandh. Of course, even ‘dead’ CL is one of the best languages I know of. It suffers from a marketing problem though, but that is another topic.

      1. 2

        Of course, even ‘dead’ CL is one of the best languages I know of.

        Yes, our zombie-powered ticketing system running on a t2.medium sold the 1.3 million tickets :-)

    2. 6

      As someone who used to do a lot of Tcl, I think you do have to admit that your language is in a little bit of trouble when you have to start posting vigorous denials of its “death”…

      1. 4

        …like this question from 2001?…

      2. 5

        hook.io supports building webhooks and microservices in Smalltalk.

        So we have SmallTalk as a Service.

        Here is a quick demo:

        Source Code: https://hook.io/marak/examples-smalltalk-hello-world/source

        Live Demo: https://hook.io/marak/examples-smalltalk-hello-world?owner=foo

        1. 2

          Smalltalk is dead in just about every practical sense in which a programming language, a theoretical construct, can die. Look for:

          • Thriving community
          • Rich ecosystem of libraries
          • High quality, frequently maintained implementation(s)
          • At least one “killer app” or project; a concrete reason to adopt the platform, something not available elsewhere in sufficient quality

          Smalltalk has none of these, though feeble attempts may be made to deny it. And that’s ok; Smalltalk died, but not before siring some very successful children. None of us can hope for much more.

          1. 18

            I’m going to take you at face value and assume you’re making these comments out of ignorance instead of malice.

            • Thriving community

            There are at least two highly active Smalltalk communities, Squeak and Pharo. Each has many commits per day and are undertaking long-term complicated projects, such as changing their entire image formats, moving to 64-bit architectures, and changing their FFI systems.

            • Rich ecosystem of libraries

            Smalltalk, for reasons I’ve discussed in another arena today, tends not to have libraries on GitHub, but that’s not to say the community is inactive. They have a rich and thriving community on their own GitHub equivalent, and they’re working on making their tools interface with GitHub.

            • High quality, frequently maintained implementation(s)

            I think I just answered that, but if you want to explain why you find Pharo or Squeak of insufficient quality or insufficient maintenance, I’m happy to respond.

            • At least one “killer app"…

            I don’t actually agree this gets us anything. Haskell, OCaml, Rust, and Nim are all actively followed projects by the Lobsters community, yet I cannot tell you a single project that’s a killer app in any of them. For that matter, I can’t tell you a killer app written in Swift, C#, Dart, TypeScript, Flow, Elixir, or Erlang.

            1. 7

              There are also very mature, stable, actively maintained, and industrial-strength commercial implementations–from GemTalk Systems, Cincom, and Instantiations, at least.

              1. 3

                Exactly. I found those in what little research I did. Strange critics often miss or ignore commercial implementations with significant, paid adoption.

                1. 3

                  I won’t even mention the number and scale of the clients in their success stories (no doubt, you came across some of those).

                  1. 4

                    Large enterprise applications in transaction processing, datamining, messaging, scheduling, and so on probably shouldnt count. Not complex IDE’s or associated toolchains either. No, they want something more to really prove its value.

                    “Show Lobsters: Say Hello to AlloTalk - A smarter messaging application from Google’s Smalltalk team.” (800 upvotes on last site)

              2. 5

                Haskell has pandoc at least, and it’s used heavily within Facebook and the finance industry, if that counts. (Not trying to knock Smalltalk here.)

                1. 5

                  Erlang has WhatsApp.

                  1. 5

                    Heh, though I’m not sure if that influences me. I’m certainly not required to learn erlang to use whatsapp. Even knowing erlang, there’s no way for me to use that knowledge to improve whatsapp. The practical impact is nil. And the parts I look at, the client, isn’t written in erlang.

                    When I think “killer app” I usually think of some program or library which I’ll learn a new language to use. (Or a game console I’ll buy to play one game.) Whatsapp could be a case study, but not a killer app.

                    1. 3

                      I would argue that erlangs Killer App is OTP. An industry proven framework for writing highly fault tolerant services. OTP is likely to be a large part of the reason WhatsApp chose Erlang in the first place.

                      1. 2

                        That’s possible. It’s the main reason for a lot of companies and people that use it.

                    2. 2

                      Erlang also has, you know, huge deployment in general telecoms. Also the Heroku load-balancers.

                    3. 4

                      Everybody knows about the desktop environment revolution powered by Haskell’s killer app, xmonad. I think maybe there’s also a text editor?

                      1. 3

                        You’re being facetious but Haskell’s “killer app” was its prominent position in academia as a research platform

                        1. 5

                          Is that what killed Haskell? (~:

                        2. 2

                          As an occasional contributor Yi the haskell text editor it has a lot of promise but I wouldn’t call it a killer app yet. :-)

                        3. 1

                          I offer Bluespec for hardware design as Haskell’s killer app. It’s basically Haskell with syntax extensions that makes hardware design easy. Used in CHERI project.

                          Alternatively, Galois’s Ivory or Tower languages are DSL’s in Haskell for safer, embedded programming that output C code. Used in their high-integrity drone project. C that’s immune to certain problems when thrown together sounds like a potential, killer app. :)

                          1. 1

                            Rust has (parts of) Firefox

                            1. 1

                              It’s just a few components in a massive apps that isn’t Rust. Doesn’t count. It might be different if the whole thing was coded in Rust. There’s also Redox OS project that might make some headway.

                          2. 8

                            By your reasoning both COBOL and MUMPS are goners…and I assure you that they are very, very much alive.

                            1. 11

                              I’m convinced this is one of those things you have to age a little to appreciate. When you’re young, you run around like some kind of religious zealot. When you encounter the latest new shiny you say “THIS IS ALL!” and declare everything else rubbish or dead or whatever.

                              While there are some usage problems, overall I thoroughly agree with most of the points raised in the article.

                              1. 2

                                Small perspectives cause this, too.

                                The “everything must be JS” rhetoric sort of self-perpetuates. It has to, in order to stay alive, and fend off the small, existential doubts that crop up as one gets more experience with computing.

                              2. 2

                                I disagree a bit on this. I use COBOL as a reply to the “…is dead” discussions plenty. Yet, I think we should differentiate between what’s alive in legacy mode and what’s alive because people want it over other options for the value it brings. Most on COBOL are stuck due to cost and risk of a rewrite.

                                  1. 1

                                    It looks like tools to support maintenance or transition of legacy apps in COBOL. The one exception is the GNU one whose FAQ implies at one point they like the language over others. Aside from MicroFocus, that is the most lively one I’ve seen in terms of effort and continuing maintenance.

                              3. 7

                                I’m not going to bother replying since you’ve pre-ordained any response as being “feeble”. Any bit of digging by someone with an open mind would show this list to be well satisfied.

                                The one I’d say is true is the “one killer app” as Smalltalk has so many killer apps that it would be impossible to pick one.

                                If you’ve actually researched any of these, I think it’d be easy to label such an attempt as “feeble”.

                                1. 6
                                  the   _____________\
                                  point              /
                                        ___________
                                       / your head \
                                  
                                  1. 2

                                    What do you mean? Clearly, I do not understand metaphor.

                                    1. 2

                                      “the point went over your head”

                                      1. 3

                                        If you won’t elaborate, I will. I find it disingenuous to promote a language as “alive” when the ecosystem is a tarpit, and a handful of tepid success stories is the best that can be scraped together in its support.

                                        1. 22

                                          the ecosystem is a tarpit, and a handful of tepid success stories is the best that can be scraped together in its support.

                                          This is exactly how I feel about Javascript and the Node runtime!

                                          1. 4

                                            I just figured you asked for the metaphor, my bad. The point of the article is that however much a “tar pit” you think the ecosystem of smalltalk is, it’s still being used to solve problems, and by the author’s concept of how “alive” a language is, that’d make smalltalk very alive. Arguing pedantics kind of just misses the whole point that the article is trying to get across, that the continued impact and progression of understanding of programming and computation is the important effective goal of a language, while imo those other things you listed are all ingredients that help contribute to that net effect.

                                      2. 1

                                        Now, now, folks, language flamewars are great, but how can we tell our children to be nice in class, if we aren’t?