Progressing Gracefully

Front End Engineers are ex web developers. As such, we have a stain in our brains of how the web was at version 2.0 and prior: we think web sites are static, we think writing HTML and CSS markups is programming and we care too much about browser support.

A Tale Of Two Pipes

Just before the Front End Engineering field infiltrated our consciousness, we treated the web as a static platform where pages are a way to view content. This is why at first it helped by only digitally filing articles and other knowledge resources, later it became a place to also read what others around the world are saying and say whatever’s on your mind. But that still was all static; even when we had the option to write stuff that would appear on websites, we still couldn’t get any feedback in real-time. Later on, other entities – governmental, social and commercial – appeared on the web, finding it as a good place to share things more easily and more broadly than they could until that point. But it only let them show the info. The info, mostly, wasn’t directed at a specific recipient and if it was, it was only meant to notify them of some information.

It was only later on, when social networks became dominate, that the web had to become more dynamic; to personalize pages for each user differently and to make any feedback from one user appear instantly for all others. Those old-fashioned entities I mentioned earlier, gotten intrigued by the fact that they could strike more efficiently their customers’ hearts and minds, and receive instantaneous feedback from them. Mobile applications had helped tremendously making this interaction with the user fast, secure and personal. More and more services establish as a dynamic and real-time platform, which is oriented toward the mass but directing the experience personally for each user.

In 2002 I regularly visited my favorite news sites, web portals and knowledge libraries. In 2004 I had one tab permanently open for Gmail, the first sign of a dynamic, real-time web to come and I kept on visiting my other favorite websites. In 2009 I also had open tabs for Facebook, Twitter and a project management system for my personal and professional work, also some of my news sources and knowledge resources had closed or faded away slowly, and was replaced with crowd-sourced media sites and encyclopedias. In 2013, I have more permanently open tabs for my social presence, task and project management systems, collaborative development platforms and crowd-sourced link and article sharing services, than varying other sites I seldom open.

The web has changed. It is no longer the textual, content publishing platform that it was. It is now a real communication platform that has massive amounts of active users and providers that want to have a real-time, interactive way to interchange information, knowledge and money. Back than, when users came online they expected to find resources that has been left by other users, these days, when users come online they expect to find actual other users, whether it is their friends, their favorite celebrities, their municipal providers or their gurus.

Our way of life today is a merge of two pipes – a physical one and a virtual one. They are both real (despite the word “virtual”), they are both offering circles of friends, services and their own currencies. Stop creating websites, start creating web platforms, or use existing ones to empower the dynamic web. A website today that is not based on the fact that there are two sides to any content and those sides are active simultaneously, is actually contradicting modern concepts of life.

The Construction Worker

In 1756, British engineer, John Smeaton made the first modern concrete. The concrete became a strong building block of our homes ever since. Every construction worker, back then, that got to put his hands on a concrete block was immediately inspired by its magic. Laying the blocks to create a full standing house was an elevating experience and the construction workers that had the knowledge to do so felt like they were chosen.

It took many centuries, until the construction field got to a place where it is also today, where the construction blocks, that famous concrete, is only considered scaffolding for our homes. Construction workers, suddenly, got aware that the ones that plan the house is engineers, the ones that decorate the house are designers and the ones that make it into a smart home are electricity experts.

A similar thing happened with HTML and CSS. Both are markup languages, declarative syntax, that has been here for 20 years and taking all glory for being THE web. Maybe when they were just them, they could be considered as magic, but today, they are what they are – scaffolds for the web. For building web applications and connecting to the real-time web, you must know how to lay those scaffolds, but they are just a markup language, a concrete block, to the smart homes we live in. These days, writing HTML and CSS is what it is, laying scaffolds; planning the work, inventing technologies and developing are what an engineer does. So find your ways with that magnificent scaffolding system and go on learning how to design it, decorate it and make it smart.

Browsers Are Overrated

Too many times I am asked about a specific feature, whether it is being supported in browser X, version Y or not. Too many times I hear that the client wants to support also users that didn’t upgrade their browser. Too many times I find that people are tackling themselves, mentally, with the fear of achieving browser support with a new feature over how important or amazing the feature itself is.

For me there is no browser. This is basically strange, as everything that I do is inside a browser. But that’s also the point. A browser is just a tool, a browser had never stopped us (as a culture) from advancing forward. When web standards started to appear, it became obvious that the browsers needed to catch the bus if they want to stay relevant. On some occasions, browsers are the triggers to advancements themselves, but never the other way around.

Since Netscape Navigator to Firefox 1.5 and so on to Chrome 25, I have always used the best browser out there. If a browser doesn’t make it to advance with standards and web features, it ought to be left aside. You can think of the browser as an operating system that knows how to run websites as its apps (Chrome OS, Firefox OS, anyone?). I don’t care about browser support, I care about advancement. As long as you, as a programmer, use the best technology there is, it is up to the browsers to catch up on us, not the other way around. In the war over Progressive Enhancement vs. Graceful Degradation, I chose Progressing Gracefully. I think you should to.