Back in 1999/2000, I worked for a company using Netscape Server and SSJS. I donβt know how popular it was at that time, but first-hand I can say that almost everything about it was terrible:
- It was a huge pain to debug (any changes to the source files, even static files, required a complete restart of the application, which was not a quick operation)
- A simple error (for example, an uncaught exception) often leads to a catastrophic server failure . Somewhat funny, this is the default behavior of NodeJS, although it is much easier to get around this with Node.
- Although JavaScript was the syntax, it failed to implement one key advantage of modern JavaScript: runtime interpretation . Server-side JS with Netscape Server required compilation before deployment and therefore dictated a very slow development process.
- He followed a multi-threaded execution model (rather than modern JS VMs, which are almost always based on event loops)
- Perhaps the biggest weakness is the lack of support for asynchronous programming . All I / O operations were blocked, and therefore, a heavyweight multi-threaded model was required to support multiple clients. The execution model was more like a J2EE container than modern JavaScript-oriented events (like V8). In my opinion, this is the first thing that NodeJS gets right: the asynchronization philosophy is deeply embedded in the NodeJS development workflow, and this is the key to its lightweight, event-driven, extremely efficient concurrency model.
Just for fun, here's a link to the SSJS reference guide from version 1.2. Starting on page 21, you can see all the standard functions and synchronous APIs for file objects, database queries, etc.
My company soon switched to ColdFusion and never looked back.
source share