
JavaScript performance, WebAssembly, and Shared Memory in Microsoft Edge - hellojs
https://blogs.windows.com/msedgedev/2017/04/20/improved-javascript-performance-webassembly-shared-memory/#LhwGh0LB9MRs3RHG.97
======
srikz
Great improvements! I also notice that Edge is more stable now and doesn't
freeze as much as before (still happens).

Also, I am not sure if it is Google breaking standards or if some feature not
interpreted correctly in Edge but, Gmail still has some bugs on Edge (e.g.,
keyboard shortcut to add label doesn't automatically get the textbox in focus.
In previous version, the text would be printed outside the box)

I hope more sites test on Edge and not just on Chrome.

Congrats to the team! Hope to see Edge decouple from Windows releases soon (as
announced during Windows 10 launch)!

~~~
josteink
> I hope more sites test on Edge and not just on Chrome.

"Look for your friends, but trust not to hope. It has forsaken these lands."

Seriously. I use Firefox as my main browser and I'm at the point where I'm
surprised if anyone tests anything in anything except Chrome, or if they even
realize such test-targets exist at all.

Standard response to bug-reports? "Just use Chrome. Works for me!", "It's just
Firefox. Low importance." Etc.

From the glory days of web-standards following IE's demise, this profession
has sunk gutter low.

~~~
Analemma_
Yeah. It boggles my mind how quickly and totally the amnesia has set in; where
the same crowd who vilified IE and the web monoculture it created is perfectly
fine with "Just use Chrome" as a solution. I've seen people seriously claim
that every browser should use WebKit and all the other rendering engines
should be thrown out, and that this would be "for the good of the web". What?!

~~~
jhpriestley
This would leave the browser world with one high-quality, open-source
implementation as the de facto standard.

I don't think this is so self-evidently awful. There are a number of big open-
source projects in this sort of position, like git, TeX, linux, GHC.

What is special about browsers that we need multiple competing implementations
of the standard?

~~~
pcwalton
Because defining the Web as a legacy pile of mostly sequential C++ code dating
back to the '90s is not a forward-thinking idea.

Is your position that Blink's architecture is well suited for getting
performance out of modern hardware? Or that C++ is a good foundation on which
to build some of the most security-critical software on the planet?

~~~
derefr
I don't think it matters what the particular engine everyone gets stuck with
is. The argument is more that forcing _everyone_ to use it, means that
_everyone_ now has an incentive to refactor it into something nice.

Consider where OpenGL would be right now, if DirectX never came into
existence, and so all the people who _would have_ been off contributing
happily to DirectX, had instead been banging the OpenGL standard into better
shape.

When we have "enclaves" like DirectX, we have developers who are perfectly
content because their little corner of the ecosystem works _for them_ , for
their use-case—even if, somewhere else, a ton of people who _can 't_ (for
whatever reason) work inside that enclave are suffering, for reasons that
person could totally help with if they cared about what happens outside of the
enclave.

Merging everyone's efforts into one big project, wouldn't mean that the
project would be _good_ (at least at the beginning.) It would just mean that
everyone would be forced to take all their corner-case solutions for their
use-cases from _their_ enclaves, and bring them out into the open where
_everyone_ can benefit from them.

~~~
pcwalton
OpenGL is a standard, not an implementation! Imagine if were all stuck with
SGI's implementation of GL instead of having it be a standard that the
industry could create unique hardware implementations of. Would SGI have
willingly collaborated with 3dfx on the Voodoo? Not likely--instead, 3dfx
implemented a subset of the _de facto_ GL standard, called it Glide, and
created the entire PC GPU market in one fell swoop.

OpenGL is actually a great argument for the importance of multiple
implementations--thanks for suggesting it :)

> everyone now has an incentive to refactor it into something nice.

My proposal to "refactor" Blink would be to completely redesign the layout
system from the ground up to be parallel and to write as much as possible in
Rust and JS in order to improve security. After working in this space for
years, I've become increasingly convinced that this is what is needed in order
for the Web to steal the performance crown from native, while simultaneously
driving security forward.

Do you honestly think Google would be likely to collaborate on that?

~~~
derefr
I don't see it. My point doesn't change between talking about "a standard",
and talking about "a FOSS project with open committee-based maintainership"
(like e.g. ASF projects are.) It's stone soup: you'd _start off with_ a
worthless project—but if that pile of crap has to "feed the whole town",
people are going to turn it into something worthwhile.

Eventually, in such an effort, there would probably be zero lines of code from
the original project left. That's okay! It was there to bootstrap the project
and inspire contributions, not to _be good code_.

> My proposal to "refactor" Blink would be to completely redesign the layout
> system from the ground up to be parallel and to write as much as possible in
> Rust in order to improve security. Do you think Google would be likely to
> collaborate on that?

Keep in mind that, if there really _was_ just one impl that everyone used,
there'd be more than one megacorp influencing it; Google would have no more
say than anyone else, and would probably be "at arms' length" from the
maintainership in the same way e.g. Apple is with Webkit. If Google didn't
like an idea, but some other corp (e.g. Mozilla) did, sponsorship would still
happen, code would still get written, and things would still change.

See: the Linux kernel.

~~~
pcwalton
> Eventually, in such an effort, there would probably be zero lines of code
> from the original project left. That's okay! It was there to bootstrap the
> project and inspire contributions, not to be good code.

The Web doesn't need "bootstrapping" and "inspiring contributions". It's 20
years old!

> Keep in mind that, if there really was just one impl that everyone used,
> there'd be more than one megacorp influencing it; Google would have no more
> say than anyone else, and would probably be "at arms' length" from the
> maintainership in the same way e.g. Apple is with Webkit. If Google didn't
> like an idea, but some other corp (e.g. Mozilla) did, sponsorship would
> still happen, code would still get written, and things would still change.

No, the organization that didn't like the change would fork the project. This
_already happened_ with WebKit!

> See: the Linux kernel.

Linux gets forked over and over and over again, every time some organization
wants to ship a device running it.

~~~
derefr
> No, the organization that didn't like the change would fork the project.
> This already happened with WebKit!

Er, this whole thought exercise is about what would happen if it was literally
impossible to fork the project. If everyone _was forced to_ work on one
implementation, full-stop, no takesie-backsies. (I'm imagining aliens from the
Culture holding guns to our heads.)

It's a very _implausible_ thought-exercise, yes, but if you're playing along,
you can't challenge the axioms. (It's like one of those "how would a One World
Government work" discussions: saying "there could never be one" is beside the
point.)

------
masterleep
It's unfortunate that IE 11 is still in such widespread use compared to Edge.
Looks like IE 11 will be the boat anchor for web tech for a couple years at
least.

~~~
lucasmullens
There's a light at the end of the tunnel. Once IE 11 is mostly gone, everyone
will be on an 'evergreen' browser that auto updates. Once we're there, new
features won't take 10 years to be usable.

~~~
vmasto
Unfortunately, I don't think it's fair to call Edge evergreen. Updates to Edge
come via OS updates, which can be quite a hassle and many corporate
environments might not perform at a regular basis.

This article goes into more depth: [https://www.scirra.com/blog/173/just-how-
evergreen-is-micros...](https://www.scirra.com/blog/173/just-how-evergreen-is-
microsoft-edge)

~~~
Vinnl
And the same holds true for Safari (and other browsers) on iOS, I'm afraid.
Then again, that probably won't be a matter of decades any more.

------
romanovcode
What I really wish is for them to make decent developer tools. Other than that
I love Edge!

~~~
nozzlegear
Just curious, what would you like to see improved? Personally, I'd like dev
tools to be more reliable/stable. Seems like half the time I use them in Edge
they just randomly crash, freeze up, slow the entire browser to a crawl, or
the network tab stops working with some obscure message until the next system
reboot.

(I ask as somebody that is unaffiliated with Microsoft, but uses Edge as the
daily driver.)

~~~
romanovcode
Performance and ease of use.

\- The tabs are way too small

\- The console input is super awkward

\- HTML element viewer could show registered events (like Firefox does)

\- It can be better looking

------
mtycholaz
Better performance is always good. Excited for shared memory to come to
JavaScript.

------
sqeaky
It is cool reading about the algorithms they introduced, and they are clever,
but I am curious about how much of a difference they made. Are they any
benchmarks to go with this?

------
themihai
Great to see WASM!

------
manigandham
Why is this still tied to OS releases?

------
lorenzosnap
really really amazing

