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.
Who sits on the board, and whose thumbs are they gonna twist?
Don't they mean "Board o' Directors"?
Edge is a lot faster than Chrome in a lot of areas and handily spanks Firefox. Nothing wrong with competition.
Why would this be beneficial to anyone but microsoft?
V8 is already cross platform and open source, what is the need to have alternative engines?
And if support for multiple engines is the goal, what about firefox or the safari javascript engine?
Seems to me like it would be a more worthwhile use of resources to improve V8 rather than integrating support for multiple different engines and the headaches that will come from doing so.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
"Nothing wrong with competition."
HAHAHAHAHHAHAHA
One Microsoft Way is, IMO, more of a mafia than a corportation.
So fuck their browser(s) and all of their shit.
No, seriously. Nokia accepted a patch (nicknamed Elop), and see for yourself where they are these days.
Perhaps it is or perhaps it isn't. If it's only marginally better, or not better at all, then why would Node.js want the maintenance headache of two backends with no meaningful differentiation?
V8 doesn't support Windows?
the Node.js Foundation's Board o Directors
Yargh, and it be a fine board too.
systemd is Roko's Basilisk.
support standards instead.
Microsoft will quickly add non standard extensions to their engine and suddenly you'll have node.js applications which will only work if engine == ChakraCore.
That's how Microsoft plays. This is not a "good competition", the only winner is MS.
They're pretending to be very nice those days, like a bully that's been ousted from the playground. Because they've been ousted from the playground.
But it's OK, we have new friends now and we don't need you any more Microsoft.
Now, let the MS PR guys down vote my comment into oblivion.
What so you can have the dark corner to yourself to catholic little boys?
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.
Because this is Microsoft. You can claim that it's the new underdog Microsoft. You can claim that they have an engineer-CEO. But the culture is the same as it ever was. I know this intimately.
This is a company who repeatedly have themselves back door advantages in visual studio. This is a company that intentionally de-expedited core functions in development frameworks intended for third party developers. This is a company who built IE to favor Microsoft's own products *even at the cost of extreme security issues*.
If you think that there has been some fundamental shift in culture, you are seriously mistaken. I want nothing to do with their code.
They trashed their own reputation long ago.
"We are the Borg. Lower your shields and surrender your ships. We will add your biological and technological distinctiveness to our own. Your culture will adapt to service us. Resistance is futile."
Or with a BSD like clause PLUS the explicit grant of any and all license to current and future patents that the code donated will operate under for uses compatible with the BSD terms (IOW any damn use whatsoever, within the whole or extracted to any other sphere of computation)?
Because if not, then including MS's core would be a fatal mistake if ever there were things such as software patents... hang on,there are software patents.
If the code has to be changed to include compatibility then it will take on some of the mechanisms that Edge can claim patent on either now or in the future, and thereby lock out all the code for patent damages and even refuse to allow the code to work until it is entirely reworked to run again without it. Upon which, MS may then insist that this is anticompetitive and incur more costs to node.js.
Everywhere: Brothel of Directors.
I spilled V8 on my laptop, unfortunately the vodka fried the motherboard.
Exactly. Language platforms are not just about the syntax and libraries. It is also about the implementation underneath. And there different implementations have different pros and cons.
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
Aside from just having options, various engines offer different features you may want to use
That's a downside. When I use node.js I want 100% of node.js available. The old non standard web has taught us nothing.
In embedded v8, it is a headache and a half to create custom types that vitally need to perform some task such as releasing used memory held by a native implementation upon cleanup. In v8, if you simply want to have some cleanup code get called, you have to allocate a Persistent along with your data, explicitly invoke SetWeak on that Persistent to specify the finalize callback, and then make sure that you keep the allocated persistent around for the lifetime of your custom object (which means that your finalize callback needs to release the memory allocated for the persistent itself in addition to releasing memory used by your custom type). In Chakracore, it appears that you can pass a finalize method directly to JsCreateExternalObject when you create the javascript value... no messing around with the extra storage that v8 needs for persistent types that are not allocated on the stack.
Also, the ChakraCore API also has an advantage of having a smaller and much simpler C API than v8's C++-only API.
Additionally, I have to say that Microsoft's documentation of Chakra's javascript runtime kicks ass over Google's documentation of v8's.
I haven't had a chance to play with Chakra yet myself, having only perused the API docs so far, and the projects that I'm working on that use embedded v8 are far too v8-entrenched to migrate them to using another javascript engine, but I will strongly consider using it in any future new projects.
File under 'M' for 'Manic ranting'
This request is pointless. It's clear how it's advantageous to Microsoft to have their engine used instead of Google's.
But it has NO advantageous to either the node.js project OR the people who make use of node.js. Please don't even consider it.
Node.js' use cases are not limited to running a Node.js server. Embedding the core inside a bigger application
Ding ding ding!!!
I am working on a project that needed an internal scripting engine. We first looked at nodeJS, but then realized exactly the limitation you point out: we can't "embed" node inside of an app. So I can't make in-process calls to/from JavaScript. There are various other wrappers that allow you to embed V8 into apps, and we went with one of those. But if Node supported that mode of operation, we would have used it. Most other scripting languages work this way: They are in-process libraries that let you call into and out of the language.
When I use node.js I want 100% of node.js available
It would be.
The OP is referring to features of the JavaScript engine, not features of the node environment. Think of it as the difference between the compiler and the platform. I can write C++ code on Windows using gcc, msvc, or llvm. Each compiler offers different features. But either way, 100% of the Windows API is available. Using another platform as an example: I can write C++ code on Linux using gcc or llvm. Both offer different features. But both support 100% of the POSIX APIs.
For the love of god and satan, just say no! But I'm sure Microsoft will pay their way in anyway.
abcdefghijklmnopqrstuvwxyz
Global Mother Fucking Spyware?