They also demonstrated ChakraCore running a version of Node.js.
It’s still early days, Silver told us. “In terms of Linux, we really only have one build supported thus far. We have not yet optimized for performance on those OSes. We started with the client workload of IoT-type scenarios, but we have not yet optimized for server-side scenarios; that’s a work in progress. We’re certainly not at the point that we’re saying this is something that should be broadly applied in production environments.”
Early as it is, the Chakra team wants to show the progress they’re making to keep the community in the loop. Silver also notes that there’s increasing participation from developers outside Microsoft on ChakraCore; “it is increasingly becoming a community web project.”
One feature, in particular, proved popular at NodeSummit; time-travel debugging. “That allows you to create a step back button in the debugger,” Silver explained, “which is a cool capability and also pretty critical if want to see what’s happening in various production and test environments.”
One Node, Multiple Engines
That’s the kind of innovation she believes having multiple VMs available for Node will foster. “The more we have more industry players working on the Node stack and the developer experience for the Node stack, the more innovation you’re going to see.”
Having multiple VMs in Node could help avoid a development monoculture in much the same way having multiple browsers does.
Tom Dale, the creator of the Ember.js Web application framework, and Salesforce developer evangelist Emily Rose both see it as a positive development. “Making Node engine-agnostic unlocks the kind of competition that benefits developers. I’m very excited to see Microsoft tackling this,” Dale tweeted and Rose pointed out that the work goes beyond Chakra.
As Node becomes more widely used on servers as well as clients, interest in multiple VMs generally and in ChakraCore specifically is increasing. “Industry partners who are building their own stack or platform based on Node want to be able to have the option of having alternative engines be supported.”
Ironically, though, bringing Node to Windows IoT mean bringing Chakra to platforms beyond Windows. “For anybody to look at ChakraCore and take it seriously, it needs to be something that’s not just for Windows,” Silver explained. “It needs to be able to work with the tooling ecosystem that already exists around Node.”
Creating a version of Chakra that can power Node doesn’t mean Microsoft is trying to get developers to stop using V8 with Node, either on Azure or when they’re using Microsoft developer tools like Visual Studio and VS Code.
“With respect to Azure and our tooling experiences, our main focus for those continues to be the Node ecosystem as it exists today, which is based on V8,” Silver reassured developers. “In VS Code, when you build Node apps you’re building against V8 unless you intentionally set it to ChakraCore. We expect many people will continue to use Node against V8. We provide great tooling experiences for that and our commitment is to continue to have the best tooling experiences for Node developers.”
Feature Image: Amanda Silver at NodeSummit.