Limit Yourself

“You can tighten your circle or boa constrict” – Lupe Fiasco

I think Lupe’s advising us to keep a small manageable network of friends or get crushed trying to maintain so many connections.

Setting a limit is the valuable take-away here.

It’s the answer to why we have better hardware and software than our predecessors yet web apps are so inferior.

Sure, they look better, but are they significantly better structured than older software? Are we making the most of the extra processing power from better hardware to do more or did we loosen our standards to accommodate higher levels of indiscipline the newer hardware can tolerate?

I read a rousing post a few days ago. Even though I’ll error relevant snippets, read the full thing when you get the chance to. It’s worth it.

Indulge me in a thought experiment. Let’s say we’re not writing a program for the web, but rather for a resource-strapped graphical computing environment. Maybe one of those embedded microcontrollers that are so popular these days, something even less powerful than a Raspberry Pi. How would we design such a framework?

He goes ahead to muse about architecture and internal operations that are identical to React.js then declares:

Congratulations! We’ve just designed Windows.

Specifically, Windows 1.0. Circa 1985

The web has been a thing since 1995. The term web application was coined by 2000. We had gmail giving us a glimpse of the browser’s potential by 2005.

We didn’t get React.js til 2013, almost a decade later.

The techniques to build an efficient graphical user interface didn’t come to the web til 8 years after the first major web app, even though we’d first seen them used 28 years ago!

Let that sink in for a second.

One of the biggest contributors is the browser doesn’t present any constraints. Render as much as you want. Use as much memory as you like. Everything is awesome.

We don’t have hard limits that force us to optimize our code, so we don’t. Efficiencies implemented long ago are lost on us now.

A while ago Youtube worked on cutting down their page weight from 1.2MB to 100kb.

The result was a bunch of countries were now able to use YouTube. It opened them up to new markets.

Youtube already worked, but by setting limits for themselves, they built something much better suited for the world, not just countries where the internet is fast.

I think lots of good comes from sitting back and setting hard limits. When we build to this constraints, we end up with a much better designed and implemented result.

Every layer of abstraction carefully thought through, convenience balanced over value to end user.

Even if it seems hard on the onset, I believe the limits we set will push us to find better solutions and be judicious with resources.

Limit yourself. The discipline will make you better.