5 comments

  • cxr 41 days ago
    Two oversights in this article:

    - Failure to mention Netscape Enterprise Server (NodeJS is not responsible for expanding "the language's scope[…] far beyond the browser"—it was on the server from almost the very beginning; the author cites Brendan's 2011 blog post[1] which namechecks Rhino, but then leaves this out)

    - Failure to mention JS running on the James Webb Space Telescope (Brendan's post also namechecks Nombas, but doesn't go into much detail about it; Brent Noorda covered this in an update to the Nombas section of his site[2] in 2022)

    1. <https://brendaneich.com/2011/06/>

    2. <https://brent-noorda.com/nombas/us/index.htm>

    • petesergeant 41 days ago
      I think the first JavaScript book I bought, circa 1998(?) briefly mentioned server-side JavaScript, and then until Node came out, I never saw it again. It's fair to say Node took server-side JavaScript from an obscure curiosity to the behemoth it is now.
      • dboreham 41 days ago
        JS on the server seemed to me to be a solution looking for a problem. We already had plenty of arguably adequate server side languages. JS was the weird language you were forced to code in for the browser so why on earth would you want to use it elsewhere? Well I suppose the answer was "because there's a zillion people who know how to use it". But that wasn't true until it was.
        • shadowgovt 40 days ago
          > why on earth would you want to use it elsewhere

          Mostly because I don't want to reimplement my data structures (and data structure manipulation functions) just because they're being operated on in another machine. I want to represent those values and relationships once and be able to manipulate state on both the client and the server with the same operations.

          My projects end up having one `src` directory with `client`, `server`, `shared` subdirectories.

        • petesergeant 41 days ago
          No, the answer was that Node.js will run circles around Apache, because Apache was built before async was discovered[0]...

          0: https://www.youtube.com/watch?v=bzkRVzciAZg

          • cr125rider 41 days ago
            It’s good to know the differences between libuv based event loops, threads, and processes. I think your comment simplifies that too much.
    • jbverschoor 41 days ago
      In sorry, bit I’ve implemented Rhino way back in 2005 or before on a server
  • nabla9 41 days ago
    Brendan Eich wanted the language be some dialect of Lisp language but his superiors insisted on a language similar to Java. So he wrote that prototype in Common Lisp. It's basically Java like syntax over Common Lisp structs and vectors.
    • wk_end 41 days ago
      The original implementation of JS was in C, not CL.

      I think Eich was more partial to Scheme than CL, as a model for JS. Though I wouldn’t say it’s Java syntax over either - the scoping rules are very distinct, it’s missing tons of features core to either CL or Scheme, there’s the whole Self-inspired prototype-based OOP layer…

      • LeFantome 41 days ago
        I also always thought that he set out or implement a Scheme-like language but got told to make it look like Java.

        Scheme is a LISP of course, just not Common Lisp.

        I have no idea what language the original implementation was in but it makes sense it would be the same as the rest of the browser.

      • convolvatron 41 days ago
        I went to a talk by Eich in the late 90s. He explicitly mentioned scheme
      • nabla9 40 days ago
        Yes. But that prototype was in CL.
  • t1234s 41 days ago
  • ChrisArchitect 41 days ago