Improved JavaScript and WebAssembly performance in EdgeHTML 17
blogs.windows.com
blogs.windows.com
A few years ago I'd sound like I'd be tripping on bathsalts but I think it could happen, just a matter of when they choose to do so.
https://github.com/Microsoft/ChakraCore
but I guess what you want is an "Edgeium" equivalent of Edge in the way that Chromium is the full (compilable) OSS version of Chrome.
V8 is great for some things, but it falls down hard on low-resource environments. This is one of the reasons why Electron apps are so greedy, you have to kind of do a lot of fighting with V8 if you don't want it to balloon RAM usage. If you have open RAM sitting around, sometimes V8 will decide to just take it so it can defer garbage collection longer, or so it doesn't need to waste time asking for it in the future. From what I've heard, Chakra is better about those kinds of situations.
I would really like to see a runtime ecosystem for Node and Electron that is as competitive as browsers are. Microsoft is probably in the best position to push that.
There's some potential that with a solid competitor they could open the floodgates and encourage other developers to start building browser runtimes that are optimized for specific scenarios rather than a one-size-fits-all approach.
And if you include Smartphone and Tablet, which has 4 times the user base of PC, Edge has less then 2% of total web market share.
They could made EdgeHTML and Chakra the base for Visual Studio Code, allowing it to have an wider use case, instead of relying on Electron.
"Node.js on ChakraCore" [0] already exists. It is maintained by Microsoft, but lives under the NodeJS organization on GitHub. Instead of reimplementing the Node APIs, they roughly implemented the V8 API layer on top of Chakra (which they call chakrashim) to enable "normal" Node to run. I believe the original use case was to run Node on Windows IoT, but I can't seem to find a source on that currently.
A very cool feature that is enabled by ChakraCore is time travel debugging (i.e. the ability to go backwards when stepping through code), which has worked very well for me so far.
In terms of performance, it does not appear to perform better (or just as good as) V8. The most recent benchmarks I could find are roughly one year old, but have Chakra consistently performing worse than what was at the time a recent V8 version [1].
It would be interesting to see how memory usage compares. MS has benchmarks to compare different engines for Node in the repository, however I am currently not able to run those. Maybe someone can provide current insight?
If you are interested in just testing it out, you can get Node versions built on Chakra from nvs and potentially other Node version managers (see [0]).
[0] https://github.com/nodejs/node-chakracore [1] https://sqreen.github.io/node_engine_bench/?q=eyJ0ZXN0cyI6Wy...
I don't have a problem with Web Browser App, or JS App, or Web App or whatever the tech it is. I have a problem with its UX. And performance and resources is part of UX.
If they could slim down the whole thing by 50 to 80% it wouldn't so much a problem.
These changes all look like they apply to ChakraCore, which is open source and available outside of Windows. I'd be curious to hear what kinds of use-cases people have for using Node Chakra over Node V8.
Edge has become much better since the last major update this spring, however still missing some functionality compared to the other browsers.
I think rendering performance Edge is already on par with it's competitors, I have no problems there. It is the application it self that has some annoyances, the "feeling" of the GUI. It can feel a bit laggy like when creating tabs, moving tabs etc. That needs more work.
My biggest gripe with Edge is that I can't change spell checking language without changing the keyboard layout for the Edge window.
I have no connection to Microsoft. I regularly use Edge, Firefox & Opera.
It actually looks like there are extensions now, but I bet most people don't know that, I didn't.
At work I use Firefox, primarily because it offers containers (useful for testing with different accounts), and the developer tools offer more features and are much more stable.
When doing any kind of web development I do switch to Chrome.
Even though I have the two other browsers installed, I see increasingly little reason to use them.
(The most annoying thing about using Edge is Google's search engine. It displays naggy pop-ups about Chrome, and there doesn't seem to be a way to turn those off. It's not bad enough to make me use Bing, though.)
On Macs, I use Safari. On Linux, I use Firefox. Sticking to OS defaults makes life a bit easier for me, apparently.
I'm working on an in-house Angular application, and he has discovered a lot of compatibility issues that none of our other users have.
Your manager is doing the right thing here - even if you don't agree with his rational. If you don't control the browsers your customers* use then you should be testing your application on as many unique platforms as you can. That is essentially UAT 101.
* "customers" might be external to the company, or your own staff if you're developing an intranet application.
I do appreciate him finding the compatibility issues, but I also find it _cute_ when he discovered issues that no one else ever encountered because of Edge.
What I'm really trying to say is that I've seen a fair number edge cases where Edge is not behaving the same as Chrome or Firefox ;)
You can safely assume most of what you do to get things working there will pretty much be fine in the big browsers too, and it saves a huge headache when you’ve developed solely for Chrome and realise your app is totally broken in other browsers that, let’s be honest, many designers and devs will be too snooty to care about even if their analytics present a valid reason for supporting.
Regarding OS, I am 90% of my time on Windows as development platform.
It also forces Bing down your throat if you select text and open the context menu.
It sometimes closes without any error message (to be fair, some crack-pipe UX-Designers call that a good thing.)
It cannot be configured in detail at all (about:flags; is there anything else?)
Dev-Tools are increadibly slow.
It is basically IE12 with less features because it got a new UI. Although they removed a lot of legacy stuff which I consider a step in the right direction.
Still, bottom line: Bad browser. The internet would be a better place if MS would stop to develop any browser.
I actually think that JS engines are very close to each other and that most performance indicators are a bit lacking if it comes to applicability on real pages.
I have google as default search engine and it shows me google in context menu, I don't have any mentions of bing.
> It sometimes closes without any error message (to be fair, some crack-pipe UX-Designers call that a good thing.) It cannot be configured in detail at all (about:flags; is there anything else?)
Never closed for me, probably happens not so often. Even JavaScript can't do that without my confirmation. Actually I saw the opposite behavior, some tab hanged and even if I closed all tabs, window still remained opened with zero tabs. "Fixed" by pressing "X" on window itself, so not a real problem. I didn't upgrade to Windows 2018 yet, may be they fixed that already.
> Still, bottom line: Bad browser. The internet would be a better place if MS would stop to develop any browser. I actually think that JS engines are very close to each other and that most performance indicators are a bit lacking if it comes to applicability on real pages.
I don't agree. I'm not sure about internals, but UI of Edge is awesome while UI of Internet Explorer is horrible. I like this browser and I would be sad if MS would stop its development. Web needs more different implementations of standards and more competition.
Must be new then. That behaviour is definitely different at least on the semi-annual channel. That is the default for corporate environments I believe. I don't use Edge in private.
And with closing, I meant the browser just crashing. That is the behaviour of many other UWP apps as well. The idea allegedly was to show error information on the next start. Never saw that in action an even MS seems to ignore that.
True, maybe more competition is better but as of yet I don't see Edge as a serious competitor to webkit, chrome or ff.
As for the UI... debatable. Of course a UI is touch-friendly if there are about 3 buttons to configure your browser. The win8 UI was also considered modern. It still wasn't good in most cases.
And honestly it's a perfectly fine browser. Admittedly not better than Chrome (my other 'main' browser) in any way I care about, but also not worse.
As of this week, I want to see how far I can get before I replace it with Linux.
(I am most comfortable with macOS on a laptop or desktop machine, mostly Bash, actually. Been a long time since a Linux laptop, where I used iwm.)
I wish Bash/WSL were better integrated. PowerShell can be amazing but I am not used to it.
Legacy weirdness everywhere.
Edge seems pretty good, with some odd omissions like “Save As...”. You can’t drag files into the browser window to view them — something I wasn’t aware that I cared about until the feature was gone.
I've had a handful of sites work strangely in it, though, which is why I don't use it as my primary browser.
Hundreds of people reported it, Edge team closed the bug as wontfix, working as designed. If that's the design, it's hot garbage.
My partner, however, does uses Edge as following a clean reinstall of Windows 10, we found it was honestly ... good enough. We didn't need to install another browser.
In Firefox I have cookies disabled and selectively whitelist.
That's the only use I have for it so far.
It also has nice features such as the set tabs aside session manager that even retains history and session cookies, and it a nice PDF and ePub reader with support for notes and highlighting with the pen, and Cortana integration. Before Edge, I primarily used Firefox and dabbled with Chrome and Vivaldi.
Edge is on both iOS and Android, and no I don't work for MS, I just value proper modern OS integration and battery efficiency, so that I can use my device as intended.
Something called Edge from Microsoft is available for iOS (where it is a rebranded WebKit) and on Android (where it is a rebranded Blink, IIRC). If you primarily work with Windows 10, Edge makes some sense, otherwise it makes no sense.
On iPhone, by Apple decree, ALL web browsers (including Firefox and Chrome) are rebranded WebKit; However, on Android, Chrome is (mostly) the real chrome and Firefox is (mostly) the real firefox.
> I just value proper modern OS integration and battery efficiency, so that I can use my device as intended.
The only downside to it I see is that you are using Windows 10... I value privacy and control of my devices a little more than 10% of battery efficiency.
Why is it a problem that it uses webkit on iOS and Android? Why reinvent the wheel, when those rendering engines are already optimized for those platforms? The thing I care about is that it supports syncing of settings.
> If you primarily work with Windows 10, Edge makes some sense, otherwise it makes no sense.
If you primarily work with Mac OS, Safari makes some sense, otherwise it makes no sense. Why do I never hear that complaint?
Also, Edge on iOS and Android will soon have a built-in adblocker.
> The only downside to it I see is that you are using Windows 10... I value privacy and control of my devices a little more than 10% of battery efficiency.
Have you ever looked at the privacy controls of Windows? Also the battery efficiency is significantly more than 10%, and try find me an as versatile and user friendly alternative OS for pen capable 2-in-1s, that has better privacy controls.
Yes, but I work on all three desktop OSes, and two mobile OSs; I picked Firefox, which I use everywhere except on iOS (where it does exist, but is not really Firefox, even if it does sync with the rest of the Firefoxen).
> Also, Edge on iOS and Android will soon have a built-in adblocker.
Cool. Firefox already does, and I can also use it on Linux and Mac.
> Have you ever looked at the privacy controls of Windows?
Yes, I have, and they are horrible; Have you?. I cannot stop telemetry or updates (unless LTSB which I can't even get, or enterprise which is too expensive to get for home), I can't get security updates without eveything else that Microsoft decides to bundle even if I did use LTSB or Enterprise. I have no way to verify exactly what Microsoft sends to their servers (and their description is incomplete and out of date, if you care to trust it).
The upgrade-to-windows-10 dark patterns are what you should consider when you think "windows control & privacy".
> Also the battery efficiency is significantly more than 10%,
Not in my experience of Edge vs Firefox, unless things have changed very dramatically in the last few months.
> and try find me a more versatile and user friendly alternative OS for pen capable 2-in-1s, that has better privacy controls.
"versatile" and "user friendly" are very subjective terms; I curse every minute I have to work with Windows after having used a consistently set up linux machine (and even MacOS is a little clunky in comparison). "pen capable 2-in-1" is a very specific requirement that means nothing to me and (I would guess) 95% of the users.
In my biased sample of the world, PCs have gone back to being work devices, and everything else is being done on the phone, with cloud sync bridging the gaps. I know a few people who bought a 2-in-1 but no one uses them except as a laptop except on very very rare occasions.
Where are the telemetry setting again?
No idea about ChromeOS - my chromebook runs Arch ....
But Chrome doesn't and I don't use Linux or Mac, but if I were primarily using a Mac, I would be using Safari. And If I were primarily using ChromeOS, I would be using Chrome.
> I have no way to verify exactly what Microsoft sends to their servers (and their description is incomplete and out of date, if you care to trust it).
https://www.windowscentral.com/how-view-and-manage-diagnosti...
> The upgrade-to-windows-10 dark patterns are what you should consider when you think "windows control & privacy".
How is this a dark pattern? Windows 7 and 8 also have telemetry, but they don't let you view it as conveniently as in Windows 10. Also the OS itself supports more privacy control against 3rd party apps, which should be the biggest concern.
> Not in my experience of Edge vs Firefox, unless things have changed very dramatically in the last few months.
Firefox is among the most resource heavy, on both Windows and Mac OS.
> In my biased sample of the world, PCs have gone back to being work devices, and everything else is being done on the phone, with cloud sync bridging the gaps. I know a few people who bought a 2-in-1 but no one uses them except as a laptop except on very very rare occasions.
I do all my work on a Surface Pro 2-in-1, more than 50% of the time in tablet mode. I also keep a close eye on ChromeOS and iPads, but unless they support most of my software and use-cases, I see no reason to switch from Windows anytime soon.
Seriously? Were you not a windows user three years ago when it started? E.g. from [0] "The most famous example of digital bait and switch was Microsoft’s misguided approach to getting people to upgrade their computers to Windows 10."
Windows 7 and 8 are now just as bad, I do not in any way recommend using them if you value your privacy -- but at the very least, it's possible to turn off all telemetry, or at least it used to be possible when I last allowed updates on my Win7 (now it's firewalled off the world), by avoiding/removing specific updates. And according to the link you provided, "Although you can't completely prevent Microsoft from collecting diagnostic data, ...". Thanks, microsoft! but no thanks, even if you let me view what you are sending 3 years after you started snooping on me.
How exactly does the OS support "privacy controls" against 3rd party apps? Do you remember that its default setup was sharing your WiFi passwords with all of your facebook acquaintances?
> I do all my work on a Surface Pro 2-in-1, more than 50% of the time in tablet mode. I also keep a close eye on ChromeOS and iPads, but unless they support most of my software and use-cases, I see no reason to switch from Windows anytime soon.
As I said, according to my obviously biased sample, you are a niche market. YMMV.
[0] https://darkpatterns.org/types-of-dark-pattern/bait-and-swit...
They got a major upgrade for free with major improvements accross the board, they should be happy.
> And according to the link you provided, "Although you can't completely prevent Microsoft from collecting diagnostic data, ...". Thanks, microsoft! but no thanks, even if you let me view what you are sending 3 years after you started snooping on me.
The basic telemetry is just harmless diagnostic data that's on every modern mainstream OS. MS isn't snooping on you.
> How exactly does the OS support "privacy controls" against 3rd party apps?
https://pixelprivacy.com/resources/windows-privacy-settings/
And even more controls have been added with the recent Spring Update.
> Do you remember that its default setup was sharing your WiFi passwords with all of your facebook acquaintances?
Nonsense, this wasn't the default.
You ask "how is this a dark pattern", I give citation and reference, and your response is "they should be happy?" Seriously?
> The basic telemetry is just harmless diagnostic data that's on every modern mainstream OS. MS isn't snooping on you.
The only modern mainstream OS in which there is no way to turn it off is Windows 10; you can on Android, you can on MacOS, it doesn't even exist on Linux.
Let me decide what's harmless and what isn't, and which updates I want and which I do not. MS is snooping on me, and its worth it a lot to them or they wouldn't be so adamant about doing it.
> https://pixelprivacy.com/resources/windows-privacy-settings/
Did you actually read what you link to? This does not apply to desktop apps. Which are, I guess, 99% of the apps people use out there? Maybe only 95% by now.
> what are you talking about?
https://gizmodo.com/why-the-hell-is-windows-10-sharing-my-wi...
Based on your previous replies, I anticipate an answer of "but they're your contacts, you probably wanted to do that, you should be happy". So, pre-emptively - no. I do not want my passwords shared by default with anyone.
GDPR encodes in law the fact that everything like that must be opt-in, including telemetry and stuff. Unfortunately, it only applies to websites and not to the operating system. But it should.
Yep, Android and ChromeOS would be the first to go.
You can control every facet of your diagnostics in Windows settings, see every bit of data collected about you (both locally and on the cloud), and delete it all.
> Ok, to clear a little bit of this so it’s not a complete freak out. This WiFi Sense has been known about for a while now and has been in various tech preview builds. Plus Windows Phone. Second thing is that WiFi networks are not shared by default. I just checked this on my Surface Pro 3. The WiFi Sense service is indeed enabled by default, but you must specifically pick which of your saved networks get shared. Non of your saved WiFi networks are shared automatically without your knowledge. When you connect to a new network, there will be a check box you can select to share the network after connecting. It is not checked by default. The Outlook, Skype, and Facebook friends are checked by default, but that only means that they are enabled for sharing. You still have to pick which networks are shared first. Also WiFi Sense needs you to grant it permission your Facebook first before any sharing takes place. I hope this clears some of this up a bit. The article made it seem like this is a huge deal to freak out about when it’s really not.
It was changed in later updates, but as rolled out originally, it most definitely shared wifi networks unexpectedly in some configuration (perhpas only on upgrades, not on new installs, I don't remember the exact details -- but there was a wifi breach where I worked at the time in which wifisense turned out to be the culprit without anyone explicitly enabling it). See [0]. Microsoft is playing loose with your data, and has been for the past 5 years at the very least. You may not care, but I do, and your refusal to accept that is simple baffling.
[0] https://threatpost.com/microsoft-quietly-kills-controversial...
Edge being multiplatform was part of that post, so what the commenter said makes sense. There are better options on Android and iOS.
>Have you ever looked at the privacy controls of Windows?
Privacy and control over the device. Both of which are limited in Windows by comparison.
* https://pixelprivacy.com/resources/windows-privacy-settings/
And even more controls have been added with the recent Spring Update.
I naturally did the first steps in the setup process they suggested, and also did some work to get regular system search instead of Cortana, but deleting sticky notes seems excessive.
Admittedly the link I posted goes a bit beyond what's strictly needed, but it captures the spirit of the classic Windows setup. It used to be, you buy a new machine, first thing you do is wipe the pre-installed Windows (and all the crap the machine's seller put on there), hope there's not a rootkit (Lenovo, Sony), then install vanilla Windows, then install your graphics drivers... Now it's wipe the pre-installed Windows Home, go buy Windows Professional and then install that, go through the above link to vanilla-ize it and get rid of the pre-installed crap plus take back control of your privacy and machine behavior, then you're ready to download graphics drivers and so on...
As a gamer with a potato computer I usually close my main browser (>100 tabs) when I game, but I need a browser for statistics. I've tried using Edge with a couple tabs open but it lowers my FPS, while having a secondary profile of Firefox or Chrome with tens of tabs is still fine.
YMMV
That said, Firefox still has the best performance with hundreds of tabs open.
Well, not really. It exists on iOS the same way Chrome and Firefox exist on iOS: as frontends for iOS's WebKit engine.
For instance, on Windows, I usually use Firefox, but I use Edge to view Netflix, as (for whatever reason) Netflix supports Edge's EME pipeline better than the other Windows browsers. That's specific to the browser's innards, not to its skin.
Incidentally, the DefectiveByDesign guys aren't happy about the situation - https://www.defectivebydesign.org/edge-netflix-eme
You're other points are much more interesting though. One of my biggest gripes with the other leading browsers is they often feel "foreign" on your host OS (which isn't Windows in my case, but that is just personal preference).
You keep the engine and the architecture around it but add your own luxuries and niceties.
Edge on iOS and Android will have a built-in adblocker soon.
In fairness, bar the "integrates well" point, any modern browser will do what you've described (where "efficient" can be used to described a number of different performance related matrix).
You mean the same AdBlock Plus that allows selected ads to bypass it so long as you paid them?
Well - for some of us it matters that the rendering engine behaviour and performance characteristics are the same.
No it isn't. According to this independent test not only did Edge lose to Chrome, but it was also wildly inconsistent.
edit: Not business product, azure portal: https://www.youtube.com/watch?v=q4rL_Lnt6kA
1. Decoupling Edge updates from Windows updates for quicker adoption.
2. Custom Elements as the basic feature for Web Components.
This is the opposite strategy that Microsoft adopted with .NET Core, where everything is being moved to smaller, individual packages so they can be updated on their own schedule instead of being tied to the overall framework version.
When I hear about a new feature in Chrome/Firefox, I know I can start incorporating it into my code targeting those browsers immediately because by the time the code goes in production in couple weeks most users will have already updated their browsers. With Edge, I just put such news into "let's come back to it in half a year" box.
MS has been bleeding market share for a long time. The IE to Edge transition basically fragmented their market, destroyed their brand name, and they never really got back the market share they had gotten used to with Edge. Most people I use that actually use windows, have Chrome or Firefox as their main browser. Apple has the same problem with Safari. I only ever use it to download Firefox or Chrome. Mobile browsers are completely dominated by Chrome and Safari. MS killed their mobile platform and basically serves a niche market for people that really want a MS branded platform there. I actually use Firefox on Android and like it a lot but I'm a minority.
IMHO wasm is approaching the point where it will (finally) create a viable ecosystem for languages other than javascript to be used for mainstream web development. MS, is well positioned with their tool chains to take advantage of that. So, not strange to see MS investing there. Though I do think they need to cut their losses and put their money behind either Chrome or Firefox and retire their in house browsers. Edge at this point is not an easy sell. They did the right thing on mobile killing of windows phone and eliminating that as an internal distraction and I don't see them getting away with having any edge only websites these days.
Also there will be new mobile Windows devices very soon. https://www.windowscentral.com/upcoming-microsoft-hardware-w...
Beyond that, I feel people who have chosen Chrome as a browser on Windows will be very hard or impossible to switch because of their browser history, passwords and so forth is saved and carried over across devices.
Browsers are like text editors, opinions and (pardon my French) like assholes, everyone has one, but nobody likes anybody else's...
If Edge truly did become better than Chrome (has a long way to go) then I don't feel like it'd be too difficult to switch.
- V8 team
let addOne = (x) => {x + 1};
That is such a basic syntax error it's unbelievable that whoever wrote it didn't see it, and whoever proofread it didn't see it either.
Just an unneccessary function that neither returns nor mutates something...
This seems little. I wonder if they knew it beforehand and decided it is worth the effort, or overestimated potential memory savings.
> Chakra was able to reduce RegExp bytecode memory in some popular extensions in this release by up to 10%
Same as above. My current total size of ad filter rules is less than 1MB. Even if all of them were RegExps and bytecode representation was few times larger than raw rules, that would be quite insignificant gain.