Colin Devroe

Reverse Engineer. Blogger.

Browser struggle

In the opening scene of It Might Get Loud, Jack White fashions himself an instrument from a single guitar string, a glass Coke bottle, a piece of wood, and a few nails. He goes on to describe how he appreciates an instrument that he has to physically struggle with in order to force it to perform. He also appreciates constraints while on stage. One of his bands, The White Stripes, limited their color palette for their brand and their music was all composed using a single guitar and a set of drums (though they did meander a bit from time-to-time for special occasions).

The constraints breed creativity. Much like an artist living within the bounds of their medium by forcing themselves to use their tools in ways not thought of before. Stretching, pulling, twisting.

For some odd reason I’m reminded of these constraints, this struggle, this art whenever I switch internet browsers.

To most people an internet browser isn’t something they choose to use. In fact, they use whatever comes on the device they own. If they switch to a new one it is because they were forced to or that they switched on accident.

To a web developer an internet browser is more than just the way we can view the web. It is one of the primary tools that helps us to build the web. So while just about any web browser should be fine to use for most people – a web developer like myself comes with a set of requirements above and beyond that of the common surfer.

While feature parity has settled into the browser market for the most part, there are extremely subtle yet key differences between them all. If I were forced to list all of the nuances between the browsers such as how they handle tabs, bookmarks, page rendering, etc. I’d be here for days.

Here are some very broad descriptions of the primary browsers:

Safari comes on pre-installed the Mac and seemingly puts the user’s privacy and attention at the forefront. It is seamlessly integrated on both desktop and mobile. It is also the most popular browser on mobile*.

Edge comes pre-installed on Windows 10 and isn’t available to me on desktop or mobile. While Microsoft has made enormous strides since ditching Internet Explorer I have no idea what edge Edge has. I haven’t seen huge claims made by them and I don’t know what the browser itself stands for. But, I’d wager that a large portion of Windows 10 users use that browser without even knowing it. So long as Edge works well and has enough features for Windows 10 users – most users won’t need to shop around for a new browser. Unfortunately, I cannot use it.

Chrome is the most popular browser in the world on the desktop. Mostly due to the popularity of Google Search, Google Docs, and Gmail. These three services have billions of monthly active users – each – and if you’re using any other browser except Chrome you’ll be “reminded” to download it. Also, Google has a few Chrome-only features that inevitably get people to make the switch. It is also pre-installed on many Android devices. It is very good and while I’d have a small list of asks on desktop my biggest request on mobile would be to be able to set it as my primary browser – unfortunately Apple doesn’t allow that**.

Firefox is open source and presumably cares the most about the open web. Its development is by far the most transparent of the browsers (though Apple, Google, and Microsoft do an excellent job of making their development fairly transparent) and just about anyone can contribute to the project. Firefox’s footprint in the market, however, is tiny in comparison to its competition. The latest releases seem to be leaps forward for Firefox.

There are more browsers; Opera, Brave, Tor, Konqueror, etc. but these are relatively small userbases*** and I’ve never used any of them for any length of time other than to see if they were usable.

Lately Apple is claiming that Safari is the fastest browser available. A claim each web browser maker claims with nearly each release of their software. It is sort of like having a few friends with similar dates of birth. Someone is always a few days older than the other for a few short days until everyone is the same age again. This is what it is like with speed and web browsers. One may be “the fastest” today but the other will catch up next week.

For the last few weeks I’ve been using Firefox and there are several small niggles that I have that prompted me to write, and rewrite and rewrite, this post. It is what reminded me of this struggle. This bending and twisting of metal and wood in order to get the browser to do what I need it to. I started out creating a list of things Firefox would need to do in order to have me as a user fulltime – some examples include allowing me to use my mouse’s features, enabling macOS dictionary lookup, being the default browser on iOS, etc. But then I backed off of that and realized it will always be a bit of a struggle. I’ll always switch back and forth between browsers. I’ll have a favorite. And that will change.

I’d bet Jack White has never found the perfect guitar. He has a favorite today and it may change tomorrow. Today I’m using Firefox. Tomorrow who knows? And that’s fine.


* Chrome has more installs on mobile, iOS has far more usage.

** Can someone please sue Apple over this already?

*** Opera seems to have a huge marketshare in mobile in places like India and Africa.

More on Firefox Quantum Developer Edition

Dan Callahan:

Compared to Firefox six months ago, today’s Developer Edition is twice as fast on benchmarks like Speedometer 2.0 that simulate the real-world performance of modern web applications.

See, on a tear.

Firefox Quantum Developer Edition

Julian Descottes, for Mozilla Hacks:

Firefox 57 Developer Edition was just released! It’s such an advance that we’ve given this browser a new name: Firefox Quantum.

I’ve been using Firefox as my default web browser on the Mac, iPad, and iPhone for a little over a week. I’ve also been using Developer Edition for most of my development needs. The Mozilla team is on a tear and this latest version is incredibly good.

Firefox Multi-Account Containers


The Firefox Multi-Account Containers extension lets you carve out a separate box for each of your online lives – so Exhaustive Shopping Researcher Self can steer clear of Humble Bragging Social Self, and Super Professional Work Self can go about the bizness without worrying about being followed by those other two.

What a fantastic feature from the Firefox team. I’m unsure “container” is the right word. I may have gone with just “switching” or something. But, either way, I hope Safari makes this easy too*.

* I think Chrome has something akin to this, but I believe it is tied to a Google account. It shouldn’t be.

Attending the August NEPA.js Meet up

The NEPA.js Meet up is really hitting its stride. Each meet up is pretty well supported – even in the summer – and the camaraderie and general feeling around each event is pretty great. Also, the Slack channel is pretty active.

If you’re within an hour or so of Scranton I’d recommend joining the meet up group, jumping into the Slack channels from time-to-time, and attending at least a few events per year. If you need help with any of these things send me an email.

Also, within the past few weeks we’ve seen a new group spin out of the NEPA.js group. A more general meet-and-work-on-stuff type of group created by Den Temple. This event fills the gaps for when there isn’t a NEPA.js group event.

This month’s presentation was by Ted Mielczarek. Ted works at Mozilla on build and automation tools for Mozilla’s primary product Firefox. He has, though, dabbled in a variety of other things at Mozilla like crash reporting and the gamepad web API. It was his experience building this API that spurred this month’s topic; Web APIs.

I remember jumping onto the web in the 90s and being blown away when I was able to put animated GIFs of X-Wing fighters on my personal Star Wars fan page. Today, web browsers support a variety of Web APIs that make the open web a true software development platform. There are APIs to control audio and video, to connect to MIDI-enabled devices, to connect to Bluetooth, VR and – of course – to allow for game controller input. There are lots of others too.

Ted did a great job showing demos of many of these APIs. Just enough for us to get the idea that the web has matured into a powerful platform upon which just about anything can be made.

Thanks to Ted for the work he put into creating the presentation and to all the attendees for helping the NEPA.js community thrive.