Also, server side JS allows the use of the same language on the server and client.
- Reducing server traffic by validating user input in the browser before it is sent to the server.
- Providing immediate feedback to the site's visitors so that they don't have to reload pages just to get error messages on form validations.
- Allowing richer user interfaces with content changes on mouse hover, drag and drop gestures, and animations.
This allows interactive content to be included in HTML pages which would otherwise be static.
NodeJS uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
Node can be a great solution for applications requiring I/O bound operations, data streaming etc.
More details can be found here.
- It's easy to learn.
- It's versatile in the sense that it's multi-paradigm - supporting procedural, event based, object oriented and functional programming.
- It can be used for the front-end and back-end.
- It's Open Source.
If you're looking to experiment with newer features of the language, try the ECMAScript track.