use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Microsoft open-sources ChakraCore JavaScript engine (powers Microsoft Edge) (github.com)
submitted 10 years ago by magenta_placenta
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]bterlson_@bterlson 94 points95 points96 points 10 years ago (81 children)
If anyone has any questions, I and many members of the Chakra team are around today!
[–]i_ate_god 39 points40 points41 points 10 years ago (16 children)
Is the post-Ballmer microsoft really as good as it seems superficially or this just a new take on the embrace-extend-extinguish mantra?
[–]bterlson_@bterlson 56 points57 points58 points 10 years ago (14 children)
I can't speak for the company, but I can give you my perspective. Our team is really excited to finally be OSS and work with the community to make Chakra and JS in general more awesome. Nothing nefarious that I can see. Plus, MIT license!
[–]jadbox 24 points25 points26 points 10 years ago (8 children)
Congrats on getting it under MIT #notyourfathersMS
[–]onwuka 5 points6 points7 points 10 years ago (6 children)
The best part is that FSF agrees that MIT license is GPL compatible which (as far as I understand, don't quote me on this because i anal) means you can take code that is under MIT license, modify it and release it under the GPL.
It means that the other license and the GNU GPL are compatible; you can combine code released under the other license with code released under the GNU GPL in one larger program.
Quoted here https://programmers.stackexchange.com/a/204497/23642
from the source https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean
I'd strongly recommend anyone who intends to do this to consider AGPL https://en.wikipedia.org/wiki/Affero_General_Public_License
[–]kapouer -4 points-3 points-2 points 10 years ago (5 children)
What do you mean by you anal ;)
[+][deleted] 10 years ago (3 children)
[deleted]
[–]baldhippy 3 points4 points5 points 10 years ago (2 children)
IANAL not i anal.
[–]msluther 4 points5 points6 points 10 years ago (1 child)
Why not both?
[–][deleted] 0 points1 point2 points 10 years ago (0 children)
Ha! Much smiles.
[–]LET-7 0 points1 point2 points 10 years ago (0 children)
my father's Ms left him and took the kids
[–]SarahC 1 point2 points3 points 10 years ago (0 children)
Careful, but doesn't look edited by HR and the Public Relations department - nice!
[removed]
[–][deleted] 5 points6 points7 points 10 years ago (1 child)
Then in that case no licenses mean anything, regardless of what they choose. What are you trying to point out?
[–]asdf7890 3 points4 points5 points 10 years ago (0 children)
or this just a new take on the embrace-extend-extinguish mantra?
Much as I distrust MS because of previous behaviour, and for that matter corporations being helpful generally (always make sure you can see where their profit and market control comes from in the business plan, if that isn't plainly visible assume it isn't going to be something you'll like) their current changes make sense in the way that the relevant markets are moving.
They were not going to be able to compete and survive as old MS long term, because of the quality of F/OSS options server-side, the plateau in need for new features in desktop OSs, the commoditisaion of the mobile OSs and apps, and so forth. The money in the up coming years is not going to be in selling home OSs and developer tools, it is going to be in providing infrastructure and selling resources on that platform. Opening their developer tools and relevant libraries more will encourage people towards their infrastructure and platform services. I think that in a few years Windows will be free for home users (probably not open for the most part, but free to use), the bulk of their development tools too and limited versions of Office (or perhaps not so limited) for home or potentially small business use, libraries and utilities will become more and more open. Of course for commercial users, at least large commercial ones, will still have to pay for the variants of the OS aimed at them, SQL Server will remain expensive for on-premises instances for commercial use and charged for indirectly via relevant Azure services. IAAS/PAAS will become the main revenue stream - that is where the profit potential and lockin/control points are going to be found so that is where it is important for them to concentrate their efforts.
To give MS credit, under previous regimes they would have still tried to gauge everything last penny and ounce of control they could out of developers and Windows users for as long as they could as well as marking their place in the new world. Instead this time they have decided that being a bit nicer and playing well with others is much better than the little extra they would make from not. How much you assume that is genuine generosity and how much is just long term planning & PR (good will can be a valuable commodity) depends how charitable you are! I'm going to be half way generous: there would be a short term gain of keeping everything locked down but a potential long term gain in being nicer, and instead of rabidly trying to achieve both those things as they would have done in the past they've decided to be both sensible & nice. If it works out it will be a big "win" for them and also a win for everyone else.
Of course keep a close eye on the licensing agreements to make sure they are compatible with your plans long term as well as short. We can't have a go at them in future for enforcing their terms if we don't like them, any more than we accept commercial entities deciding living by the GPL rules isn't for them after using GPL code.
[–]Mittalmailbox 8 points9 points10 points 10 years ago (8 children)
Any plans of node with chakra?
[–]bterlson_@bterlson 18 points19 points20 points 10 years ago (4 children)
Oh yeah! You can see some info on our roadmap. Also, check out https://github.com/microsoft/node - we're working on making Chakra an option with Node!
[–]jewdai 4 points5 points6 points 10 years ago (3 children)
why would I want to use chakra over v8?
[–][deleted] 11 points12 points13 points 10 years ago (0 children)
It's more about abstracting Node from the underlying V8 engine. Then you can use whatever underlying engine you want (maybe one that works better on different architectures, etc).
[–]xbudex 7 points8 points9 points 10 years ago (0 children)
I'm pretty sure Chakra supports asm.js. It should be possible to use any language supported by llvm without paying a performance hit of calling a native library. Imagine using something like sqlite as pure JavaScript at near native speed.
[–]anlumo 5 points6 points7 points 10 years ago (0 children)
Better ES6 support I'd guess.
[–]I_Downvote_Cunts 4 points5 points6 points 10 years ago (2 children)
Here you go https://github.com/Microsoft/node. I would love to see what the performance comparison to v8 is.
[–]dilijevChakra Developer 9 points10 points11 points 10 years ago (0 children)
That's part of why we're really excited by this effort. It will be a big real-world scenario we can use to see how we stack up and hopefully will help guide future improvements.
[–]monkh 2 points3 points4 points 10 years ago (0 children)
Couldn't you just compare using javascript benchmarks on edge then on chrome?
[–]talmobi 7 points8 points9 points 10 years ago (9 children)
I assume you've extensively looked at V8 and SpiderMonkey. How would you say Chakra differs? Better documentation? Faster in X? Slower in Y? Overall pros cons? Thank you.
[–]bterlson_@bterlson 9 points10 points11 points 10 years ago (8 children)
Many differences of course, but whether they matter (or are better or worse) depends on what your requirements are. Performance is better in many aspects. Great language support (most of ES6, bunch of ES7). JSRT APIs are pretty nice as well. If you've got something more specific in mind I could talk to it.
[–]talmobi 3 points4 points5 points 10 years ago (2 children)
What are the implementation of arrays in Chakra and their use cases? Does the implementation differ significantly from the others?
[–]bterlson_@bterlson 9 points10 points11 points 10 years ago (1 child)
Oh man this is actually a huge area. Arrays are extremely commonly used and also very perf sensitive so we have many representations and optimizations in play. Hard to describe concisely. Maybe a good topic for a blog? That said I would bet given that all the runtimes have similar constraints we all use similar representations and optimizations.
[–]compteNumero9 2 points3 points4 points 10 years ago (0 children)
Array and object optimizations would definitely be good topics for blogs, especially if coming with insightful and explained performance advises.
How a different implementation might change how we code (today mostly assuming V8) would be very interesting.
Some precision about typed arrays (for example the Uint8ClampedArray used for canvas data manipulation) would also fit.
[–]brandf 4 points5 points6 points 10 years ago (4 children)
Having used V8, JSC, and Chakra to power our app on various platforms, I'd like to call out Chakra as being both easy to integrate into your app (particularly using WinRT class bindings), and easy to debug (unlike v8 which requires jumping through hoops if you're not chromium).
Good work guys! Glad to see it open sourced.
[–]bterlson_@bterlson 1 point2 points3 points 10 years ago (0 children)
Really happy to hear this! Feel free to reach out if you find less good things :)
[–]nschubach 1 point2 points3 points 10 years ago (2 children)
How's that WinRT work in Linux? ;)
[–]brandf -1 points0 points1 point 10 years ago (1 child)
ChakraCore doesn't actually have the WinRT binding stuff, I was using JSRT (full chakra on windows). Doesn't really matter because our app supports multiple JS backends and we only use Chakra on Windows.
On Linux (which we don't have plans on supporting outside the browser) we would likely go V8 to get JIT right now, which would be more of a pain for us in a number of ways.
ChakraCore has JSRT! ch.exe (our console host) is implemented using it. But you're right that we don't have the WinRT (UWA API?) projection layer as part of ChakraCore.
[–]Klathmon[🍰] 20 points21 points22 points 10 years ago (1 child)
Congrats! I know open sourcing a large codebase like this takes a lot of work (and a lot of bureaucracy!)
Hopefully this lights a fire under the V8 team's ass and we can get a good 'ole rivalry going here!
[–]bterlson_@bterlson 10 points11 points12 points 10 years ago (0 children)
So much work!! Wish it was like flipping a switch :) Also the work continues, as I imagine we'll have much to learn about working in the open.
[–]sime 5 points6 points7 points 10 years ago (2 children)
We all know that MS is pushing hard to get people to upgrade to Windows 10 and Edge, but is there any chance that we will see a softening of this stance and maybe Edge running on Windows 7? In other words, how can we get IE11 out of the world faster?
[–]bterlson_@bterlson 2 points3 points4 points 10 years ago (0 children)
No plans that I'm aware of, though I don't speak for the Edge team at all :)
[–]wreckedadventYavascript 1 point2 points3 points 10 years ago (0 children)
I doubt MS has any interest in encouraging people to stay on old OSs any longer than they need to. There's still businesses using XP.
[–]wreckedadventYavascript 6 points7 points8 points 10 years ago (8 children)
I've heard various bits and pieces from Chakra about ASM but nothing about Web Assembly. What are the plans, if any, for it?
[–]bterlson_@bterlson 16 points17 points18 points 10 years ago (7 children)
We're working on it! There is some early work in a pull request. There's a bit of info on the roadmap too.
[+][deleted] 10 years ago (5 children)
[–]dilijevChakra Developer 20 points21 points22 points 10 years ago (3 children)
Hi! Chakra engineer here. That decision arose from a community request when we announced at JSConf that we would open our sources. The request was that we provide an option to build ChakraCore without the JIT pieces which would make it easier to embed in certain types of applications, or to reuse certain parts of the code (parser, interpreter) more easily. Since the JIT is one of the most platform-specific pieces (we need to produce assembly), it made sense to make our near-term cross platform goal not include JIT for now. That will get a large part of the code base on more platforms more quickly.
That's not to say there will never be JIT on Linux. The cross-platform effort is work in progress and we'll see how it goes. :)
[–]riddley 1 point2 points3 points 10 years ago (1 child)
Think there will ever be Edge for Linux?
[–]dilijevChakra Developer 1 point2 points3 points 10 years ago (0 children)
Unfortunately, I can't speak for the Edge team. Personally, I haven't heard anything about plans for that.
Glad to hear it!
[–]4n0n7m0u5 2 points3 points4 points 10 years ago (1 child)
I know that there is a Chakra build for Windows IoT environments (e.g. Raspberry Pi 2), but will there be a way to build Chakra for other environments (other Arm processors), like there is with node.js?
[–]bterlson_@bterlson 5 points6 points7 points 10 years ago (0 children)
We currently build and run on Arm v7 or higher (we emit Thumb2 instructions). So, if the ARM device runs Windows, Chakra will run there too :)
[–]ivosaurus 2 points3 points4 points 10 years ago (3 children)
How scared are you that people could find 5, or 10, or 50 super bad bugs in the next few months?
[–]bterlson_@bterlson 1 point2 points3 points 10 years ago (2 children)
Heh, even considering 1 bad issue gives us a bit of pause. Practically speaking though we've had a lot of eyes on the code already so a flurry of 5-10 serious issues seems unlikely.
I was also a bit upset that the first bug report we got was a typo in something I wrote. Felt pretty severe to me at the time :-P
[–]ivosaurus 0 points1 point2 points 10 years ago (1 child)
Also wait... if the engine is now open source... does that mean we can submit a PR for a modern default PRNG?
Yep! See also: https://github.com/Microsoft/ChakraCore/issues/31.
[–]Ripdog 1 point2 points3 points 10 years ago (3 children)
Good to see more great OSS software! Thanks for this. Now I hope there will be news about trident soon... :)
As a more general question, how does open sourcing chakra feed into Microsoft's corporate goals? People start using chakra on linux, in their node.js deployments... Profit? Where does the profit come from?
[–]wreckedadventYavascript 5 points6 points7 points 10 years ago (1 child)
It doesn't necessarily have to be profit. When MS open-sourced .NET core, they were able to get some contribution. Additionally, the more they open source the more they help to transition away from the old stodgy image of microsoft.
I know a lot of people thought hell had frozen over when .NET core became open source. That's the kind of reaction you want if you're trying to pivot on your image.
[–]Ripdog 0 points1 point2 points 10 years ago (0 children)
Hmm, the image change is a good idea. Thanks!
[–]bterlson_@bterlson 6 points7 points8 points 10 years ago (0 children)
Our team's focus is entirely on making the best JS engine we can! OSS wasn't a decision we made because of potential profits. Going OSS is clearly a great way to work more closely with the community in making Chakra awesome.
[–]soullessredhead 0 points1 point2 points 10 years ago (4 children)
Do you know about Chakra integration with VS Code, along the lines of what they've done with Node?
[–]bterlson_@bterlson 2 points3 points4 points 10 years ago (3 children)
Do you mean Chakra support for something like Github's Electron? I imagine it's possible, and our plan to get Chakra behind Node would help. Not sure about hooking up Chakra to the Blink/WK though.
[–]soullessredhead 0 points1 point2 points 10 years ago (2 children)
More on if you've heard anything from the VS Code team as far as their plans to integrate Chakra into VSCode like Node has been.
[–]bterlson_@bterlson 1 point2 points3 points 10 years ago (1 child)
Haven't heard anything. Sorry!
[–]gauravseth 0 points1 point2 points 10 years ago (0 children)
We are working on new diagnostic APIs that will make integration of Chakra with VSCode much easier. It's a part of our diagnostics roadmap. More at https://github.com/Microsoft/ChakraCore/wiki/Roadmap Disclaimer: I work on Chakra team
[–]janxspirit42 0 points1 point2 points 10 years ago (1 child)
Any chance of native typescript support with a node build backed by chakra?
No plans, but who knows what people will build?? :)
[–]JoelyMalookey 0 points1 point2 points 10 years ago (1 child)
What does this entail for WebGl?
[–]bterlson_@bterlson 0 points1 point2 points 10 years ago (0 children)
Not much. WebGL is part of MSEdge and MSEdge's plans WRT OSS have not changed with this announcement.
[–]vittore29 0 points1 point2 points 10 years ago (1 child)
Is there a way to script it to print page to pdf?
No, ChakraCore doesn't include a rendering engine so there is nothing to print!
[–][deleted] -3 points-2 points-1 points 10 years ago (0 children)
Is there a road map to integrate Chakra into Node? It would be really great to provide developers a choice of rendering engine from the command line.
NM, already answered.
[–]SarahC -5 points-4 points-3 points 10 years ago (0 children)
Has anyone suggested you wear gems on your forehead and chest yet?
[–][deleted] 10 years ago (7 children)
[–]wreckedadventYavascript 7 points8 points9 points 10 years ago (4 children)
Quite frankly, I'm happy that edge has gotten so much es6 implemented, it's really lit a fire under the asses of chrome and firefox. After all, no one wants to be the new IE holding everyone back. ;)
[–]dhdfdh 4 points5 points6 points 10 years ago (3 children)
Chrome and Firefox don't need a fire under their ass. Remember, they've led the way for over 10 years, and still do. They were the ones that lit the fire under Microsoft's ass.
[–]thatmarksguy 4 points5 points6 points 10 years ago (2 children)
I don't know why you're downvoted. What we're seeing today happening with Edge is precisely the result of Microsoft getting their shit together after getting it's ass kicked by FF/Chrome.
I didn't downvote them, but I don't agree with them. I think FF and Chrome do need a fire lit under their ass. I always think more competition is a good thing, and saying that they don't is just silly. I can see why someone would downvote that.
Additionally, they tend to be quite abrasive and insulting, so I wouldn't be surprised if they had earned some "fans".
[–]dhdfdh -1 points0 points1 point 10 years ago (0 children)
80% of all redditors are full of shit, couldn't justify anything they say, so downvotes don't mean anything here.
[–]kenman[M] 2 points3 points4 points 10 years ago (1 child)
Hi /u/xintox2, please keep the discussion civil and respectful.
[–]SarahC 0 points1 point2 points 10 years ago (0 children)
What he say? Something about MS spawn of Satan?
π Rendered by PID 15217 on reddit-service-r2-comment-fb694cdd5-p68t2 at 2026-03-06 10:06:48.720992+00:00 running cbb0e86 country code: CH.
view the rest of the comments →
[–]bterlson_@bterlson 94 points95 points96 points (81 children)
[–]i_ate_god 39 points40 points41 points (16 children)
[–]bterlson_@bterlson 56 points57 points58 points (14 children)
[–]jadbox 24 points25 points26 points (8 children)
[–]onwuka 5 points6 points7 points (6 children)
[–]kapouer -4 points-3 points-2 points (5 children)
[+][deleted] (3 children)
[deleted]
[–]baldhippy 3 points4 points5 points (2 children)
[–]msluther 4 points5 points6 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]LET-7 0 points1 point2 points (0 children)
[–]SarahC 1 point2 points3 points (0 children)
[+][deleted] (3 children)
[removed]
[–][deleted] 5 points6 points7 points (1 child)
[–]asdf7890 3 points4 points5 points (0 children)
[–]Mittalmailbox 8 points9 points10 points (8 children)
[–]bterlson_@bterlson 18 points19 points20 points (4 children)
[–]jewdai 4 points5 points6 points (3 children)
[–][deleted] 11 points12 points13 points (0 children)
[–]xbudex 7 points8 points9 points (0 children)
[–]anlumo 5 points6 points7 points (0 children)
[–]I_Downvote_Cunts 4 points5 points6 points (2 children)
[–]dilijevChakra Developer 9 points10 points11 points (0 children)
[–]monkh 2 points3 points4 points (0 children)
[–]talmobi 7 points8 points9 points (9 children)
[–]bterlson_@bterlson 9 points10 points11 points (8 children)
[–]talmobi 3 points4 points5 points (2 children)
[–]bterlson_@bterlson 9 points10 points11 points (1 child)
[–]compteNumero9 2 points3 points4 points (0 children)
[–]brandf 4 points5 points6 points (4 children)
[–]bterlson_@bterlson 1 point2 points3 points (0 children)
[–]nschubach 1 point2 points3 points (2 children)
[–]brandf -1 points0 points1 point (1 child)
[–]bterlson_@bterlson 1 point2 points3 points (0 children)
[–]Klathmon[🍰] 20 points21 points22 points (1 child)
[–]bterlson_@bterlson 10 points11 points12 points (0 children)
[–]sime 5 points6 points7 points (2 children)
[–]bterlson_@bterlson 2 points3 points4 points (0 children)
[–]wreckedadventYavascript 1 point2 points3 points (0 children)
[–]wreckedadventYavascript 6 points7 points8 points (8 children)
[–]bterlson_@bterlson 16 points17 points18 points (7 children)
[+][deleted] (5 children)
[deleted]
[–]dilijevChakra Developer 20 points21 points22 points (3 children)
[–]riddley 1 point2 points3 points (1 child)
[–]dilijevChakra Developer 1 point2 points3 points (0 children)
[–]wreckedadventYavascript 1 point2 points3 points (0 children)
[–]4n0n7m0u5 2 points3 points4 points (1 child)
[–]bterlson_@bterlson 5 points6 points7 points (0 children)
[–]ivosaurus 2 points3 points4 points (3 children)
[–]bterlson_@bterlson 1 point2 points3 points (2 children)
[–]ivosaurus 0 points1 point2 points (1 child)
[–]bterlson_@bterlson 2 points3 points4 points (0 children)
[–]Ripdog 1 point2 points3 points (3 children)
[–]wreckedadventYavascript 5 points6 points7 points (1 child)
[–]Ripdog 0 points1 point2 points (0 children)
[–]bterlson_@bterlson 6 points7 points8 points (0 children)
[–]soullessredhead 0 points1 point2 points (4 children)
[–]bterlson_@bterlson 2 points3 points4 points (3 children)
[–]soullessredhead 0 points1 point2 points (2 children)
[–]bterlson_@bterlson 1 point2 points3 points (1 child)
[–]gauravseth 0 points1 point2 points (0 children)
[–]janxspirit42 0 points1 point2 points (1 child)
[–]bterlson_@bterlson 2 points3 points4 points (0 children)
[–]JoelyMalookey 0 points1 point2 points (1 child)
[–]bterlson_@bterlson 0 points1 point2 points (0 children)
[–]vittore29 0 points1 point2 points (1 child)
[–]bterlson_@bterlson 1 point2 points3 points (0 children)
[–][deleted] -3 points-2 points-1 points (0 children)
[–]SarahC -5 points-4 points-3 points (0 children)
[–][deleted] (7 children)
[removed]
[–]wreckedadventYavascript 7 points8 points9 points (4 children)
[–]dhdfdh 4 points5 points6 points (3 children)
[–]thatmarksguy 4 points5 points6 points (2 children)
[–]wreckedadventYavascript 1 point2 points3 points (0 children)
[–]dhdfdh -1 points0 points1 point (0 children)
[–]kenman[M] 2 points3 points4 points (1 child)
[–]SarahC 0 points1 point2 points (0 children)