Microsoft Asks Node.js To Allow ChakraCore (Edge) Alongside Google's V8 Engine (softpedia.com)
campuscodi writes: Microsoft has submitted an official pull request to the Node.js project, through which it's asking the project's maintainers to enable support for ChakraCore, the JavaScript engine packed inside Microsoft's Edge browser, as an alternative to Node's built-in V8 engine, developed by Google. Earlier in December 2015, Microsoft open-sourced ChakraCore. Microsoft has also been one of the biggest companies to adopt Node.js early on, and is also part of the Node.js Foundation's Board o Directors. The main reason to add ChakraCore support in Node.js will help the IoT version of Windows 10 to run JS apps on IoT devices, just like Samsung is also thinking about.
Nothing wrong with competition.
Very true. But this is Microsoft. A corporation that will wiggle into protocols and standards, then use their market share to gain instant market penetration, and then add proprietary extensions or redefine existing functionality with the sole purpose of breaking compatibility to ensure their implementation is the only one people can use.
That's the biggest issue, and why people are deeply concerned. They never want to help, they want to embrace, extend then extinguish. It's their modus operandi since the 1980s, and nothing they've done since has said they'll work with others to the mutual benefit of us all. Their end-game is always the same. Sometimes they'll just cause delays, purely to get their own copycat version out first.
Trust them at your peril!
I know a bunch of you think V8 is cross-platform enough, but really it isn't. It uses way too much memory for many platforms, there's no non-JIT mode (so can't run on iOS), oh and it is a female dog to compile.
Node.js' use cases are not limited to running a Node.js server. Embedding the core inside a bigger application and using it for some types of cross-platform logic, scripting, etc is a real thing. Maximizing compatibility is a must in that case.
Aside from just having options, various engines offer different features you may want to use, and better compatibility with your target platform.
JXCore has done a great job extending Node.js to support mobile, and they support SpiderMonkey and ChakraCore alongside V8. Compatibility wise they're king of the hill already, though they could still add JavaScriptCore and maybe even Duktape for good measure.