Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
In 1995, a Netscape employee wrote a hack in 10 days that now runs the Internet (arstechnica.com)
56 points by taubek 61 days ago | hide | past | favorite | 20 comments


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>


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.


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.


> 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.


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


It’s good to know the differences between libuv based event loops, threads, and processes. I think your comment simplifies that too much.


You might enjoy the linked video


In sorry, bit I’ve implemented Rhino way back in 2005 or before on a server


What?


Rhino the javascript engine for Java



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.


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…


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.


I went to a talk by Eich in the late 90s. He explicitly mentioned scheme


Yes. But that prototype was in CL.


No. I wrote Mocha in C.

Where did you hear this CL fish story?


Oh. It was not you, and not the original.

It was Waldemar Horwat and js2 https://web.archive.org/web/20111217124744/https://mxr.mozil...






Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: