Everyone wonders how to be at the “cutting edge” of everything. The funny thing is, it can actually be an incredibly bad thing if you go charging into the world of tomorrow blindly.
You see, there’s always a thing in the world of technology called “the bottleneck.” It’s the one thing that holds everyone back and it can be used to predict what technologies will arise and what technologies need to be put on hold. The best way to make the concept clear is to imagine a real-world bottle; if you pour it out, the amount of liquid that comes out is limited by the width of the “neck” of the bottle. If you widen the base of a bottle, it can hold more liquid, but the “neck” of the bottle will always limit the rate that you can pour, making the idea of expanding any other spot to maximize pour speeds a fool’s errand.
In terms of tech, we have the same concept limiting us in other ways. If a person is playing an online game with a powerful PC, but their Wi-Fi connection is slow, their game “lags” or slows down. The bottleneck for a lot of things are internet speeds, but depending on what your next big idea is, you can hit any number of bottlenecks, whether it be screen resolution, the read/write speed of a device, or the ability to access some resource. The thing I find that defines a person who will be successful, versus a person who will not be, is how one approaches these bottlenecks. You cannot just “get around” a bottleneck, and if you try, you’re just widening the base, metaphorically speaking.
As a web developer, the history of bottlenecks in my field has been interesting to track. In the bad old days, a website was just a place where people could look at blocks of text. A thing called Hypertext Markup Language (HTML) generated the blocks of text and it specifies things like whether the blocks of text were lists, paragraphs, or titles for a page. These blocks of text were available for anyone to view on the internet, across seas and skies, but tough luck if you wanted to set the font of that text block or make it blue. This was fixed when Cascading Style Sheets (CSS) came onto the field. HTML and CSS in the early days allowed for some colorful blocks of text for some interesting reads, but with an internet based solely on the first iteration of HTML and CSS, we would never see YouTube, Facebook, or any of the rest of the fun stuff you came to the internet today to find. The original bottlenecks in the web-based software, hardware, and connections have been torn down as the coding languages and hardware have evolved, and nowadays things like videos and animations don’t require anything fancy, just HTML5.
Before HTML was capable of handling videos, a thing called Flash existed. Flash handled animations, videos, and some games even. You probably remember it from sites like Newgrounds.com and a few of the other early websites, but it has almost completely disappeared now. In some cases, it isn’t even supported by browsers anymore. Flash was able to exist because of the limitations of the native functionality of HTML, which is one of the basic building blocks of the internet. However, the amount of effort to get past the basic limitations of the web was massive and very expensive as it tried to fight through the bottleneck. The effects the HTML video bottleneck had on Flash illustrates the need to wait for technology if you don’t want to be left behind, as anything you build under the constraints of a bottleneck will inevitably be inferior to anything built when the neck later widens, and anything built upon it will be made obsolete. Flash was expensive to maintain, but no longer held a reason after HTML5 to rationalize such expenses, essentially killing off sites that at one time built their purpose around Flash.
Right now, the bottlenecks we face in the field have very little to do with what code we can write. Heck, give me enough time and money, and I’ll make you a website that skims public and purchased private data to fairly accurately predict what any given person will eat for breakfast tomorrow, the limits are basically non-existent for what we could do in theory these days. The limits we DO face are mostly what baggage others bring with them to our sites. Any web forum anywhere can tell you how much of a nightmare it is to do a modern site in a way that Internet Explorer can handle, and Safari isn’t much better. It gets worse when we have people using browsers that are ten years outdated or more. While compensating websites for compatibility issues, web developers are stuck with the old tricks that we have used for years, because for many people those are the only tricks their browsers can handle. The new tricks become more and more tempting every day too. On one client’s website, we had a design that required one of these new tricks; clipping masks to be specific. Clipping masks let you shape any element you want to be any shape you want, and they’re really neat. Sadly, they gave me a rush of panic when I realized that after implementing them on a page, that Mozilla Firefox (A browser that is really on top of things compared to most) hadn’t implemented clipping masks yet. Funny enough, before I could give this bad news to everyone, one of those little update popups came up, and the absolute newest update for Firefox that released that day added clipping mask support. That was pretty amazing since it meant I managed to implement a feature the same day it was fully supported by every browser! (And I was saved from a lot of extra work too.) In terms of bottlenecks though, that’s the biggest one for me, browser support.
Right now, we have our hands tied on a lot of tech that’s coming our way, and it’s all pretty exciting that one day we can use it. I’ve personally been eyeing up a nice little experimental CSS element that lets me edit images by just using CSS. But in a world where the cutting edge is the goal, and compatibility is a necessity, us web developers are left in a strange position where the timeless question of “Are you able to do it?” becomes more and more complicated to answer. On one hand, I COULD build a whole Photoshop style suite using this CSS element that’s in the experimental stages, and it’d be “cutting edge” in a way. However, that web-based image editing software would only work for a few users, and it’s uncertain on if it will ever be fully supported. At this stage, it’s very ill-advised to do it is basically my point.
Being aware of my biggest bottleneck, browser support may be rather frustrating to me, but it’s also how we stay ahead of the game. As I look at the things that aren’t supported, I’m aware of the fact that one day soon, they will be supported and I can think of the tidal wave of neat new things I can build the moment that the browsers let me do it. But learning from things like Flash, I don’t dare try to “hack” my way through, and instead of looking to the future, knowing the things that are possible in it. Knowing your industry’s bottlenecks is exactly the way to stay ahead in your industry. In short, you shouldn’t be on the cutting edge if your audience is nowhere near the blade, but always be ready for the day when your limitations will change.