Hacker News new | past | comments | ask | show | jobs | submit login
The new Microsoft Edge is out of preview (windows.com)
560 points by MikusR 4 months ago | hide | past | web | favorite | 463 comments

Regarding the topic of browser mono-cultures, I was web developer in the post browser war era in the early 2000s where we had a dominant IE6 and a stagnant browser landscape.

It was bad.

Real bad.

But I'm actually fairly positive about MS getting into the chromium landscape and back into the game. Let's face it MS had lost all of its influence in the browser world before dropping IE and making this move. It is a Google/Chrome dominated world at the moment. But by adopting Chromium, MS can "catch up" on a technical level and also wield significant power inside the Chromium project itself. They have money and they have an experienced browser engine engineering team. They will be able to provide some balance to Google in this ecosystem. If push came to shove, forking chromium wouldn't be an idle threat from MS. They will have some power.

On a technical level it looks like a move towards a mono-culture, but politically it looks like a chance at more balance and diversity to me.

I just wish they'd moved to Gecko instead of Chromium.

It's not like Gecko is an inherently inferior engine by any stretch, and it would significantly bolster their marketshare so that developers actually have to test against it.

One huge advantage the Chromium has over Gecko is Google's Security Team (ie Project Zero).

For most users, the web browser is one of the biggest attack surfaces and having arguably the best security team behind the browser engine is a good thing.

Google have certainly done a great job of maximizing the PR benefit from their security researchers. And it’s a great thing they’re doing. But regardless of how well individual companies market their respective security teams, Firefox has a comparable reputation for their browser engine.

Yes some of that might be thanks to PZ, but that’s beside the point, isn’t it?

Choosing Mozilla’s platform would have been better for code diversity, which has its own distinct security benefits.

I can understand value in multiple browsers for experimenting with new things (see Rust integration into Mozilla's engine), but what are the security benefits?

Like if you have 3 different crypto imlpementations, you have times more teams that have to get a thing right. It seems way easier to try and get it right just once.

Perhaps there's a holistic idea of "if one browser has an issue, at least it doesn't affect 100% of them" but given what CVEs look like in reality (often variations of the same attack across multiple programs) it seems like the cost/benefit would not be in our favor

Multiple implementations is a great way to highlight issues in the spec vs reality (assumptions, unspecified behavior, etc). If you only have one implementation, the implementation becomes the spec and you end up with people targeting compatibility for that rather than a specification.

This happened with Cisco routers back in the day, Juniper had to add a flag to make a routing protocol compatible with Cisco because Cisco implemented it wrong but had so much dominance that Juniper had no choice if they wanted to get in the game.

> what are the security benefits?

Not everyone gets hit with every attack. Biological systems work this way too.

The biggest security benefit is that competition motivates everyone to work harder, to explore alternative solutions, to raise expectations. Competition means investing in ideas like Rust and Servo.

Without serious competition you eventually get IE6.

This is flatly not true. Just dig through the CVEs and you'll see while they have a similar number of bugs Chrome's are mostly in the harmless category (browser got DOSed) where as Firefox's has had like 10x the bad category (code got executed outside the sandbox).

* Firefox has a comparable reputation for their browser engine.*

Is this really true? someone posted somewhere(can't find it) where it shows Firefox has a worst security record compared to Chrome.

Also, in the past, Firefox was left out from hacking browser competitions because it was to easy to hack.

It's not actually clear that they prioritize their own products all that much. Certainly in regards to Project Zero, it seems the point is that they are detached from the rest of the product teams. (Correct me if I'm wrong)

Outside of the security teams, I think it's actually that Chromium is much better fuzzed and scrutinized. They just have so many more resources, including those for security.

>It's not actually clear that they prioritize their own products all that much. Certainly in regards to Project Zero, it seems the point is that they are detached from the rest of the product teams. (Correct me if I'm wrong)

Most of what I've read relates to Microsoft products - and I'm not saying that Microsoft is better/worse than the rest when it comes to security.

Google is here to protect you from the lovely document reader that they forcibly mutated into a toxic app platform.

So you’d rather live in a world where all the web apps you use every day need to be installed and run with full user permissions?

The web is the safest, most battle-tested sandbox environment to run apps in. It’s so safe that you click random links all day long, running 1000s of apps and never have to worry.

I’ll take web apps over native apps from a security perspective, thank you.

I don't really think this is a problem anymore. It's more that no desktop OS provides secure native execution facilities a la iOS. The web browser was the best solution for sandboxing web applications in 1995-200x, but now CPUs have multiple cores, virtualization extensions, systems with multiple gigabytes of ram, etc.

There are better ways to sandbox applications in 2020.

As an interesting counterpoint, since iOS sideloading became semi-possible around 2014, there have been many more app-based Jailbreaks than Safari-based Jailbreaks.

This is true despite the fact that on iOS, sideloading custom apps without a developer account is extraordinarily inconvenient.

I'm so sorry to respond so late; I would just like to point out "the cloud," and the fact that there have been very few hypervisor escapes. Just because there are more app-based Jailbreaks on iOS has little to do with what is technically possible given the hardware (recent Intel missteps notwithstanding).

Personally, I'd rather live in a world where you could tell a web app from a document before you opened it. No need for apps to be native, but on a different protocol.

Totally. The hell of security issues is what makes IE a terrible product.

I think the biggest reason they went with Chromium/Blink is simply because of market share... most users at this point are using Chrome for better or worse, and MS is going with the safest bet in terms of user compatibility for today's web.

I believe the reason was NodeJS and Electron, wasn’t it? Basically, MS expects NodeJS and especially Electron to become fairly important going forward (MS’s 2 newest and highly successful apps are both Electron based...VS Code and Teams). There is no indication that either of those are moving away from Chromium anytime soon.

The sad thing is that those apps' HTML and JS probably are standards-compliant, so supporting Slack, Teams, VSCode, (Electron) Skype, etc in a Firefox-based version of Electron should be possible and very straightforward - yet it probably won't happen.

What's sad is that Windows 98 fully supported desktop-based HTML+JS apps ("HTA Applications"), with access to native resources (using COM via `new ActiveXObject`) and it works with IE11 still - Microsoft just never pitched it as a serious development platform for some reason. Just imagine what today's world would be like if Microsoft did pitch HTA as a successor to VB6 (instead of the quickly-abandoned WinForms platform, now barely on life-support) (I'm mostly thinking we wouldn't be stuck with excessive memory consumption in Slack, and these apps would be able to use things like native context-menus and accessibility features)

> Just imagine what today's world would be like if Microsoft did pitch HTA

That would have been a security nightmare.

Electron is pretty much the same nightmare anyway. Just because it runs in chromium doesn't mean it preserves the sandbox. All electron apps have full access to your filesystem and os, even from their chromium window context.

Microsoft rightfully decided not to push a garbage app platform. It couldn't know someone else would do so later.

WinForms was never "quickly abandoned" ... MFC has been the defacto standard for Windows UI since Win 3.1

WinForms did not receive any significant updates after .NET Framework 2.0 and Visual Studio 2005 - integration with the new User32 controls added in Windows 7 was only through downloaded optional redistributable DLLs. Ever since the .NET Framework 3.0 (and until UWP) Microsoft was selling WPF as the way to build Windows desktop applications without C/C++.

It's a big reason, for sure. To be able to instantly sync everything over, will mean there will be many, many people switching. It's tied to Edge is built in to Windows. Having Chrome installed will be redundant.

This is exactly the kind of thinking that perpetuates monocultures once they start.

Sadly, that doesn't make it wrong per se, just deeply discouraging. It makes me think we're past the point of no return.

Responding to a reply that was deleted while I was in the process of writing my response:


> I don't see why it's Microsofts responsibility to do whats worse for their products, users and business just to bring some sort of benefit to Mozilla which has awfully mismanaged over the past 10 years or so. The browser monoculture didn't happen over night it happened thanks to years of neglect from the other browser engines. I don't like this situation and don't even use Chrome myself but this is the reality of the web today.

I would wholeheartedly agree with you if Firefox Quantum wasn't so damn good.

I didn't use Firefox for years except for occasionally testing sites. Quantum blew me away in terms of rendering speed; it reminded me of Chrome in the very early days. I know that benchmarks say Chrome is still ever-so-slightly faster, and I can't explain that, but Quantum legitimately feels quicker when I use it. At worst, it's certainly not a downgrade from Chrome.

I do wish Firefox's interface was cleaner—the pocket integration and similar stuff just feels like icky clutter to me—but I've been able to mostly clean it up via about:config tweaks, and none of that's relevant to the rendering engine.

That Firefox managed to do all of this with much more limited resources than Chrome, and despite how many sites nowadays are built to target Chrome specifically... it's seriously impressive. I'd love to see what the engine could do with Microsoft's additional resources behind it.

I think Quantum is smarter about what it prioritizes rendering. Time to complete page load may be slower in Quantum, but Quantum makes sure to display key parts of the page so that it appears to load faster.

Even the guy who literally birthed Firefox (Brendan Eich) picked Chromium for Brave, his new browser.

We started with Gecko in 2015, but it lost on many dimensions in a head to head comparison enumerating gaps vs. Chrome. DRM is just one example. We don't like DRM, but users want Netflix to work, and Google makes WideVine free-as-in-beer; whereas at the time, Mozilla had an Adobe deal that did not extend to non-Firefox Gecko embeddings.

So we switched to chromium/Blink in late 2015. Much later, when I visited Apple in early 2017, a devrel friend asked why we couldn't use WebKit. A WebKit founder in the meeting agreed with me that there was no way for Brave to do so on Windows w/o running out of capital. DRM again was an issue too, without WideVine. Don’t blame startup for not carrying a full engine — that needs deep pockets. While MS does have deep enough pockets, it is starting by using chromium/Blink and slow-forking.

Waterfox (a rebuild) and Basilisk (a hard fork) are based on Firefox, but they have Widevine.

Hey, thanks for everything you've done for open source and open platforms.

The reason you gave here for Brave not choosing Gecko (or WebKit) is interesting – but given Microsoft's deep pockets and tech know-how those reasons don't apply to them.

I think this is a strategic blunder on Microsoft's part and I say this as a Linux user. :)

Microsoft has now warmly embraced Linux – and I think they could have chosen this time to warmly embrace Mozilla. Oh well.

Microsoft was slowly losing browser share with their own engine, felt they needed more web compatibility (including de facto via the WebKit lineage) and extensions sooner. They were not going to play a long game, even if they could afford it. Mozilla may have looked wobbly to them, too.

Didn't see your reply before this, sorry.

I hear what you're saying – but! – a tech giant has to play the long game. The Web is an open (for now) platform and Microsoft, like Apple, like Google, need to have their own web client/server implementation. Makes no sense to be beholden to Google imho.

I'm stunned at how little desktop browser share Edge has (4.6%): https://gs.statcounter.com/browser-market-share/desktop/worl... – however, changing browser engine is not going to change that, is it? I suppose, if Google and Microsoft end up equally and democratically sharing Chromium development then all's well.

Given the recent layoffs at Mozilla it's a pity (in hindsight – for the benefit of the open web) Microsoft didn't back them :(

Anyhow, thanks for the response.

Surely Microsoft has done their homework: researched everything and weigh the pros & cons. This is a big thing and the next step in their browser strategy. We can only guess their reasons, but clearly in their eyes, Chromium codebase is the better choice.

True, but big companies can sometimes make big mistakes, no?

Yeah, but he also designed JavaScript, so...

Considering he designed it in about 10 days, it could have been much worse… and now it’s one of the most popular and important programming languages in the world; go figure: https://spectrum.ieee.org/computing/software/the-top-program...

In 2001, Apple could have picked Gecko but forked KHTML instead to create WebKit/Safari because it was smaller and seemed easier to work with.

It doesn’t change the fact that back in the day, high profile companies picked WebKit—Google, Blackberry, Nokia—for their browsers.

In 2013, Google forked WebKit to make Blink and nowadays, Microsoft, Opera, Brave and others have picked Blink/Chromium for their new browsers.

Even as Mozilla is making great strides with updating its engine (was Gecko; now Quantum), nobody else is going on that trip with them.

KHTML was always designed and positioned as an embeddable browser engine. Mozilla deprecated the embedding of Gecko, so you have to fork and change the whole browser instead of just lifting the engine...

I like JavaScript... it’s very flexible and incredibly expressive. Using c# lately, I just feel shackled

Moving for any modern language you know well to any other modern language will feel like that. You need to spend time learning. It has nothing to do with the what the language is capable of.

"I can code in X so I should be able to jump in to any other language and get to speed instantly." is obviously wrong.

I'm the exact opposite. Having a compiler help you avoid an entire class of bugs is superb.

What can you express in JavaScript which you cant express in C#?

Serialization for one thing. You can work with JSON extremely freely without creating weird serializable classes for every combination of data you might need to work with - eg, no class named "DoodadList" for when you want to de-serialize a JSON list (maybe that's a Unity3D thing?).

You can nest functions nicely and work with closures when it makes sense, if you like that sort of thing.

The async programming model is also really nice to work with.

You also don't need to create classes for every noun, verb, and adjective in your system either - when all you need is a function, you just write a function, not some weird object to hold it.

You also don't have to write a f after all of your decimal values to tell the silly compiler that you mean for 0.25 to be a float. (this one truly does not matter, but there are a lot of little things like this that add up)

I know you can do a lot of that in C#, but its just so effortless in javascript. You just need to be more disciplined about how you code it

You are right about having to create a class to hold a function, that is annoying. But C# do support nested functions and closures. I don't really understand your other points. A literal 0.25 in C# will be parsed as a double precision. If you want it to be a float (less precision) you use the F postfix. But JavaScript doesn't even have the float/double distinction.

What can you express in C# which you cant express in Assembler?

Expressions and functions for example. Assembler is really low level, it doesn't even have control structures. But C# seem to have everything JavaScript has and much more, so I just wondered why the parent post found JavaScript more expressive.

Looping over properties of an object is painful in C#.

Under a 2 week deadline. I challenge you to do better.

Most likely he had been thinking about the project for some time. But the 10-days-execution story sounds much nicer

I joined Netscape on April 3, 1995 but in the server team, due to a temporary requisition shortage. I worked on what would eventually become HTTP 1.1, which we wanted to be more like SPDY or HTTP 2. Therefore I had only spare time to think about what became JS, and I used it to study HyperTalk, Logo, and other languages, not just Scheme or Self.

I finally got transferred to the client team one whole month later, in early May. Then I had ten days to demo-day.

Why do you feel compelled to make up a story? Because it sounds nicer to you to denigrate my work, it seems.

> Why do you feel compelled to make up a story? Because it sounds nicer to you to denigrate my work, it seems.

Because randos on the internet (especially business types) love to make stuff up in the name of puffery and deifying. Legends are rarely true.

Thank you for clarifying.

You are a business type?

Yes, sadly. I'm well aware of our capacity for bullshit and cargo-culting

Not that you need it or anything, but I'd like to thank you for your work on Javascript - without it I might never have gotten started with programming.

So, thank you very much for laying down the foundation for a whole generation of new programmers!

He was... kind of. My understanding is Eich had been thinking for a while about the idea of bringing a version of Scheme into the browser. He was lured to work for Netscape by the promise that yes, he could do this. Unfortunately the business decision came down that the language's syntax had to approximate Java. So the semantics of the language had probably been settled in his mind for quite some time, but the syntax change still makes the 10 days an impressive feat. (And also explains a lot of the weirdness in JavaScript -- you're writing code and expecting it to behave like a C-like, but you're actually kind of writing quasi-Scheme and you don't know it.)

I've spoken and written about the early days, e.g., here:


Friends from SGI recruited me (second attempt) in March 1995, I joined in early April but in the server group. I thought a lot -- but worked too little due to server commitments -- during the month of April, about "the scripting language" which was suggested to be Scheme when I was being recruited, but which by the time I joined could not be Scheme, due to the impending Java deal between Netscape and Sun.

Java meant either no scripting language, or a kid-brother language, which meant C-like syntax, primitive vs. object types as in Java, and other unfortunate consequences.

When I transferred to the client group in early May, I had to produce a demo very quickly. I chose first class functions and (barefly there at first) prototypes as the building blocks. The rest is history.

So it sounds roughly one month of thinking and researching, then 10 days of coding?

That's what I wrote, yeah. With constraints going from "Come do Scheme!" to "make it look like Java" and even "feel like Java" because interop, via what we hoped would come, and did in Netscape 3, as a JS/Java bridge called LiveConnect.

The Belgium Post built a whole web app+service architecture on LiveConnect.

Think of LiveConnect as "Active Scripting" on MS's platform, which enabled Java components to be developed and glued together by JS.


Or they could have open sourced EdgeHTML. It's not like it was worse, than Gecko.

It was worse than Gecko. Gecko is excellent.

Edge still has (had?) so many rendering issues on sites we make. One thing I find really impressive about Firefox, despite the completely different engine I _very_ rarely find FF-specific bugs.

(Perhaps I should have specified "Quantum" rather than "Gecko"? I meant the engine that new Firefox uses, I thought it was still called Gecko but sounds like I might be wrong?)


Many (all?) Oslo postcodes start with 0, and their site truncates the 0 when you try to enter your postcode. Their stated solution was to use Chrome, so they don't get any of my business.

From your description, it sounds like they decided to use a "number" typed field for the post codes. This is of course incorrect, post codes are really just strings. While the bug manifests itself on firefox, it is hard to blame it for implementing the field according to spec [1]. Chrome decided to ignore the spec and leave the field more free-form, which in turn enables developers to use it incorrectly without detecting the compatibility bug.

[1]: https://www.w3.org/TR/html52/sec-forms.html#number-state-typ...

> User agents must not allow the user to set the value to a non-empty string that is not a valid floating-point number. If the user agent provides a user interface for selecting a number, then the value must be set to the best representation of the number representing the user’s selection as a floating-point number.

Notably, this type of issue is exactly why it's important to have more than one implementation of web standards!

If Chrome is your only target, the standard ceases to mean anything. The real standard is just whatever Chrome does.

Open-source IE would be even more interesting to see, mostly because the early versions ran well even on systems with two orders of magnitude less RAM and CPU power than ones today; especially when displaying static pages and not JS-heavy apps. I remember the Firefox of the time was noticeably more sluggish than IE6 and used more RAM, and know quite a few people who tried FF and went back to IE for that reason.

I could just imagine them looking at the (security) horrors of the IE source code, and with a cold sweat, sticking it in the drawer.

> I just wish they'd moved to Gecko instead of Chromium.

The usual answer to that complaint is that Gecko is harder to embed. MDN pages on the subject even mention it’s deprecated and that the documentation is obsolete.

Is this something Mozilla could feasibly improve?

It might not be worth the effort, and instead concentrate on Servo[1].

[1]: https://servo.org/

If you look at long term investments are you confident Gecko will still be around in 10 years? Chromium is the only safe choice they had.

If Microsoft had also gone with Gecko? Yeah, I'm quite confident Gecko would still be around (and maintained by many people other than Microsoft) in a decade.

I think it will be around anyway btw, although I'm perhaps less sure.

I'm a noob web dev working in a small shop that sells a niche SaaS product.

We had a customer push us to support Edge.

The dev team (3 dudes) just looked at eachother and laid down the "No, Firefox or Chrome...".

It's just so much pressure to dance around the "this one does this, that one doesn't" and generally we rarely run into any Firefox and Chrome issues. Edge, just not worth it for a small team.

I'm glad we probabbly can direct them to the new Edge now (after some testing).

What are you using that Edge doesn't support?

We treat Chrome/Safari/Edge/FF all as 1st class browsers and haven't had many problems (aside from Safari lacking U2F and exotic CSS props like motion-path).

A few things I’ve been using without EdgeHTML support: #rgba and #rrggbbaa in CSS, <details>, Custom Elements v1. On my personal website, I have deliberately chosen to no longer polyfill these or change my process to avoid #rgba in the final CSS, so various background colours are missing, the light/dark theme switcher doesn’t collapse (it should start collapsed), and a terminal recording will be missing in an upcoming blog post.

mix-blend-mode is another thing that EdgeHTML doesn’t support that I was using for a bit, but I stopped using it because I kept finding critical bugs with it in Chromium, most notably https://bugs.chromium.org/p/chromium/issues/detail?id=992398 which was impossible to work around, simply stopping rendering the page after 8192px!

A few issues I have run into with Edge:

1. The :focus-within CSS pseudo-class doesn't work

2. object-fit only works on images

3. These SVG loaders don't work: https://samherbert.net/svg-loaders/

Damn, lacking :focus-within is a big one. That pseudo-selector is very useful when creating custom widgets.

Been tacitly supporting Edge myself, but drew a hard line at IE (even 11) for current projects. Without async functions, promises etc, it's just too much extra boilerplate, a separate build setup and a huge payload just to support IE11, let alone older.

I'll be glad if/when Edge (blink) is deployed with a windows update.. the sooner the better, as far as I'm concerned.

> Been tacitly supporting Edge myself, but drew a hard line at IE (even 11) for current projects. Without async functions, promises etc, it's just too much extra boilerplate, a separate build setup and a huge payload just to support IE11, let alone older.

We've been using TypeScript for all scripts longer than ~20 lines for years - so we got async functions for free (it compiles async/await TypeScript functions to IE11-compatible ES5 just fine).

Why force all your users to download transpiled ES5, just to accommodate IE11 dinosaurs?

Not to mention all the issues you'll have if you try to use CSS Flex or Grid.

Support IE11 only if you absolutely must, is my advice, and do that with differential serving: https://philipwalton.com/articles/deploying-es2015-code-in-p...


Agreed, but I'd just assume avoid dual builds and targets at this point... a project I'm working on started with IE11 support and dual build targets, but broke in IE11 about 3 weeks in, so changed the "legacy" build mode to a page noting the requirement for a modern and secure browser.

TypeScript does NOT shim async functions[1] for you, or give you fetch-api[2]? AFAIK, if you want that functionality, you still need babel and the fills/transforms to support async in browsers without it are freakishly huge payloads. That doesn't count dynamic imports and a number of other features that TypeScript doesn't support.

I'd rather not support a dead browser, that's been dead for years now, that has clear replacements and alternatives. Not to mention security concerns above and beyond development pain..

    [1] https://caniuse.com/#feat=async-functions
    [2] https://caniuse.com/#feat=fetch

TypeScript does shim async functions, you just need to supply your own `Promise<T>` polyfill ( https://mariusschulz.com/blog/compiling-async-await-to-es3-e... ). `fetch` also works fine with a third-party polyfill. Combined, that's about 30KiB extra compared to pure ES6 (before GZip).

Thank you for pointing this out... I just know I've come across quite a few features of EScurrent/next that weren't supported in typescript and found the experience a bit irritating to do both babel and ts (and webpack).

Just out of curiosity, why not use a conditional polyfill using nomodule rather than outright breaking on something like IE11? Because we use nomodule, the script tag will be ignored by modern browsers, while IE will fetch the polyfill. polyfill.io serves this request, and we have it include all the polyfills we require (for our use case, we just request the default plus es2015-16-17-18, plus fetch).

The beauty of the approach is that the big pollyfill payloads are only borne by the users who choose (or likely are forced by employers) to use those browser versions.

To be fair, Edge has a good feature support (check caniuse.com). It would be interesting to know what the exact issues your app has with the browser. Otherwise it sounds more like your devs like to use some vendor-specific hacks and blame Edge for it. I know there are some Flexbox things to consider, but nothing a small team can't handle.

IE11 is another story, though.

I'd also be curious to know what features that Edge doesn't support. I know it doesn't do everything Chrome does, but I haven't run into any scenarios that Edge didn't support in a long time.

It's a pet peeve of mine that apps don't support Edge/Trident, Vivaldi, etc. It's easier to write cross-browser code than ever, but it seems like we're in the process of reverting back to the bad old days when IE6 was the only browser people supported, but it's Chrome now instead of IE.

IE6 was closed source and only ran on Windows... Chromium/Blink run cross platform, open source and already 2 forks in. There's some stark contrast, even if it's more of a mono-culture, it's nothing like the IE6 days, even if google does have more power/control than other stakeholders.

IE had a mac version, but it died due to lack of interest/support

The Mac version had a completely different, incompatible, renderer (which was actually better than the Windows one from a standards perspective) https://en.wikipedia.org/wiki/Tasman_(layout_engine)

IIRC, the mac version never got an IE6 release, it was 5.x...

It really is getting bad. I use Opera as my 'daily driver' for work, and I get warnings on sites at least weekly where the site will either complain like I'm using some dangerous outdated software, or just plain refuse to work, nevermind the fact that Opera actually uses regular old Blink. Present-day Opera is just a minor reskin of Chromium - and I think Vivaldi is Blink too, right?

People are literally doing User Agent Sniffing again, and even though these browsers carefully craft their UA string to pass naive checks, the sniffers are hacking around that and urging me to "Download Chrome" to use a website.

Notable Offenders: Google Hangouts, and banks. Not impressed, Google.

Has issue in not printing PDFs correctly. Namely changing text, swapping out fonts and other issues.

Yeah, IE needs odd custom CSS designed for accessibility, to make up for the mountains of missing CSS spec in it. And forget it if you use flex.

Last time I was doing web dev (maybe 2 years ago), I worked primarily in Firefox and Safari. Chrome presented more issues for me than Edge ever did. I don't think I ever had anything work in Chrome, and fail in Edge.

I lived through the IE6 years, so I was never thrilled with any version of IE I had to support, but Edge was actually a good browser. Strange UI, solid engine.

Strange UI, solid engine

...and that's one of the reasons everyone hates Edge. I'm a long-time IE user and that stupid dumbed-down UI is absolutely repulsive. If they'd just put the Chromium engine in the normal IE UI I bet they'd get far more users naturally using it.

I'm glad we probabbly can direct them to the new Edge now (after some testing).

I would be surprised if they still want to be a customer.

>Edge, just not worth it for a small team.

I just can't get behind this lazy "small team" excuse; it's really unnecessary hubris.

I worked on a "small team" of 1 (just myself - I was the only dev) for several years on an enterprise webapp. The kind that does complicated stuff - not a simple CRUD app. [Sidenote: I would have killed for a team of three!!] Yet I supported Edge since the day it came out and never dropped support of IE. In fact, I even supported old versions of IE (7 and up) until the day Microsoft EOLed older version of IE (that was January 12th, 2016, FWIW). It honestly isn't very hard these days. Annoying sometimes, yes, but not difficult.

I don't want to get into technical details except to say some of what we support are/is some legacy stuff customer's use ... that we did not create. It's weird, and faced with the choice of fixing some old products with a lot of unknowns ... and moving customers to something more modern that is more compatible with Edge... we chose the latter.

I suspect the agility of any team is heavily influenced by not just numbers, but tech debt, and other choices.

All future work we do is compatible with Edge, it's not like NOTHING works with Edge, but to say "We support Edge"... customers expect that to mean everything.

Fortunately I don't think we'll have to have that conversation anymore.

Yeah, I worked around technical debt and legacy support too, it goes with the field.

Still not an excuse to alienate your customers who want to use a browser that comes with their OS. Enterprise customers never want to go through the hassle of installing external software company wide just to use your services.

This is a pretty niche area, "enterprise" would be generous to call these customers that even if it technically fits. It's a surprisingly small ask to have them install a browser.

Lots of customers still on Windows 7... that's bad, but we can't change that.

> We had a customer push us to support Edge.

Why though?

Many company's IT departments don't find it worth downloading, supporting, and updating external applications just to access the web when the OS provides that functionality out of the box. You could argue that's "wrong," but that doesn't change reality. I even had a government customer remove IE, clicking on the IE icon launched Edge.

Because in many large companies, it's IE or Edge. If the company has upgraded to Win10, you're probably required to support Edge.

Yeah it would be interesting to hear of the feature that Edge could not support.

I'm having to fix an issue where a user's workstation uses edge to print PDFs. It is bad at it, it swaps out embedded fonts (random ones) and changes some text. A known issue.

Chromium is open source, Microsoft has published most of their interesting work on Chromium itself. A monoculture is a big problem if the alternative is to write a new browser to compete, less so if you can just fork and have the same start line.

Well they could have picked up one of the other less-dominate browser engines. WebKit and Firefox are good starting points, and both could use the extra help maintaining their open-source core.

I get that they wanted to use the same browser as Electron, now that they own it...it just sucks.

The general quality of Firefox is worse, the tooling is more fiddly, some of it is written in languages which are not as familiar to Microsoft, it is considerably less straightforward to customize; and on top of this, performance is similar at best. Chromium has an architecture which lends itself to deep integration, and the default UI is much closer to Microsoft's own designs.

> WebKit and Firefox are good starting points, and both could use the extra help maintaining their open-source core.

If Firefox needs "help" from a big boy like Microsoft, it is probably the worse starting point. If WebKit is a good starting point, why is Blink worse? Chromium is more than Blink, and means that the moment Microsoft started with Chromium, they were already close to done. Whereas with WebKit, they would still have to build and test a shell.

It doesn't suck.

What is Microsoft hoping to achieve? "Starting point" for what?

Is MS foolish enough to believe they can have influence on the evolution of the web through github.com/google/chromium pull requests?

Alternatively, has MS has given up? Perhaps they are content to rebrand Chrome and collect the bing.com seignorage from new Windows installs.

Unless they fork, it's either naïveté or negotiated surrender.

> Is MS foolish enough to believe they can have influence on the evolution of the web through github.com/google/chromium pull requests?

I mean, "influencing the web" or otherwise, they accept heaps and heaps of patches that aren't about their core business. The Chromium project is really healthy.

> Unless they fork, it's either naïveté or negotiated surrender.

They can fork, but they probably won't need to. Even if they wanted to maintain an entirely separate shell, it is basically trivial to link such a thing in to Chromium.

That of course is personal conjecture, of which mine is the exact opposite.

> If push came to shove, forking chromium wouldn't be an idle threat from MS

Can almost guarantee this will happen in 2-5 years.

Given Microsoft's history, I don't see Microsoft and Google playing nice for too long.

I also think this will happen. They have very different interests.

Google forked WebKit and it worked out pretty well for them.

I think it will be bad for different reasons. Will Chrome not comply with the spec. Nope because the spec follows what the browsers actually do, and Chrome is the browsers.

Will it have bugs that make the web unusable? Probably not. What makes it bad? The world's biggest ad company is in charge of it, so privacy is at risk.

As more members of WHATWG fork Chromium I think your right that the standard is more like: whatever the dominant fork (Chrome) does.

The spec will comply with Chrome.

Could you elaborate on what made it bad?

I am a web developer too, and for me, the biggest annoyance is feature inconsistency between browsers. Only yesterday, I was cursing under my breath, because webkit-based browsers allow scrollbar styling, but firefox doesn't. In our org, we have embraced CSS grid, but by doing so, made a conscious decision to finally ignore IE11 (rather than to use @supports and write fallback CSS for browsers that are left behind). Even considering the wildly improbable scenario that browser monopoly would lead to feature stagnation - at least you will have a single target with a known set of features to develop against. How can this be worse than what we have now?

In terms of being a platform for applications, the browser landscape today is paradise on earth compared to the hellscape we endured in the early 2000s while trying to develop apps for IE6.

Just focussing on the browser itself:

* Today's developers enjoy a large and rich platform of (relatively) bug free functionality and APIs on which to build. The hellscape had very limited APIs and were riddled with bugs. For a long time IE and the other browsers didn't even agree on how to compute the width/height of an element w.r.t. padding and borders. (CSS box-models did not match!). We spent a lot of time just working around bugs and keeping up to date on the latest work-arounds for all the problems.

* Today's browsers have high performance JS JITs with very few user visible bugs. The hellscape had slow buggy JS implementations. I remember having to unregister event handlers on page unload otherwise the browser would leak memory.

* Today's browsers have excellent debugging tools built in. In the hellscape, if you had a trailing comma in a JS list on IE, it would give an error message (pop up) with either no file and line number or a bogus one. Yes, that bad.

Even when supporting just one browser, development was often a miserable experience. MS had won the browser war and was trying to kill the idea of apps on the web by neglect. It wasn't until Firefox got going that things improved.

> In terms of being a platform for applications, the browser landscape today is paradise on earth compared to the hellscape we endured

I completely agree, but the points that you then make simply show how modern browsers are vastly better than the old ones. I love developing for a modern browser, such as Chrome. I just fail to see how the claim that having competing browser engines that do not have complete feature parity can be in any way considered desirable by web developers. I can understand this argument from end users' perspective (and even then not quite, because remember the days when sites would say that they were "best viewed in Netscape Navigator", or when you could watch Apple keynote presentation on Apple's site only in Safari?), but not from web developer's perspective. Wouldn't a single healthily evolving browser engine be better from web developer's point of view than multiple engines, each with its quirks?

Fair enough. I'll try to tie it back to the mono-culture question.

The primary reason why the hellscape was bad, and remained bad for so long, was because we had a single "winner" of the browser wars. Microsoft won and they immediately tried to strangle the web for years. There were no alternative browsers for a long time to provide some kind of competition which might improve the matter. Sure, we could just test on IE and only support IE, but it was still an awful browser and MS wanted it that way.

The point is that the bad "technical" level situation was sustained by the browser political mono-culture. I'm somewhat positive now about the current situation with MS getting more involved because it will add more diversity to our current political browser situation. This should translate into better results for everyone on all levels, technical, user, privacy (I hope), etc.

So maybe from a pure browser engine point of view there is the same or less diversity, but this situation is very different from the early 2000s one.

Stagnation was the biggest problem. Stagnation is not the problem with Chromium; in fact, it's the opposite, and that's really what's forced Microsoft's hand. They were simply wasting resources playing catch up to Chromium. Why bother?

scrollbar styling flat shouldn't be allowed.

I agree that this is a good thing.

I also called for it to happen over 5.5 years ago:


> It was bad. > Real bad.

Apparently it was not so bad that we needed a multitude of JS to JS compilation stages and instead could just, you know, execute the same JS in the browser that we actually wrote.

Also, MS invented DHTML and AJAX single handedly, against backlash from "pure" web developers.

Please don't argue with others about their experiences and feelings. I was there, and it was intensely bad. I think it's easy to forget how bad it was, even for those who went through it.

Starting mid-2006, I spent almost a year building a full-stack internal SPA for tracking manual and checklist testing at my company. I made the (then brave) decision to target Firefox instead of IE6, which everyone was using at the time - since FF was more standards-compliant.

It was a very good decision in retrospect. But I had to spend 4-5 weeks just getting the front-end to work in IE6. So many HTML/CSS hacks, trying to wrangle the layout engine to do my bidding. Check out the Wikipedia article on the Acid2 test, and the image at the bottom of IE6's rendering, to get an idea how far IE6's layout was from standards: https://en.wikipedia.org/wiki/Acid2

I have published some of my extensions for the new Edge browser on their store [1], the submission experience was straightforward and pleasant, and the extensions were published in a couple of days after manual review. Updates were also reviewed and published in a timely manner.

More importantly, during extension submissions and reviews I did not feel abused as a developer, something which I cannot say about the Chrome Web Store [2][3].

So I am happy that Microsoft has not only renewed their effort in this space, but they're also offering a decent alternative for developers who would rather not deal with Google.

[1] https://microsoftedge.microsoft.com/addons/category/Edge-Ext...

[2] https://github.com/dessant/search-by-image/issues/63

[3] https://github.com/dessant/youtube-autoplay/issues/3

Phrasing it as a dichotomy like that is pretty dishonest, especially how Firefox is twice as popular than Edge [1] and is free open source software that doesn't spy on you.


I think the situation invites that specific comparison because the new Edge is based on Chromium. I didn't read it as leaving out Firefox for any other reason.

Microsoft is replicating the entire browser ecosystem, so developers and users who prefer Chromium are no longer bound to Google. Firefox is my browser of choice, and their reviewer team is wonderful, see my other [1] comment, though all of this is tangential to Firefox.

[1] https://news.ycombinator.com/item?id=22057859

OP didn't mention Safari or Brave either, don't be so hair-trigger looking for offense.

The dichotomy comes up because the new Edge supports Chrome extensions. So it's literally the same code being submitted to both stores, which makes it more of an apples-to-apples comparison.

Firefox and Safari are source compatible with chrome extensions too. Everyone copied Chrome's extension api.

Firefox has the same analytics and browser feedback settings enabled as Chromium, and both have options to disable them.

Because they need developers more than developers need them. If they become as dominant as Apple and Google in their respective spaces, expect your experience to degrade.

Microsoft has always been developer-first, even when they didn't need them, and even during the Ballmer era.

Google has never been about the developer experience, and is quite hostile to developers even when they need them. (See, e.g., Stadia.)

One difference that stands out to me about Microsoft vs Google. Both are very heavy C++ shops. Both have invested in developing tools for enhancing developer productivity on their respective platforms (Windows and Linux). Yes, Linux is not a Google product (thank god) but it is what they build on.

Microsoft's C++ IDE and debugger are the gold standard for productivity and ease of use - everyone who writes native applications for Windows uses Visual Studio. You can try it out for free and the price per developer is very reasonable if you want to publish a paid product.

Google's C++ IDE and debugger are nonexistent. Whatever they've built is kept inside the Googleplex never to see the light of day. From time to time we see the occasional free software reimplementation of some facet of the beast (e.g. Kythe) but I haven't seen something catch on.

In fact, the biggest contributors to developer productivity on Linux have been Microsoft (with Visual Studio Code and the lsp protocol) and Apple (investing in clang led to the development of advanced C++ indexers which were impossible to write using gcc due to Stallman making a conscious decision to not allow it)

Of course there is a good reason for this - Microsoft and Apple make platforms. The easier they make software development, the more developers they get, which leads to more software being written, which leads to more users, which results in profit. Google on the other hand doesn't win by making development easy for others. They're themselves a third party and other developers are competition rather than partners. For Microsoft, the existence of developers outside the company using Microsoft's development tools to create software for Microsoft's platform is a win. For Google, the best case scenario is there being no developers outside Google.

Have you actually tried to use Visual Studio? It's an unusable piece of crap.

The navigation is nearly unusable. Don't focus the project navigation on a tree browser if you're not going to integrate it into the rest of the navigation workflow.

NuGet regularly fails silently to restore packages.

It uses a virtual filesystem that usually maps 1:1 to the actual project folder.. except files created outside of VS are completely invisible to it, unless manually added to the project.

The project/solution files are very verbose and aren't designed to be edited by humans.

The migration path from .NET Framework to .NET Core seems to be "create a new project, copy the files over manually, and copy over your old settings one by one".

Some of these have been fixed for new projects, but there is no option to migrate to the new structure. Except, again, starting over with a new one.

Euh, lol.

You are talking about the biggest architecture change of. Net in 30 years ( going cross platform) and they are still going to support VB 6, WPF,..

Visual studio is actually a very robust IDE. The issue you are mentioning is .net framework project files and if you copy files within or to Visual Studio it will be added. .net framework only wants to add files you want to deploy ( not perfect, but okay).

For migrating to. Net standard 2.0, remove assemblyinfo.cs and change the. Csproj file. You should manually add the Nugget packages again or change it to the new structure. The biggest issue is entity framework though, in a lot of projects. From. Net standard to . Net core is a lot easier.

Seems pretty reasonable to me, updating other things ( eg. Android) have caused more issues than this.

Ps. Navigating is mostly f12 of control+f12

As someone who uses visual studio + code literally every day, I'm not sure what you're referring to with most of these complaints.

The project/solution files are bog standard xml, and well documented, but in general you shouldn't need to touch them.

The migration from framework to core 3.0 is now very simple thanks to xaml support, but it used to be a huge hassle. You can literally just edit the tags in your csproj/fsproj/etc to enable different target frameworks, or you can use the ui [0], and then you'll need to do a nuget reinstall. One command [1].

As for running into bugs, they built bug/feature requests into the visual studio 2019 ide, or you can access it via the website [2]. They are usually very responsive, typically something within a couple of days.

[0] https://stackoverflow.com/questions/57334018/visual-studio-2...

[1] open package manager console, type 'update-package -reinstall'.

[2] https://developercommunity.visualstudio.com

> The project/solution files are bog standard xml, and well documented, but in general you shouldn't need to touch them.

Project files are "bog standard" XML (except for all the weird magic, like variable resolution and conditionals), but solution files are some unholy VB-like abomination.

But regardless, that doesn't help much when the schema is clearly not designed for human editing (incredibly verbose, UUIDs everywhere for references, etc).

> The migration from framework to core 3.0 is now very simple thanks to xaml support, but it used to be a huge hassle.

No idea how a GUI description language is supposed to help you here.

> You can literally just edit the tags in your csproj/fsproj/etc to enable different target frameworks

Didn't work for me.

> or you can use the ui [0], and then you'll need to do a nuget reinstall. One command [1].

Keep in mind that that command is free to update dependencies as it feels like.

I'm so completely not a Windows developer or a C++ developer, but seriously, the experience working with Visual Studio on Windows/C++ when I didn't really know what I was doing - but I had to do undocumented things (I needed to get Haskell to talk to some Windows apis, for which no bindings exist) - was incredible. Second to none. I'm half thinking about changing career direction it was so nice.

1. Navigation: subjective so gonna let that slide. 2. Downright bullshit. You are starting to whine. 3. Subjective but far from something that makes the IDE a "piece of crap" 4. You are starying to sound like you are in the wrong industry. 5. No. Change the .csproj and drop the AssemblyInfo.cs usually work for something that can actually be migrated. If you expect any project that targeted Windows to just migrate to cross platform using a NNF you are an idiot.

At the very least you could have given an example of an IDE that you consider is better. You were just talking out of your arse.

> 1. Navigation: subjective so gonna let that slide.

If you're going to pick a mode of navigation then at least commit to it. It's subjective whether or not any particular choice is good. The quality of the implementation, not so much.

> 2. Downright bullshit. You are starting to whine.

Sorry for wanting a package manager to... manage packages, I guess.

Or maybe it's configured wrong? I guess it's too much to expect two Microsoft tools to work well together..

> 3. Subjective but far from something that makes the IDE a "piece of crap"

Do you never edit your project files from outside the IDE?

> 4. You are starying to sound like you are in the wrong industry.

Compare a typical SBT build definition[0] or Cargo.toml[1] to a typical VS solution[2] or project[3]. Which would you feel the most confident about when modifying by hand?

(Hint: For me, it's definitely not the one that is full of autogenerated cartesian products.)

> 5. No. Change the .csproj and drop the AssemblyInfo.cs usually work for something that can actually be migrated.

So why couldn't Microsoft include a tool for that migration? That seems like table stakes for such a migration project. We're not exactly talking about 2to3[4] or rustfix[5] here...

> If you expect any project that targeted Windows to just migrate to cross platform using a NNF you are an idiot.

Amazing how Microsoft are completely unable to even get close to what the Wine and Mono people did years ago.

> At the very least you could have given an example of an IDE that you consider is better. You were just talking out of your arse.

Throw a dart and you'll find something. If you want the out-of-the-box live-in-your-IDE experience then JetBrains' stuff is miles better than VS. Personally I moved on to Spacemacs[6] after a few years each of VS and IntelliJ.

[0]: https://gitlab.com/teozkr/what-should-i-sing/blob/master/bui...

[1]: https://gitlab.com/teozkr/scankiosk/blob/master/scankiosk-ui...

[2]: https://github.com/getsentry/raven-csharp/blob/develop/src/S...

[3]: https://github.com/getsentry/raven-csharp/blob/develop/src/a...

[4]: https://docs.python.org/3.8/library/2to3.html

[5]: https://github.com/rust-lang/rustfix

[6]: https://www.spacemacs.org/

What is your definition of developer-first? My experience working at Microsoft in 2015 was the opposite of what you describe. They were too focused on supporting legacy MS that they couldn't innovate or find and keep talented developers in open source because they were forced to adopt tools and frameworks that were crap compared to standard open source development tools.

The only reason people went there usually was for the money and once they got enough to follow their passion, they left because none of them were passionate about Microsoft.

External rather than internal dev support.

We all know Microsoft has a lot more internal documentation than external, especially with Windows around that time.

or put another way: when they become a target for bad actors to abuse extensions, expect the review process to be more difficult.

I don't think becoming a target for malicious actors is the reason for Chrome Web Store reviews being awful, see the threads I've linked to above and explore the rest of the links. Chrome Web Store reviewers are simply not properly trained and qualified to do this job, and the review process dictated by Google does not leave much room for improvement. Reviewers make an awful lot of mistakes and they usually do not listen to reason, the only thing that works is to document everything and make it public.

I've had some issues during Firefox extension reviews too, and Mozilla employees have usually changed their opinion after feedback. When they've made a mistake, sometimes they said they were sorry, which was a decent thing to do and it felt right. They talked and acted like human beings whom are capable of compassion and reasoning.

Exactly. Developers are going to submit apps to Google regardless of how bad the process is, so there’s no real incentive to improve the experience.

I don't know, I've seen plenty of abuse on the windows store. Being a default choice for tech illiterates makes it a juicy target

But Microsoft has a long history of providing good customer and developer support. Why would they change for just this one product?

Is this a different store from the "old" Edge?

The "old" Edge store was utterly mismanaged [0]. I'm glad they've improved if this one is different, but they definitely left a sour taste in my mouth.

[0] I required Native App Messaging and needed to include a 32 bit binary to read an SQLite database. The extension was rejected and was only told to wait while they worked on this feature (which was already in a tutorial I was following). Nobody ever contacted me back for over a year until the news broke that they were moving to Chromium.

>More importantly, during extension submissions and reviews I did not feel abused as a developer, something which I cannot say about the Chrome Web Store

I suspect that would change if Edge gained significant market share. I think what happens is that as these platforms grow, they get targetted by spammers, malware, and scammers and consequently their processes harden and tolerances go down.

Since the extensions are identical to Chrome, they should piggyback on that store’s decisions. Or both should. That might ease some pressure and benefit everyone.

Wonder why...

Microsoft: developers, developers, developers, developers!

Google: advertisers, advertisers, advertisers, advertisers!

Google has for its entire history had strong ties to building a developer community. For instance Google Summer of Code [0] and here's a list of Google APIs with 179 current APIs [1].

[0] https://summerofcode.withgoogle.com/

[1] https://developers.google.com/apis-explorer

Conveniently leaving out the hundreds of times that Google has randomly terminated APIs or entire products with minimal if any forewarning, or reduced API functionality or pricing without forewarning, and the complete and utter lack of support [edit] Google provides to developers who don't already have their own twitter following.

I like the idea of Google Developer Supper.

It's almost as if Google is a massive organization running hundreds of initiatives spanning decades, making it difficult to simplify things with a single description.

And Microsoft is a feisty startup with a focused product line?

No, Microsoft is the same. My comment doesn't imply that Microsoft is somehow simpler than Google. The point is that the two people above me are disagreeing because they're over-simplifying these complex entities.

And yet one constant that connects all past Google projects: premature, without-warning shuttering of operations*

* not all operations, but enough for it to become a cliche


Did you really feel the need to criticize the poster, instead of the post? It's not just a meme, it's reality, and a result of how Google is run. People create new services to get promotions and then abandon them. With no recognition from maintenance, they wither and die, and are terminated. It is not inconceivable that GCP could suffer this fate too, judging from leaked communications.

And yet when I open Edge, I get a million ads for crappy tabloid news websites thrust in my face, while when I open Chrome I don't see any ads.

I just setup Edge a few minutes ago. There are two options "Inspirational" and "Focused" that show no crappy tabloid news websites and one that does - I didn't pick that one :)

Also, happy to report that 1password has an extension for Edge as well - that's awesome.

Only thing I'm missing is a dark mode extension. I don't trust the somewhat sketchy ones that I see so far on the store.

> I just setup Edge a few minutes ago. There are two options "Inspirational" and "Focused" that show no crappy tabloid news websites and one that does - I didn't pick that one :)

I chose focused. It's a nice option.

Too bad it doesn't respect your search engine preferences, because any searches you do with it seem to always go to Bing, regardless of what address-bar search engine you have selected.

You can also install extensions from the Chrome Web Store in Edge, there's a switch to enable the feature on the extension management page.

If you enable dark mode in your Windows settings, you can just use the built in browser dark mode. This is also a setting in CSS to enable dark mode when this is enabled. Last, you can install extensions from the Chrome Store.

The tabloid you can further deactivate under the gear of the new tab

Chrome android features lots of tabloid ad crap in its home page.

I believe this may also be dependent on whether you're on a personal machine or enterprise network. My Edge start page has a gear with the Page Layout options (Focused, Inspirational, Informative) and also radio buttons for Page Content with a choice between Office365 and Microsoft News. My default displayed Office365 (recent documents opened list) without any of the MS News agg tiles.

This is very good news.

In my opinion, this does more to keep Google in check than had they gone with Firefox's engine, or stuck with their own. (I know not everyone agrees)

People use Chrome because they consider it a better overall experience than other alternatives, and I happen to agree. (again, I get that not everyone here agrees with that) For whatever reason, Google has the resources and talent to make a browser that is preferred to the alternatives, by most regular users.

Chromium based Edge allows users to get the best of Chrome without the worst of Google. Google knows that if they get too aggressive with decisions that are biased toward Google's bottom line (such as how they handle ad blocking and various privacy features), Microsoft can easily push back by changing these decisions in Edge. This is a very good thing.

True, there is also pressure on Google from Firefox (people can abandon Chrome for Firefox if Google is too aggressive), and there is also Brave (and others) if you want the benefits of Chrome/Chromium without the worst stuff. But moving to Firefox is simply too big a move for most users and many don't like the downsides [1]. And Brave has their own revenue model to protect, and they don't have the deep pockets Microsoft has to resist the temptation to make decisions that benefit their bottom line in the short term.

[1] In my case, I do a lot with MIDI in the browser, i.e. connecting a digital piano and using it within web sites that support it. Firefox doesn't support this yet, after years and years of talking about it. https://github.com/mozilla/standards-positions/issues/58 There are a ton of other things, but that one is a deal breaker for me. Works beautifully in the new Edge.

Exactly. I hope MS will also take Android and release an MS version of it. Privacy oriented, no Google apps (that can't be removed either).

This would put more pressure on Google than privacy fines from EU. Competition works best. I'm not an MS fan (using Linux at home, with vscode), but I'll happily switch.

I wondered why MS didn't do this or partnered with Ubuntu instead of closing their Windows Phone business, fully giving up the mobile market.

"Competition works best."

Right... I mean, a certain very strategic kind of competition. Co-opetition? Direct competition would be simply offering a competing fully in-house browser or competing fully in-house mobile OS. This is kind of sneaky in that it lets Google do a lot of the heavy lifting, while still being able to yank the things (or add the things) that Microsoft wants.

With regard to Edge adopting Chromium, I have to wonder whether Google sees this as a victory, or if they feel like Microsoft pulled one over on them.

On MacOS it requires admin privilege to install.

I am done with that after all the crap that previous software with admin rights installed. I cleaned it up and swore I would not install anything that required admin rights again - for my own security and peace of mind. What does it need admin rights for?

Seriously, that bugs the hell out of me too.

Why do I need to give Adobe admin rights to install Photoshop? Why do I need to give Microsoft the same to install Word? And now for a web browser?

If I'm installing something low-level like a window manager or a keyboard shortcut tool, I get it. But for a normal mainstream flagship consumer application, what on earth do they need admin privileges for?!

I hate the fact I have to hand over the keys to my computer just to run basic industry standard software and I have no choice because it's industry standard and I have requirements to use it.

Well, there is an extremely simple reason: because these tools are installed for all users, not just your own. Doing it any other way would be wasteful on an actual multi-user machine. But some tools do support it - both Chrome and Firefox can be installed without admin privileges. There is also the fact that Office and many other products rely on demons starting at boot time, which can only be installed with admin rights. The same applies to all popular Linux distributions (even more than on Windows, since you can provide a nice current-user only installer on Windows, but any common program package on Linux requires admin rights before you can even access it).

On the other hand, for most people this admin vs regular user separation is almost meaningless and provides little extra security. Sure, if I install malware as admin it will be harder to get rid of it, but except for that, it can hurt me just as much, since all of the files I really care about (documents, photos, game saves etc) are already accessible with my user, and any program running as my user can already connect to the internet and send information about what my user is doing (not to mention bother me with ads). Some of the really damaging ransomware that recently made the rounds didn't even require admin privileges, it simply encrypted data in some common user-owned folders, if I'm not mistaken (it probably did need some privilege escalation to spread, though, which is a big problem on office networks).

> because these tools are installed for all users

So all they should require is to be dragged into the /Applications folder (or /System/Applications in Catalina). That's it.

That's how a macOS app should be installed. That should be the end of the process unless it needs to install kernel extensions (and even then, from Catalina onwards, such extensions should become userland extensions).

But how could a regular user be allowed to install something for other users? That would be a breach of security.

The missing piece here:

Applications also don't need to be (and third party apps on most single-user systems arguably shouldn't be) in /Applications. Users can put apps wherever the heck they like (I keep mine in ~/Applications which even gets the same icon automatically if you create it).

Apple could really streamline this because all apps that can be drag-drop installed really belong in one's own home directory, where they'll be seamlessly migrated when you move to a new computer, or brought with you if you have a roaming profile. As it is right now, I just keep both Applications folders in my Finder Sidebar and remember that the bottom one is "mine."

In an ideal scenario, users could still drag apps to the "one" Applications folder and if they are not an Admin the app itself would actually be stored in a default-invisible ~/Applications. Then when you opened "/Applications" the system would show you the superset of both locations.

This is of course nearly exactly how the Windows Start Menu works except that it always had "installers" do the work of putting those program shortcuts in the respective directories, and only well-behaved apps ever asked which place you wanted apps installed.

Technically, an application bundle can be located anywhere on a Mac; there is no installation process, they’re self-contained and always have been.

The question of how a regular user could be allowed to install something for all users in this fashion, placing the app bundle in the /Applications folder, is no different than when using an installer: ask for an administrator password.

"Doing it any other way would be wasteful on an actual multi-user machine."

On Windows at least, UWP apps are deduplicated across all users on the same system so when user #2 installs the same app already installed by user #1, it will just point to the same existing shared instance of the app's files. I don't know much about MacOS but I'd guess there's a similar packaging system. These systems also incorporate sandboxes which address the other problems you mentioned in your last paragraph.

The problem is just when the OS teams can't convince other developers (even ones inside the same company in Microsoft's case) to actually use their packaging and sandbox systems.

> Well, there is an extremely simple reason: because these tools are installed for all users, not just your own. Doing it any other way would be wasteful on an actual multi-user machine.

It wouldn't be wasteful if I didn't want to install it for the other users, which I might not.

The amount of hooks that Adobe Creative Cloud claws into your OS is enough to make any software developer want to rip their hair out. Anytime I notice my mouse lag for a moment or an Explorer window hiccup, 30 seconds later I get notification that there is a new update for the Creative Cloud app...

I recently noticed some adobe process trying to access a random ip address and promptly blocked it, because it was probably analytics. Then it started retrying it more than once a second. This makes me think it's even worse inside than I feared, so I'm using gimp now. It's pretty good!

So that it can be used my multiple users. There are ways to install as a user without admin privileges.

You can inspect (and extract) it with Pacifist[1] without using admin privileges.

[1] https://www.charlessoft.com/

Maybe to install an autoupdater?

It doesn't use a TUF-like update protocol that Chrome uses?

Last I checked, Chrome uses CUP, which is more like TLS than TUF

Do "Show Files" in the Installer app's menubar and it'll show you everything it's installing.

In this case, it's installing Edge and the universal Microsoft AutoUpdater app. Given the range of stuff that thing has to support (including all the Office apps) and the privs it will need to run at to do so, I think the admin requirement is not entirely unreasonable.

If Office 365 can use the Apple updater, so can Edge. Or they can do whatever Chrome does, it doesn't require admin rights. I don't think Microsoft can talk about secure and private and then require admin to install their software. It is archaic.

Ah, well at least it's using Microsoft's pre-existing AutoUpdater (the same one used by Office if you don't get it from the App Store)

I was going to install it to try it out, but this was the dealbreaker for me.

also requires 10.12 or above

If someone told the young Linux freak me back in the early 2000s that one day Internet Explorer’s rendering engine is based on the KDE rendering engine I would’ve probably died laughing and frozen in horror at the same time.

Yeah, I realize there’s probably nothing left if the old KHTML but it still does give me a chuckle.

But one wouldn't have been surprised to find out that the Microsoft's KHTML based browser doesn't run on any open source operating system.

Not yet, but a Linux version of Edge is coming later:


IIRC it exists for Android.

Android is open source in the same way that Chrome is. That is to say, not.

I'd contend that it is closer to Chromium as the Googley bits are in Play Services and OEM builds.

Hah. So true. Not to mention that Windows would one day have available an entirely integrated linux kernel direct from Microsoft[1].

[1] https://devblogs.microsoft.com/commandline/announcing-wsl-2/

An open source project released by Apple, that Google added a bunch of features to - including DRM, and Microsoft adopted to help unify the web for internal enterprise apps.

What a world we live in.

The story is told well by this user agent string:

   Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6)
     AppleWebKit/537.36 (KHTML, like Gecko)
     Chrome/79.0.3945.117 Safari/537.36 Edg/79.0.309.65
"Edg"* , like Chrome, like Safari/AppleWebKit, like KHTML, like Gecko, like Mozilla 5.0.

My lord, this ridiculous header is f'ed (and I don't mean this string, just this entire ridiculous slow-motion trainwreck that requires every browser to pretend to be every browser that ever came before).

\* presuming that spelling means 'please don't lock me out like Edge' -- modern Chromium Opera identifies as OPR, similarly

There's still plenty of references and small but essential stuff. One notorious example that comes to mind is the KURL name that stuck: https://chromium.googlesource.com/chromium/blink.git/+/maste...

That's awesome!

Although, all copyrights are Apple's on that particular file. I wonder if everything's been done by the book.

I get why Microsoft did what they did.

I just still wish they would have at least OSS'd EdgeHTML instead of just shoving it in a closet somewhere.

I wish they had thrown in with helping Firefox instead of handing even more web influence over to Google. A percentage of what Microsoft spent on EdgeHTML contributed to the Firefox project—ideally as employee time—would go a long way, along with the counterbalance of putting the Firefox engine and code base front and center of more Windows users.

Sadly Chromium is WAYYYY easier to development on than Firefox. Had Mozilla spent effort making the base of it as a framework in the same way Chromium is, they may have considered it.

There is a reason why Electron, QT etc use Chromium.

Kind of a shame.. There are a few areas where FireFox absolutely smokes Chrome. The way it reflows some heavy DOMs interactively is almost magical in comparison.

Curious, what makes Chromium better in your opinion? I have probably just touched the surface of the dev tools on both and haven‘t used any features that I would be missing on either.

It's a blank browser, has barely any "Google" specific stuff in it ready to go. It is easy to develop for, doesn't require cross language compiling (rust/c++), builds fast, easy to understand how the different parts work (at least for a browser developer it should be), has documentation, is meant to be used to develop your own browser.

Are you sure Chromium builds fast? lol, it takes my laptop with 12 cores and 64gb of ram over an hour to compile from scratch, not counting the ~20gb of git history to download (I maintain an internal build at work).

Well lol it is a rather complex piece of software, so maybe take that one back.

Firefox is comparable in that department.

Having compiled both: it's not. On the same hardware, Firefox takes ~4x less time to compile than Chromium for me...

Which platform were you compiling on, and when? It's been some years now, but Chromium used to build with MSVC on Windows.

I worked on both, it's no comparison. Firefox builds in about 40min on my macbook pro, Chromium takes like 4 hours?

I can't even get Chromium to build on my MacBook Pro, so there's that. (15-inch, 2018, 16GB RAM)

What magic are you using to be able to build Chromium?

Limiting the threads as somebody elses said. For chromium no one really builds it on a laptop, everyone in my team used a build server or a 32 core monster desktop.

AFAIK you'd need to limit the compiler threads, and hopefully the linker doesn't run out of memory. 16GiB of memory is really not enough.

Sometime in the last 6 months, on Mac and Linux both.

Then they could have chosen WebKit.

I get the Electron reason...it just sucks.

I was just thinking, "Why isn't there an Electron for Firefox?"

They worked on it a bit [0] but it has been abandoned along with all the other embedding efforts over time. As someone who embeds Chromium (via CEF) only because it's easy, I would really appreciate (and have been shouting into the wind about) focus on the embeddability of Gecko.

0 - https://github.com/mozilla/positron

Long before positron (and electron) there was XULrunner.

I have a feeling this might change once Firefox is either entirely written in Rust, or mostly written in Rust.


A lot of legacy code is being removed. As this happens the codebase will be reworked with contributors in mind.

I suspect that their work in using Electron for things like VSCode made switching Edge over to Blink more enticing. I wonder if they ever considered looking at the Mozilla frameworks

Unfortunately historically there was a history of Mozilla not being a very stable platform to develop on top of (though I have no idea if Chromium was worse). There had been at least two separate embedding APIs that have been abandoned (the original one in the ActiveX control era and the external one after they moved to Hg), at least three Electron-like things (prism, XULRunner, and positron), and the field of corpses of Mozilla-based apps (I've worked for two, there were lots more).

Maybe they're better at API backwards compatibility now? Not sure; I'm unlikely to try again given previous experience. Which is a shame; I still use Firefox since it was called Phoenix…

If anybody has more recent experience working on their stack, I'd be happy to be correctly though. Preferably with examples of projects that _haven't_ been burned.

Interesting, I thought FF being a XUL app should've been easier to customize.

AFAIK Pale Moon and Basilisk are the only XUL-based browsers left.



I don't think FF is using XUL anymore or at least not as much as they used to.

Even their docs for XUL shows it all as archived:


Firefox is actively moving away from XUL.

I thought they finished that recently when they announced the UI was no longer XUL based. Is there still more work to go?

I guess they are moving towards web standards? (like Vivaldi). I don't think they will ditch XUL in favor of native (C++) tech.

Cynical thought: in no way am I claiming this was the only reason for Microsoft choosing Blink, but it’s probably easier to find and replace Google analytics APIs with Microsoft endpoints than it is to add them into a code base after the fact.

Can you link to a Google Analytics API call in Chromium? It's OSS.

Edit: Chromium connects to Google servers to update extensions and for captive portal detection. Firefox does pretty much the same.

Search for UMA metrics.

Firefox does something similar, but calls it Firefox Health Reports. See https://blog.mozilla.org/metrics/fhr-faq/

(note that I think there's nothing wrong with this at all, just pointing out that this isn't chromium-specific)

Chromium is not the same as Google Chrome. Chromium is open source and vendor neutral. Google Chrome adds the Google stuff on top of it.

Both chromium and Firefox can be customized and vendor branded (see the countless privacy oriented browsers built on top of Firefox).

> Chromium is...vendor neutral.

That's pretty misleading. When you want to sync state across Chromium installs, you use a Google account, and that's really just scratching the surface.

Chromium comes with quite a bit of Google baked-in.

Chromium still has Google endpoints.

Iridium was developed specifically to degoogle all attempts at phoning home.

I don't see why they would've done that, given how much it was baked into other stuff behind the scenes throughout the years. Auditing it would be a massive undertaking that I'm not sure even the most well-off organization would like to try.

They probably can't, especially if the engine interfaces with proprietary code or is deeply linked to the kernel for example. It's likely part of the reason why they never got it updating as frequently as the Chromeium counterpart can, as this is entirely userspace.

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