Node.js: The Right Language at the Right Time
Share This Post
Programming Language Performance Tradeoffs
Some of the key variables that impact the optimal programming language for a given task include:
- Performance Requirements
- Utility of Available Libraries associated with programming language
- Type of Application
- Application Complexity
In some cases, it is best to use multiple languages for different parts of the application – server side vs client side, etc.
The following chart shows different types of options and impact on performance:
·Requires extremely skilled hardware and software capabilities
·Requires 18+ months
·Requires large scale
·Example – Cryptocurrency algorithms
·Requires extremely skilled software capabilities with knowledge of processor architecture
·Allows for high performance or lightweight without scale and complexity of ASIC
· Program is complied in native assembly code
· Provides greater control over resource allocation
· Examples: C, C++
Dynamically Compiled Frameworks
· Typically have an extensive set of pre-written libraries for particularly types of projects/tasks
· Dynamic compiling allows for multi-platform support without the full performance hit of interpreted
· Examples: Node.JS
· Lower performance as program is dynamically interpreted and executed
· Common approach for scripting where each line is a large task
The key drivers of Node.js popularity include:
- Scalability – It is designed with network scalability in mind and can handle many simultaneous sessions.
The chart below shows some examples of performance tradeoffs on very specific test scenarios between C++ and Node.JS.
Divertica’s technical team has been using Node.js for almost a decade. In the hands of a highly experienced programmer it can eliminate a significant amount of programming by:
- Allowing easy support for Mobile and Multiplatform
- Leverage existing libraries which can provide over 70% of the code for an application
- Provide outstanding application performance in a networked web environment
Divertica utilizes Node.js extensively for a variety of application development. We leverage both widely available open source libraries as well as libraries we have built over the last decade across over 50 projects.
More to explore
Divertica has inventoried almost every AWS to Azure non-proprietary scenario and has built tools and a methodology that allow for rapid migration to Azure as well as maintenance of the Azure environment.
Divertica’s mission is to make even the most advanced cloud technologies usable for programmers of all skill levels.