8 ms·
43 points but zero comments at the time of writing this comment. Somewhere deep in our harts, we all have a deep appreciation for Smalltalk and its legacy in p
by tut-urut-utut 5y ago
43 points but zero comments at the time of writing this comment.
Somewhere deep in our harts, we all have a deep appreciation for Smalltalk and its legacy in programming language design, it's just that no one is actually interested to use it anymore. It's gone, it's part of the history, never to come back. People just upvote an article about it and proceed with the life.
Same can be said for (Common) Lisp, which still live its half-life in form of Clojure, but is far away from the mainstream.
- pedrow 5y agoThis has been posted a few times and never attracted more than a couple of comments, I don't know why. I found it a fascinating account and amazingly full of detail considering the start of the story was well over 40 years ago. Check out Dan Ingalls on Wikipedia; he is responsible for a great number of innovations over the years
- hedari 5y agoThankfully this was posted again, because I haven't seen this document before. And I'm saddened if Dan Ingalls doesn't attract more attention. Dan Ingalls seems to be this unsung hero that does not get mentioned often enough in my opinion. Admittedly, when I first learned about him from FLOSS Weekly podcast[0], I've been a bit of a fanboy. Since then I have read and listened his interviews and lectures that I have been able to find. He seems to be a very modest man with a lot of interesting anecdotes. The whole era when Smalltalk was invented is fascinating. I'm currently reading through the book "The Dream Machine" just to learn more about the Xerox PARC, Alan Kay, Dan Ingalls and his involvement in Smalltalk and related innovations. [0] https://twit.tv/shows/floss-weekly/episodes/29 https://twit.tv/shows/floss-weekly/episodes/29
- coldacid 5y agoA shame, but very likely true.
- jhgb 5y ago> it's just that no one is actually interested to use it anymore Heeey, I'm learning Dolphin right now! It still looks like one of the easiest ways for doing Windows front-ends to stuff. A shame it's not been updated for 64 bits yet, though.
- wussboy 5y agoAgreed. I’m no software historian, but Smalltalk has always fascinated me. I even spent a fair amount of time in the Pharo community as I was learning to code. Eventually I left for Python and Django and the robust communities they have.
- rjsw 5y agoI think it is easier to use Common Lisp in a product than Smalltalk. I work on a Common Lisp package that just builds into a command-line application, the user can't tell what language it is written in.
- jhgb 5y ago> I work on a Common Lisp package that just builds into a command-line application Anything interesting we might want to know about it? Is it public?
- 7373737373 5y agoWhile its syntax may fit on a post card, I have never seen an introduction to its semantics as intuitive as this site and presentation provides for Javascript: http://latentflip.com/loupe/ http://latentflip.com/loupe/
- 7thaccount 5y agoThe syntax fits on a postcard, but even the introductory books on Pharo or Squeak are not intuitive at all. Python was much easier for me. Syntax isn't everything.
- pjmlp 5y agoThere are still some commercial offerings, but yeah sadly that is the spirit. At least those of us on .NET, Java, Swift, Delphi, C++ Builder get a small taste of how the future might have been instead.
- Qem 5y agoIf only they had a open source, full featured version released earlier, probably we would be living in a better software world today. But its early success made people greedy, bent on charging costly licenses, prohibitive to the individual developer. When Squeak was open sourced in 1996, it was already too late, Java and C++ took over, OOP got a bad rep, and we got drowned in incidental complexity.
- pjmlp 5y agoIn 1996, Java and specially C++ were hardly open source, and everyone can easily see how much those compilers and IDEs used to cost. Sure the JDK was free beer, and there was this wannabe GCC compiler, but that was it.
- smackeyacky 5y ago"open source" in 1995 was very different to how it is now. There was GNU stuff and the Linux kernel and not a lot else. Now it's a zillion different dev environments and whatnot, but buying commercial tools for software development was far more common then than it is now.
- AdmiralAsshat 5y agoMy only comment was gonna be that Squeak was released 25 years ago and the paper should probably include some of the other spiritual successors like Pharo, etc. But I've never done any more than dabbled in Smalltalk, Squeak, or Pharo, so I didn't feel sufficiently qualified to make that suggestion.
- tosh 5y agoPharo is mentioned in the paper
- jecel 5y agoDan only talked about the systems he worked on personally. There were many Smalltalks in the past that he didn't mention (Little Smalltalk, Smalltalk V, Smalltalk/X, SmalltalkAgents, VisualAge, Dolphin, Smalltalk MT, etc). Though Cuis and Pharo built on his work, he was not involved with them.
- nine_k 5y agoSmalltalk brought both fascinating and terrible aspects. Everything is inspectable, discoverable, interactive. Reactive programming, live objects, build stuff and see it come alive at every step. JIT makes everything fast, eventually. But also the whole thing is one huge global mutable state. You used to be able to redefine "constants" like true by mistake. You want to save the entire system image, because now everything works, but you're not sure how exactly did you end up with it during the interactive session. Static checks and guarantees are hard to have at best. AFAICT, initially Alan Kay tried to build something like Erlang: hence messages and protocols, objects keep their state as if they were nodes of a network. But hardware limitations did not allow yet back then, so the design changed, and was still hugely influential. I think certain languages end up being bellwethers and test beds, without becoming industry mainstays. Haskell and OCaml don't have much industry adoption, but Rust does. APL (and even k) don't have much industry adoption but numpy and spark (admittedly both libraries) do. Smalltalk and Self don't have much industry adoption but Ruby and Python do.
- pavlov 5y agoI've never understood why Ruby is sometimes considered to be in the Smalltalk lineage. The syntax has some superficial similarities, but the practical use of the language is more similar to PHP. Rails is extremely far from those dynamic Smalltalk application environments. Nothing is live. Object graphs are built up to serve a single request, then torn down immediately — a bizarre kind of kamikaze OOP. To me it's the worst of Smalltalk and PHP in one, as all the interesting aspects of dynamic typing are wasted and just become a source of bugs.
- jhgb 5y agoThe major similarities of Ruby and Smalltalk are semantic much more than syntactic (except perhaps for the existence of singleton classes). And as far as Rails is concerned, well, it probably wasn't written by a Smalltalker, but I fail to see how the existence of some specific framework changes how Ruby should be perceived as a language of its own.
- 5y ago
- jascii 5y ago"Same can be said for (Common) Lisp, which still live its half-life in form of Clojure, but is far away from the mainstream." He says, on site written in Lisp, siting a language that proves the invalidity of his own statement. For what its worth, while Lisp has never been a language with a big following in commercial development due to its focus on exploratory programming rather the delivering a "finished product", it's user base has actually been growing in the last 20 years or so.
- math-dev 5y agoIndeed, the number of newcomers to Lisp is quite high in recent years and with QuickLisp it is a fantastic development platform
- philipswood 5y agoLearning about Smalltalk has fundamentally changed the way I think about computing. Looking at what Smalltalkers have done and what their tooling can do (and has been able to do for decades) is inspiring and quite mind-blowing. But despite that, I don't see a modern Smalltalk community that I'd like to be part of or Smalltalk tooling that I'd like to actually use. (Pharo or Cuis comes the closest though) (I should probably declare my Lisp envy as well while I'm at it.... (and my bucket list item of dropping a few months on Forth)
- deleted 5y ago[deleted]
- philipswood 5y agoI think there is a deep appeal to the languages that have one clear simple abstraction of abstraction. Lisp - everything is a function Smalltalk - everything is an object passing messages to other objects Forth - everything is a word operand operating on a stack Prolog - everything is terms and relations
- yesenadam 5y agoYeah, they tend to be the ones that most "affect the way you think about programming"! And inspire the most ardent love/devotion. The beauty of simplicity.
- lukego 5y agoNevertheless, there are probably more Smalltalk programmers today - and indeed Common Lisp programmers - than there ever have been before. Saying that nobody uses Smalltalk seems a bit like saying that nobody lives in Norway.
- jacquesm 5y agoTHHGTTG successfully argued that the universe has a population of zero.
- mumblemumble 5y agoMy take is that it still commands a lot of mindshare because it has a reputation for having been a better kind of object-oriented programming, and that nostalgia is being exacerbated by OOP's poor reputation nowadays. I started learning Pharo recently, and, TBH, I don't think that's a misplaced sentiment. Programming in Pharo really is a different experience from programming in C++ or Java. The differences go deep. You know how sometimes there's this advice that in OOP you should avoid using if and switch statements, and instead use polymorphism? Well, Smalltalk doesn't even have if or switch statements. Instead, the True and False classes have methods like `ifTrue:` and `ifTrue:ifFalse:` that accept blocks (Smalltalk speak for a lexically scoped closure) as their arguments, and conditionally execute them. So, right there, that's more than one mental shift from how most of us are used to thinking about things. First off, if you ever thought that higher-order functions were a functional programming thing, well, here's the counterexample. The language for which the term "object-oriented programming" was coined wouldn't be able to do anything useful without them, because it needs them to implement fundamental control structures. And second, it's true, you really don't need traditional if-statements in OOP. They're a procedural programming thing, and, at least in some respects, OOP really is better off without them. For example, in Smalltalk you can implement a system for trivalent logic and (compiler optimizations aside) it wouldn't be at any particular disadvantage compared to Boolean logic. The other thing that strikes me is that I'm pretty sure that, at its core, Smalltalk is a smaller language than Scheme. Not necessarily in terms of library size (Smalltalk doesn't an equivalent to the RxRS standards, so I'm not sure this is even a comparison you can reasonably make), but in terms of the number of features that need to be built into the interpreter itself. I haven't done a methodical comparison, but my impression is that Smalltalk's core language has maybe half as many features as Scheme's. It also is very much alive, even if it doesn't command the same mindshare that it once did. The standard-bearer I'd point people to nowadays is Pharo, which isn't technically a Smalltalk (in the same way that Racket isn't technically a Scheme), but its team has spent a lot of time working on things that a contemporary developer would expect (e.g., playing nice with Git) that you don't necessarily get with other varieties. The official MOOC is very well done and something you can breeze through pretty quickly. My own personal take is that the thing that his holding Smalltalk back is the image-based development. Smalltalkers get very tetchy when people criticize this, perhaps even more so than lispers do about s-expressions. My personal take is that image-based development does enable a lot of very cool things, and working in an integrated development environment that is actually integrated does give you an incredible sense of power. I can see why it's a hill the community is willing to die on. But, it is a hill on which they will die. Image-based development jumbles together source code, application state, and IDE state in a way that creates collaboration challenges comparable to the ones people complain about in notebook-based development, except perhaps even more so. And, while I haven't actually tested this, I'm guessing that Squeak and Pharo both interact poorly (perhaps even not at all) with screen readers, which would - and should - be a hard stop for many workplaces.
- Qem 5y agoThe Pharo folks are actually doing quite a decent job on getting people interested in the language, IMHO. They even organized a MOOC, that got me started on the Smalltalk branch of languages some months ago. See https://mooc.pharo.org/ https://mooc.pharo.org/
- blihp 5y agoBoth Smalltalk and Lisp are still actively, though not widely, used. I think those of us who still use them, and a handful of other languages, just got tired of the language wars and inevitably making the same old arguments vs whatever the language(s) of the moment are. So when we see an article like this bubble up, it's a quick upvote and then move along.
- jacquesm 5y agoForth, Prolog, Lisp(s), Smalltalk, Erlang. Each of these stirs something fundamental in passionate programmers.
- cardanome 5y agoI have actually used Squeak in production for a simple web app when I was freelancing. I used https://github.com/seasidest/seaside https://github.com/seasidest/seaside as framework which is still going strong. Sure that was like 10 years ago and the app is long gone but I can totally see the use for Pharo/Squeak in a green field project even today. The parts are all there. It is super easy to get started, you download an image and have an whole development system set up. No setting up the tooling, no hunting for extensions for you IDE, nope the language already comes with an IDE that is superior to anything your are likely to have ever seen.
- deleted 5y ago[deleted]
- math-dev 5y agoLisp is live and well and growing in user base everyday. Lots of activity in Reddit and on IRC
- kaba0 5y agoI mostly hear about Clojure - what other Lisp should I check out?
- pjmlp 5y agoIf you want the surviving Lisp Machine experience, http://www.lispworks.com/ http://www.lispworks.com/ https://franz.com/products/allegro-common-lisp/ https://franz.com/products/allegro-common-lisp/
- math-dev 5y agoHow about Scheme (try the book SICP if you haven’t already), or Common Lisp? I’m sure there are other good options too. Racket comes to mind but I haven’t tried that
- renox 5y agoUnfortunately I think that it's even worse than that: the STEPS project created intriguing demo of a text editor written in a very little number of lines compared to traditional applications. Nice? No! Nobody has managed to reproduce the demo :-( and I think that being written partly in Smalltalk is one of the cause..
- floxy 5y ago40 lines for a text editor? https://kparc.com/edit.k https://kparc.com/edit.k