Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    A

    Allen Wirfs-Brock

    wirfs-brock.com · Personal blog · on HN since 2009

    Allen Wirfs-Brock, a language implementer and JavaScript standards editor, writes about Smalltalk and JavaScript history and language design.

    Visit blogRSSHN submissions
    Languages & CompilersHistory
    What HN says

    Commenters link him as a firsthand source who was there at the beginning, and point to his responses and his long JavaScript history PDF.

    Stats for nerds
    40HN people shared it
    32linked in comments
    606story points
    Jul 2026last shared
    2015people per year2026

    Top posts on HN

    1. 1
      The Rise and Fall of Commercial Smalltalk
      8 people · 356 points · first shared 2020 · 137 comments on HN
    2. 2
      Smalltalk-87
      1 person · 115 points · first shared 2020 · 17 comments on HN
    3. 3
      Testing for -0 (negative zero) in JavaScript
      2 people · 42 points · first shared 2011 · 10 comments on HN
    4. 4
      Handling Software Design Criticism (2007) [pdf]
      1 person · 25 points · first shared 2015 · 1 comments on HN
    5. 5
      Efficient Implementation of Smalltalk Block Returns (2001)
      3 people · 9 points · first shared 2015 · Discussion on HN
    6. 6
      A Modular Journey to a World Spanning Virtual Image (2014) [pdf]
      1 person · 9 points · first shared 2017 · Discussion on HN
    7. 7
      Personal Digital Habitats
      2 people · 8 points · first shared 2021 · Discussion on HN
    8. 8
      JavaScript: The First 20 Years
      8 people · 7 points · first shared 2020 · Discussion on HN
    9. 9
      A JavaScript Optional Argument Hazard
      2 people · 6 points · first shared 2015 · 1 comments on HN
    10. 10
      Software Diagrams Aren’t Always Correct and That’s OK
      3 people · 5 points · first shared 2020 · Discussion on HN

    What HN people wrote when they linked it

    • kragenOct 2021

      > Racket uses a bytecode VM and/or a JIT, so Haskell being faster wouldn't surprise me.

      They support AOT native-code compilation too, but they say the JIT generally performs better: https://download.racket-lang.org/docs/5.1/html/raco/ext.html but my experience in the past was that it didn't perform that well. Maybe it's improved.

      > Go doesn't have a primitive type system because it makes it faster, but mostly because that's a design choice. Same thing for Java.

      I agree: a primary goal for both languages was clarity, even at the expense of some generality. Java was very slow for a decade (HotSpot wasn't released until 01999 and wasn't very good until about 02002), but a few billion dollars and a Fortune-500 bankruptcy later, it's really pretty zippy! (As long as you don't care about startup time.) Golang, by contrast, was designed with higher performance goals, which it fell somewhat short of.

      > Lack of ad-hoc polymorphism is usually a criticism of ML and its descendants, but Go and Java both lack it too

      Ad-hoc polymorphism is absolutely fundamental to Java; one of its big differences from C++ was that nearly every callsite implied ad-hoc polymorphism, and that's where a lot of the optimization effort went. Golang isn't quite so radical about it, but its interface mechanism exists for almost nothing but ad-hoc polymorphism.

      OCaml has ad-hoc polymorphism, FWIW, but people don't use it much.

      > both added generics 10 years after the language was created

      Golang was…

    • cmrdporcupineAug 2020

      The author seems to know (well, was involved in) the history of Self and Strongtalk but seems disappointed that the people involved went on to work on and perfect what they see as inferior technology (Java, JavaScript).

      In reality I think if we do an honest accounting of the situation we can see that these have been the more pragmatic engineering solutions for their times, and so that's where the $$ was. I worked in Java for years, but didn't particularly like it, but it is, I think, what the marketplace needed and could handle at the time.

      And I think JS/ECMAScript etc. is a reasonable practical solution for the imperfect world that evolved out of Internet/browser tech.

      Unlike the author I don't think Sun's fortunes would have been any different if Self/Strongtalk or some other Smalltalk-world inspired/derived tech had been pushed hard. The market didn't need or want it.

      IBM did a similar pivot with their VisualAge line, and they did it for pragmatic reasons.

      Finally, let's look at the bigger picture: in the end, what we have with the browser + modern JS on V8/SpiderMonkey etc. is a dynamic object oriented programming language that allows for dynamic manipulation of its environment, is accessible to any user, can be edited and inspected live, can present interactive media to users, and has a large community of authors.

      Is this really that far off from what Alan Kay and Dan Ingalls originally wanted? Purists will gag, but I think as much as I hate front end dev in JS…

    • carussellJul 2015

      I started a project[1] a while back when it became clear that the underlying architecture for the new devtools in Firefox was going to be as problematic as Firebug's had been. Longtime Mozilla contributor Wladimir Palant just published a post a few days ago touching on some of the problems with devtools that he ran into when trying to work with it.[2]

      The idea with sepsis-inspector is that it should be able to replace Hewitt's old DOM Inspector codebase and be stupid simple to extend with third-party viewers. (For anyone unfamiliar, DOMi has the ability to inspect not just webpages, but e.g. the Firefox UI [and Thunderbird, and SeaMonkey] and extensions as well.)

      The interface between the Inspector itself and the viewers is nice and modular for the most part. It's basically Unix pipes in GUI form, with a few services for sugaring. Altogether, this makes its design a good foundation for a generalized inspector framework. (And I do mean generalized. Let's debug PNGs, PDFs, and Haxe, too, but I'm not even talking just the Web here. Want to use it to debug Gnome Shell or your Mono app? Sure. I mean, why shouldn't we be able to?)

      Since DOM Inspector, Firebug, and the new Firefox devtools exist, I've focused most of my time on getting the architecture right and then teaching the Inspector how to do some things that those tools can't already do, rather than necessarily shooting for parity from the start. This means that if you download the sepsis-inspector add-on[3]…

    • JtsummersApr 2022

      From the past discussion:

      http://wirfs-brock.com/allen/posts/914 - a direct response, well worth the read as it provides more context and a different perspective.

      From my recent reading list:

      Evolution of Smalltalk: From Smalltalk-72 through Squeak by Dan Ingalls: http://worrydream.com/refs/Ingalls%20-%20The%20Evolution%20of%20Smalltalk.pdf [pdf]. It's 101 pages but also worth reading, if for nothing else that what I found to be a really interesting story of how Smalltalk-80 was essentially bootstrapped from the similaryl named but nowhere as capable Smalltalk-72

      The Early History of Smalltalk by Alan Kay: http://worrydream.com/EarlyHistoryOfSmalltalk/

      Kay and Ingalls do a good job discussing the actual history of Smalltalk but with their own focus being on what it enabled, with very little interest in the actual commercial side of things. Wirfs-Brock's post gives more information about the context of Smalltalk in the commercial and enterprise setting.

    • mpweiherOct 2017

      Huh?

      The Xerox Star was introduced in 1981 https://en.wikipedia.org/wiki/Xerox_Star

      Apple's Lisa was introduced in 1983. https://en.wikipedia.org/wiki/Apple_Lisa

      With it, Lisa Toolkit and Clascal (Pascal with Classes) http://www.mirrorservice.org/sites/www.bitsavers.org/pdf/apple/lisa/toolkit_university/Clascal_Reference_Manual_Mar83.pdf

      The Mac in 1984 https://en.wikipedia.org/wiki/Macintosh_128K

      MacApp in 1985 https://en.wikipedia.org/wiki/MacApp

      The Tektronix 4404 running Smalltalk, also 1984 http://www.wirfs-brock.com/allen/files/tek/4404-Flyer.pdf

      The Amiga and Atari ST in 1985.

      Windows was at 2.0 in 1987.

      Heck, the NeXT cube had been introduced by fall of '88.

      https://en.wikipedia.org/wiki/NeXT_Computer

    • enforcerFeb 2021

      I don't think a few code snippets prove the point. My conjecture is that any complex enough piece of code with essentially (not accidentally!) convoluted concepts will benefit from OOP more than any other style

      Can we just appreciate the fact Python is such a Swiss Army Knife and allows for multi-paradigm approach?

      Let's just not use low "bashing" of any paradigm as an excuse to neglect the design.

      In some other thread someone mentioned lack of quality metrics. Well, this question has been asked previously, a recommended read from me: http://www.wirfs-brock.com/PDFs/How%20Designs%20Differ.pdf

    Related

    Bertrand Meyerbertrandmeyer.com47 people

    Introduction to the Theory of Programming Languages (1991)

    Bertrand Meyer
    Personal · last shared 2026
    David R. MacIverdrmaciver.com94 people

    How to do hard things

    David R. MacIver
    Personal · last shared 2026
    Cincom Smalltalk Blogcincomsmalltalk.com44 people

    Smalltalk: Our Death has been Exaggerated

    Cincom Smalltalk Blog
    Personal · last shared 2026
    Adam Tornhilladamtornhill.com25 people

    Code quality only matters in context (2019)

    Adam Tornhill
    Personal · last shared 2026
    Marcel Weiherblog.metaobject.com47 people

    Meltdown patch reduces mkfile(8) throughput to less than 1/3 on OS X

    Marcel Weiher
    Personal · last shared 2026
    Smalltalk Talkmedium.com/smalltalk-talk20 people

    Pharo, the Modern Smalltalk

    Smalltalk Talk
    Publication · last shared 2024
    Kent Pitmannhplace.com70 people

    Common Lisp: The Untold Story

    Kent Pitman
    Personal · last shared 2026
    Lambda the Ultimatelambda-the-ultimate.org615 people

    Simon Peyton Jones Elected into the Royal Society Fellowship

    Lambda the Ultimate
    Publication · last shared 2026