Hacker News new | past | comments | ask | show | jobs | submit login
JavaScript Performance Updates in Microsoft Edge and Chakra (windows.com)
143 points by hellojs on June 22, 2016 | hide | past | favorite | 50 comments



I think the biggest reason why this is important to most people isn't the performance of JS in IE/Edge, but rather for the native html/js apps. A lot of people don't realize that a lot of the new windows 10 features were written in html/js. Native components like the start menu are all html5 (one of the few things for windows desktop that I helped ship).

Curious to see if more of the UI gets converted over as performance continues to improve.


The Win10 startmenu is coded in C++ with XAML. A few months ago, the proud dev mentioned it here on HN - he mentioned he was proud how responsive the layout is. A HTML5 responsive design page would be have a more responsive layout reflow and won't fill that static.


It certainly does not feel fast at all. As far as I remember start menus were instant. Now it is not.

Much better than those monstrosity at windows 8 though.


As far as I can tell, the Start menu in Windows 10 is XAML, not HTML.


Care to elaborate on the start menu?

I couldn't find any info the start menu being html5, maybe I understood that incorrectly.

I'd love to read more about that maybe a blog or article. Thanks.


It might not be obvious but a lot of the 98/XP shell was html/js in disguise. And even before that, 95a had active desktop IIRC. Progress.


Wow, it's really HTML? That seems crazy to me, for performance and customisability (on Microsoft's end) reasons. Can you share the motivation behind that? Since the Start Menu is obviously not something that needs to be multiplatform, it doesn't require that strength of HTML.


Oh that's why it's so slow.


I very much doubt that, given the presentations at Build about the start menu features.


> a few recent Chakra improvements coming up in the Windows 10 Anniversary Update

As much as I am happy about Microsoft's decision to join the evergreen movement, I'd be even happier if they did not attach browser updates to OS updates. Considering how reluctant people about updating their OS, it kind of defeats the purpose of evergreen when it takes months for people to move to a new version. For example, accroding to StatsCounter[1] Edge 13 is used on 2.5% of desktops while Edge 12 is still on 0.25%, that's like 1 in 10 users of Edge is stuck on an outdated version.

>Deferred parsing for event-handlers

Nice, though, it's funny how we have invested so much into libraries and coding practices that minimize the amount of DOM event-handlers to finally side-step the issue by deferring their parsing.

>The results below show Microsoft Edge continuing to lead both benchmarks.

For about a week until the next version of Chrome or Firefox beats the numbers and announces that they are "continuing to lead".

[1] http://gs.statcounter.com/#desktop-browser_version_partially...


Im really happy microsoft is investing such energy, pride and desire in their web browser. Its almost a fairy tale, a company infamously creating their own standards, lagging way behind and creating whole new browsers to go along with the real product (operating system) into the bleeding edge of speed and hopefully standards.

That being said, I still wonder whats behind it. Whether its so artists and proffessionals view microsoft as a standard, so that more servers run on chakra) or an attempt to gain control of market share so they can also be a part of the info selling market. Regardless, Im happy they are on board


Google controlling a huge amount of the browser market share is a big threat to Microsoft.

Chrome defaulting to Google for searching is is huge defensive play for search in the long term. And probably a huge money maker to boot.

Google is also able to leverage the web platform for their own benefit. Witness the recent announcement about Instant Android Apps; they are selling a future where ordinary links and URLs actually lead to a proprietary native Android experience. This is only possible because they own the browser and the OS. They're kneecapping the web to compete with iOS.


How does this differ from any other file hosted on the web? I could make an address that just serves a .exe file, but people wouldn't say that Microsoft is kneecapping the web because of it.


A browser doesn't download, install and execute that file though. Check out the GIFs on their announcement[1]. They show a Google search result page linking to a URL that seemlessly takes the user to a platform specific binary.

I expect that they'll give Instant Apps higher ranking. It's what they did with Google+ profiles and AMP pages. If Google gives people better SEO by converting their pages to native apps then that's a huge carrot for businesses to move their development to this platform. And the web is going to be made a second class citizen, even in the browser.

Google wins because they have companies and consumers locked into their ecosystem. Apple and Microsoft lose because they can't run Instant Apps like they can with web apps. Consumers lose because they're locked into Android.

If Microsoft were doing this it would be viewed with skepticism and labeled "Embrace, extend, extinguish". I think that eventually we're going to realize that having a single company control the world's most popular OS, most popular browser and most popular entry point to the web is a not a good place to be in.

1. http://android-developers.blogspot.com/2016/05/android-insta...


Microsoft had this since .NET Framework 2. It was called ClickOnce. It went nowhere.

https://en.wikipedia.org/wiki/ClickOnce


Click once sucked and was anything but.

I use Papercut as a little SMTP server for local dev on windows which uses ClickOnce, the install + update processes are painful, even worse than Adobe Flash Builder.

I just ran it, it updated needing 2 clicks and over 4 different popups shown.

It's an invasive, noisy, ugly, tech that was put to shame by Chrome's update tech.

So it's not worth comparing.


I think you are been a little uncharitable to poor Clickonce. Clickonce came out a number of years before Chrome and at the time its simple publish model, automatic update detection, and incremental updates were light years ahead of the other clunky Window installers of the time.


It is a common deployment solution in most enterprise shops that deploy internal software.

At least the ones I worked on.


Apple could fix this any time they wanted to by charging less ridiculous prices for their phones. This is what you get when your market share is so low you can no longer dictate platform trends.


I too am happy that they are doing it, but they are perpetuating the notion that its rare and special for them by promoting updates as news instead of just quietly doing it 2x a month like firefox and chrome.


I havent heard anything more about node being ported to use chakra - I think they were targeting a pr by summer, is that still happening? Would love to see some of this performance competition on the server side as well.

Edit: looks like the pr ran into some opposition but im not sure what the final status is, ill have to read it again later when im not on mobile. https://github.com/nodejs/node/pull/4765


[I work on the Chakra team] So yes, for now Node-ChakraCore repo is accepted as part of the Node.js foundation and is being kept up to date with the master. We are also collaborating with several Node core members in order to carefully understand and plan the best way to bring it to the mainline. This effort is called VM Neutrality (or Multi-VM) for Node. You can find out more about this here https://github.com/nodejs/vm


I thought this had been forgotten. Great news, thank you for sharing.


This is awesome!


See https://github.com/nodejs/node-chakracore

It is not considered an official port, but the repo lives in the Node organization.


Not so much opposition so much as technically issues that mean it needs to be carefully worked on with an eye to integration.

It'll happen - but it requires careful planning and maintenance so it doesn't make everything worse.


This definitely seems neat, but is it really necessary?

If you're doing CPU bound tasks with Node in the first place, you're doing something wrong. I can't see the tiny edge in performance being worthwhile for the headaches it may cause.


I won't use Edge, since I perefer to use the same software on different platforms and Edge is Windows only.

But as a web developer, I think the Edge is awesome!

They even work on fully supporting "progressive web apps" (manifest etc.), which makes suchs apps first class citizens on Windows (Mobile) and XBox.

I'm already using this feature heavily on Android and it saved me from a bunch of native apps.


Great to see MS doing this. To be honest, I'm amazed they haven't been a bigger proponent of web technologies targeted at mobile - Web Push, Service Workers, the whole Progressive Web App. It's clear they have an "app problem" on Windows Phone and this would be one way to get more developers on board.


Luckily recently the Edge team announced full commitment to PWA, and all foundational pieces (fetch, service workers, cache etc) are already in development https://medium.com/web-on-the-edge/progressive-web-apps-on-w...


At this point is there really a viable path to daylight for Windows Phone? I don't know a single person who uses one. A few had prior versions a few years ago but all have moved to Android or iPhone by now.


It is concerning to me that WP seems to be dead in the water. I'd wadger that an essential duopoly in mobile platforms is harmful to most people. BB (had a phenomenal start and lost it) and WP (late to the party and then constantly confused once it got to the party) would nicely round out the mobile platform choices.

Honorable mentions go out to FirefoxOS (maybe as viable as WP?), Tizen (OK, maybe that will be in some cars or TVs), and Maemo/Meego/Sailfish (oh how I wish you would have been successful!).

Edit: I guess I forgot about Pocket PC. Maybe MSFT can be considered to be an early starter that lost the picture?


I think MS should open source Windows Phone OS and support more devices to get more developers interested in the OS.


How would open sourcing get people interested if there are no users?


I didn't say people. I said 'developers'.


I just bought Lumia 640. :/ Gonna give it a try. It's still getting Windows 10 mobile so there's that. I think in the long run, WP's success will depend on how easy MSFT can make it for developer to deploy onto it. Xamarin's getting pretty close. I would love to see UWP app be unified with Xamarin.Forms and be called something else. Unified Xamarin App or something.


I have one and I like it but I too am probably going to switch to Android with the next phone I buy (which may be sooner rather than later, since the USB charger seems flaky now!)

The app selection is really, really surprisingly bad. Not just for the popular missing apps (snapchat, etc) but just about anything has a ton of dreck, and if you're lucky one or two functional ones.

I'm pretty surprised at how badly Microsoft has courted app developers on this platform.


> At this point is there really a viable path to daylight for Windows Phone?

Business. If I recall, the NYPD bought a huge load of them for deployment with officers a while back. Is there a viable path to consumer daylight? Nah. But PWA stuff would at least allow business users to get something.


How do they have any advantage over Android or iOS for business?


In many countries it was starting to be the only viable alternative to Android, as many cannot afford iOS devices with pre-paid phones.

However given the current announcements, me and others will have to focus only on Android, it seems.


I think the only thing that It had going for it when I tried it a few years ago myself atleast on the Lumia models was the 42mp camera. I agree with you though, the app selection and the UI design are just huge turnoffs


Surface Phone.


I wish the same effort would be under way to improve space and time complexity of the non-JS parts of browsers. DOM, CSS, Fonts, images, and the list goes on. There's always some webpage which is super slow in one particular browser due to some CSS feature. Usually it's evident in super slow scrolling.


I like how this is a blog post appears to be about 2 code commits (neither of which appear to have any tests btw).

Chakra Core - It's faster than ever! /cheer

I appreciate how the PM gets support for his team though. This post may have been budget justification for happy hour.


> 2 code commits

* Squashing commits works like that.

* Only having to change a few things to achieve a performance gain is a signature of well-designed software.

* The second commit touches nearly 1Kloc.

> any tests

Performance improvements aren't supposed to result in a change of behavior (although tests can be reused for benchmarking/profiling). A large test suite[1] that covers behavior already exists.

[1]: https://github.com/Microsoft/ChakraCore/tree/master/test


I really wish Microsoft would be in the position of Google. They provide excellent technology (Typescript), but have no clout. Google provides atrocious train wrecks (Dart, Go), but has tremendous clout.


Dart is not atrocious. It

* has an excellent VM

* is an okayish language

* has a really well designed standard library.


I now wish we had a Chakra-powered browser for macOS.


Good to know Edge team is more focussed and working on different issues of IE. But Chrome is way to ahead when it comes to be developer friendly or performance or features. I am not sure I will be move away from Chrome anytime soon. Chrome extensions are way ahead. Browser sync is satisfactory in Chrome. IE needs to catch up on this as well.


JavaScript is so '90! Let's see some WebAssembly benchmarks! XD




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: