The Lowest Common Denominator: www

Native apps are all about control. Don’t like thing X? You can dive in and, with enough elbow grease and persistence, finally get what you want. Write your own C library. Do some assembly code. Even make your own hardware if you have to.

But on the web you give up that control. Can’t quite do the thing you want? You’re options are: 1) make a native app, 2) make a browser that does what you want (see: Google), or 3) rethink and reset the constraints of your project.

But when you choose to build for the web instead of native, you’re not just giving up control in return for nothing. It’s a trade-off. You trade control for reach.

For example, browsers won’t just let any website read and write from disk (who wants to grant that to any website in the world?) You can view that as a loss of control, but I see it as a constraint and a trade-off. In return, you get a number of security and privacy guarantees — and you also get reach: now any computer, even ones without hard drives, can access your website! (The same goes for any hardware feature, like webcams, microphones, geolocation, accelerometers, etc.)

The baseline assumptions for browsers are incredibly more broad and inclusive than native apps. It’s the “lowest common denominator” of computing. That sounds like a derisive label, but it’s not. Once again, it’s about trade-offs.

In math, the lowest common denominator is about simplification. It makes calculation as simple as possible. And there’s a parallel here to computing: browsers reduce the computing tasks available across a variety of devices to be as simple as possible, which means you can reach more devices — and therefore people.

So while the term “lowest common denominator” can be used in a disparaging manner — like it’s the most crude, basic form of something available — if your primary goal is reach, then basic is exactly what you want.