chakra-core / ChakraCore

ChakraCore is an open source Javascript engine with a C API.
MIT License
9.1k stars 1.19k forks source link

Chromium adoption in Microsoft Edge and future of ChakraCore #5865

Closed liminzhu closed 4 years ago

liminzhu commented 5 years ago

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

nerocui commented 5 years ago

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.

cpus133525 commented 5 years ago

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

nerocui commented 5 years ago

@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.

TonyHenrique commented 5 years ago

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.

rhuanjl commented 5 years ago

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.

saschanaz commented 5 years ago

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.

ghost commented 5 years ago

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.

dennis-yemelyanov commented 5 years ago

DocumentDB already uses ChakraCore for stored procedures: https://azure.microsoft.com/en-us/blog/the-road-ahead-for-azure-documentdb-with-chakracore/

fatcerberus commented 5 years ago

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...

edwinyzh commented 5 years ago

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.

saschanaz commented 5 years ago

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

edwinyzh commented 5 years ago

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

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

JPVenson commented 5 years ago

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

fschneidereit commented 5 years ago

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.

dennis-yemelyanov commented 5 years ago

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

fschneidereit commented 5 years ago
      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.

mirsaeedi commented 5 years ago

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.

saschanaz commented 5 years ago

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.

fatcerberus commented 5 years ago

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.

liminzhu commented 5 years ago

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

Edit - You beat me to it @fatcerberus :)

infinnie commented 5 years ago

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

fatcerberus commented 5 years ago

@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 5 years ago

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.

infinnie commented 5 years ago

And we miss backdrop filters.

HolgerJeromin commented 5 years ago

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

fatcerberus commented 5 years ago

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..." 😸

infinnie commented 5 years ago

The world’s most beautiful browser will be gone.

xjlight commented 5 years ago

@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?

liminzhu commented 5 years ago

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.

CShepartd commented 5 years ago

Goodnight sweet prince

rhuanjl commented 4 years ago

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.

hez2010 commented 4 years ago

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.

FranklinYu commented 4 years ago

@rhuanjl Vote for #6329 ?

rhuanjl commented 4 years ago

@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.

dennis-yemelyanov commented 4 years ago

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

rhuanjl commented 4 years ago

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

divmain commented 4 years ago

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.

dennis-yemelyanov commented 4 years ago

Any updates on this?

FranklinYu commented 4 years ago

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.

rhuanjl commented 4 years ago

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)

MikeHolman commented 4 years ago

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.)

dennis-yemelyanov commented 4 years ago

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?

rhuanjl commented 4 years ago

@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:

divmain commented 4 years ago

Moving discussion to #6384.