chakra-core/ChakraCore

Chromium adoption in Microsoft Edge and future of ChakraCore

liminzhu opened this issue · 44 comments

Hello Friends of ChakraCore,

Yesterday, Microsoft Edge announced its intent to adopt the Chromium open source project in the development of desktop Microsoft Edge to create better web compatibility and less fragmentation for web developers and customers. You can read the announcement blog for more information.

We’ve seen your questions for ChakraCore and we want to be transparent and honest with the open-source community that has given us so much support. To be compatible with the rest of the platform and reduce interoperability risks, Microsoft Edge will use the V8 engine as part of this change. There is much to build and learn, but we’re excited to take part in the V8 community and start contributing to the project.

ChakraCore is currently being used in various projects outside the browser. So, despite the change of direction for Microsoft Edge, our team will continue supporting ChakraCore. We will ensure that any security vulnerability is patched in a timely manner, apart from bringing other enhancements to the engine. The project will also continue taking public contributions.

As the team learns from the move to support and contribute to Chromium and V8, we’ll keep the community informed about our progress and adjustments, if any, that we’ll need to make.

ChakraCore team

Basically means this is like Windows Phone. Platform has moved, so only security patches. Which is good, v8 and blink are the future and the decision is only going to bring improvement.

I'm sorry for what I said before. I have some misunderstanding of the announcement. I hope Edge could be better.

@cpus133525 oh believe me if there is an open platform that they can adopt and suddenly adds a big ecosystem of apps to windows, they will. Just look at all the bridges and pwa.

If all this makes C++ and .NET and XAML (UWP/WPF/Windows Forms) come to the Web Browser (cross-platform), and help Web Assembly to improve (implement threads, for example), then I think that this will be a good thing to everybody.

I really hope ChakraCore can continue to have a role for years to come. In my opinion it's currently the nicest JS engine for an embedder to work with and it would be good if it could be maintained with that purpose - being the best for embedding whilst the other big 3 focus on browsers.

ChakraCore was the most eager engine to implement ES2017, and now it's the only engine not having ES2018 object rest/spread in its latest stable release. I was always wondering why the change, but I can now understand that it's because no real push exists anymore.

I really hope someone takes the opportunity to pick up the slack and elects to use ChakraCore in some major project. I would love to see continued development on this. It would be a shame if no one ever used it again just because Chromium makes it so difficult to use Blink with any engine other than V8.

I’m using ChakraCore as the JS backend in my miniSphere game engine: https://github.com/fatcerberus/minisphere

We have full ESM support (including dynamic import()) and it was incredibly easy to embed, even in a codebase that was previously based on Duktape (whose API is Lua-like). I looked into V8 and Spidermonkey but their APIs are downright hostile to C-only codebases. I wasn’t about to rewrite half my codebase only to end up having to deal with the half a dozen breaking changes V8 seems to make on a monthly basis.

I pray ChakraCore sticks around for a long time to come. For now I remain cautiously optimistic...

According to a Hacker News comment, the newly announced Scripting API of Minecraft is based on Chakracore, although I haven't dug further to confirm it.

@edwinyzh Try object spread, it's probably ChakraCore if it doesn't work...

@edwinyzh Try object spread, it's probably ChakraCore if it doesn't work...

Sorry I don't play MineCraft, maybe others can try it.

I have recently evaluated against V8 and ChakraCore for a webserver Projekt. ChakraCore has a lot more functionality and API points compared to V8 and most important for a shared Environment it is MUCH safer to execute untrused JS code in there (try a Stackoverflow in a Native V8 enviorment). Please never let this engine fade away from existence

It's sad to hear that ChakraCore is kind of abandoned. Sure, EdgeHTML reached a dead-end because of its platform-dependence on Windows, but I never understood why Microsoft sticked with MSHTML (and then EdgeHTML) for so long and kept it the way it was. They should have taken the opportunity to make this thing cross-platform ten years ago, leaving it Windows-only was a huge mistake that now pays off in giving in to Chromium.

There's still UWP applications running JavaScript. Are they also moving to Chromiun?

      There's still UWP applications running JavaScript. Are they also moving to Chromiun?

According to what I heard, no. The current WebView and HTML/JavaScript-based apps will remain based on EdgeHTML and ChakraCore, and a new version using Chromium is offered side-by-side.

ChackraCore is awesome. It's sad to hear you are going to stop it. The problem with Edge is not its engine, it's the user interface in my opinion.

Why can't we replace Chromium's V8 with ChakraCore in the nu-Edge? That will be a great push for ChakraCore.

The problem with Edge is not its engine, it's the user interface in my opinion.

👍, while I think the engine had its own problems, though.

It’s sad to hear you are going to stop it.

How did you get THAT out of:

So, despite the change of direction for Microsoft Edge, our team will continue supporting ChakraCore.

Glad you like it @mirsaeedi . To be clear, we aren't stoping ChakraCore development.

Edit - You beat me to it @fatcerberus :)

Continue supporting as in “continue supporting IE 11 by shipping security updates”?

@infinnie

We will ensure that any security vulnerability is patched in a timely manner, apart from bringing other enhancements to the engine.

Not only security patches. Feature-level changes too.

HM100 commented

Please note that switching to chromium means that backdrop-filter is not anymore supported by default (Unless Chromium fixes that). Otherwise okay as non-EdgeHTML engine is used on iOS and Android.

And we miss backdrop filters.

I would expect having these filters working in chromium before the engine switch in edge:

https://bugs.chromium.org/p/chromium/issues/detail?id=497522#c157

You know, now that the cat's out of the bag on this one, the survey popups in Win10 I've seen the past few months "How likely are you to recommend Google Chrome?" finally make sense. I got really used to seeing the "You should switch to Edge, it's better for your battery!" notifications, then one day it stopped doing that and started asking me how I liked Chrome instead... I was just like "okayyyyy..." 😸

The world’s most beautiful browser will be gone.

@liminzhu we have an UWP application which replies on Chakra.dll, I assume this comes with Edge browser in Windows 10. Will there be no Chakra.dll after this change?

Sorry for the delay here @xjlight - existing apps that rely on the EdgeHTML or MSHTML webviews (and associated JS engine) can continue to do so without changes.

Goodnight sweet prince

Is there any update that can be shared about future plans for CC or perhaps an estimate of when there will be an update that can be shared?

Now that the Chromium version of Edge is approaching release it's clear that (public) CC development has drastically slowed.

Additionally the last time a new release branch was cut from master was June 2018 so all the major work done since then is not in a released version.

In my opinion based on its API CC is still the best JS engine for an embedder who wants a Jit BUT without active development the lack of new features and unfixed bugs etc. will start to outweigh that advantage in time.

I'd like to make more contributions to CC but I'm unsure if there's much point.

Chakra Core provides lower memory allocation and faster speed than v8. It's attractive.
I hope that the new Chromium based Edge could use Chakra Core as its scripting engine in the future, and continue using chromium's blink as its rendering engine.

@rhuanjl Vote for #6329 ?

@FranklinYu #6329 is a little limited in scope - it asks for 1.12 to be “posted on Nuget” but 1.12 would need to exist first currently master may have that version number but it’s not locked down as a release.

Also this issue isn’t about asking for one more release it’s about asking for future ongoing releases. That said whilst creating and posting a release right now could be good IF it’s going to be the last one for a long time it would be better for a few more features to land before it’s done.

Is the project officially abandoned now? Last issue closed Dec 13, last PR merged Dec 21, last patch released Nov 12...

@zenparsing any chance of a comment from Microsoft on this or some update?

Thanks for reaching out @dennis-yemelyanov and @rhuanjl. I need to talk with some other folks in the Edge org before responding, but we'll get you an official answer within the next couple of days.

Any updates on this?

I would totally understand if Microsoft decide to allocate less man-hour on this project, and encourage more community efforts. A nice starting point is to have someone outside of the company to have write (or even admin) permission of this repository so that we can at least go forward, like merging PRs and making releases. It would also be appreciated if community is able to push the NuGet package.

Seconding @FranklinYu’s suggestion if Microsoft is decreasing/ending work on this is would be great if it could be taken over by the open source community.

But I do not have sufficient time to be a maintainer BUT if this project is able to continue in some form I should be able to submit feature pull requests every month or two. (I’ve not been submitting anything recently because the work has stopped but would like to submit more if/when work commences again)

We are not currently working on new features, but we will continue with security releases for the foreseeable future.

I can't really speak to future governance, but I think we are open to changes.

(Note that this is my understanding and not a statement of any official position.)

Thank you, @MikeHolman for this info.

Is it possible to make one last release for 1.12? If not, what is preventing it from being released? Can some of the work required be picked up by the community?

@dennis-yemelyanov I can't speak for microsoft - I don't work for them - my involvement here is as an open source contributor - but here's my speculation on current status:

  • 1.12 if it was even planned is incomplete - notably there's some 95% complete work to enable async iteration and to turn on the JIT for generator functions and async functions, it would be a massive shame to issue a new feature release without finishing that work first
  • an official release normally involves a level of testing etc. that hasn't happened
  • with Edge now using v8 and microsoft actively contributing to that there's no business reason for MS to continue development of chakracore (aside from community goodwill which is hard to put a dollar value next to) -> therefore MS employees have likely been told they can't do any more work on a new version of chakracore during business hours
  • as for the community picking it up, what community? this is hosted on github but aside from me I don't think anyone has submitted any substantial external contributions in the last 2 years (please correct me if I'm wrong) - as an aside whilst I understand most of the source I can't fork CC and take it over, I don't have nearly enough time - I have at best 10-20 hours a month I can give it

Moving discussion to #6384.