“It works for me; therefore, it will work for most” is a rather common logical fallacy. It is called “proof by example”. For example, if I were to notice that most people in a neighbourhood drove vehicles, then I could conclude that most people drove vehicles. Any person who has lived in a high-density area knows that there are too many people around for small-occupancy vehicles to be practical.
That is a rather damning review of the over-reliance on client-side code, borne by evidence. In short, servers can be controlled by businesses. The size, operating system, software, and speed can all be controlled by seasoned developers. Whereas clients can not.
Most years, I migrate to the home of my grandparents to visit for Christmas. Each year, I witnessed a computer which ran Windows, filled with viri. One year, Windows Update was disabled. Therefore, the operating system was running an outdated version of Internet Explorer. After half a day of updates, it was upgraded to Internet Explorer 9 and restored to modernity. Both of my grandparents are intelligent people who seek to browse the Internet without harm. However, arrogant developers continue to confound them every day by serving fragile documents. They often wonder why Web sites break. Some days, I do as well.
The thesis of this article is arrogance. The arrogance which I am writing about is a very special strain. It has been incubated in the home of technical incubation: Silicon Valley. In Silicon Valley, developers and entrepreneurs alike work with fervour to mine technical gold and “strike it rich”, as if they were prospectors in Dawson or Skagway. Developers are rewarded for their work with six-figure salaries and company shares. Their relative opulence—which is metered by the high cost of living in the San Francisco Bay Area—allows them to live care free. If I were to live in a community where most people used computers with passion, I might be tempted to develop by decree as well. After all, I would be working in the technical centre of the planet. The insularity of the community leads to myopia and ignorance. Instead of developing by decree, we should consult people outside of our communities. We should consult parents, aunts, uncles, and grandparents. They deserve to know why Web sites fail so often; they deserve to know why we, as Web developers, fail to pay them heed.
The religious devotion to [Progressive Enhancement] was useful in a time when [Web] development was new and browsers were still more like bumbling toddlers than the confident, lively young adults they’ve grown to become.
First of all, there is no religious devotion to Feature Detection and Graceful Degradation. The rather minuscule following which it has gained—thanks to Peter Michaux et al.—has been driven by reality and a preponderance of evidence. Second, I must note the irony of yet another “confident, lively, young adult” appealing to age. Appeals to age are common in the technology sector. Software and strategies which work well are often derided if they are older than a couple of years. Apropos of age, some of the most valuable lessons which I have learned about Web development have been strategies which are now almost a decade in age. Feature Detection and Graceful Degradation have served me well since I first read David Mark advocating them (which he, in turn, learned from Richard Cornford).
At some point recently, the browser transformed from being an awesome interactive document viewer into being the world’s most advanced, widely-distributed application runtime.
Developer communities have a habit of crafting mantras that they can repeat over and over again. These distill down the many nuances of decision-making into a single rule, repeated over and over again, that the majority of people can follow and do approximately the right thing. This is good.
If the author were not trying to caricature evidence-based strategies such as Feature Detection as dogma, I would agree.
However, the downside of a mantra is that the original context around why it was created gets lost. They tend to take on a sort of religious feel. I’ve seen in-depth technical discussions get derailed because people would invoke the mantra as an axiom rather than as having being derived from first principles. (“Just use bcrypt” is another one.)
Once again, religion is referred to. The use of Feature Detection and Graceful Degradation has never been religious. The author has identified a useful straw man and smashed it. However, I do agree that arguments without evidence are problematic. That pattern is known as “argument by assertion”.
To fetch data, it opens a socket to a Java backend that streams in data transmitted as protobufs. It then analyzes and recombines that data in response to the user interacting with the UI, which is powered by Ember.js and D3.
What we’re doing wasn’t even possible in the browser a few years ago. It’s time to revisit our received wisdom.
Google Maps still pales in comparison to desktop counterparts, but it does serve a useful reminder of what can be done with Web applications. As services such as OpenStreetMap have reminded me, the bulk of the work still takes place on servers.
Don’t limit your UI by shackling yourself to outmoded mantras, because your competitors aren’t.
Another appeal to age. Those are quite tiresome.
On bustle.com, I am met with this condescension:
Please enable and refresh the page or continue to view the site likes it's 1998.
If you’re a proponent of progressive enhancement, I encourage you to really think about how much the browser environment has changed since the notion of progressive enhancement was created. If we had then what we have now, would we still have made the same choice? I doubt it.
If there were a panoply of user agents on a plurality of different devices distributed across the entire world at that time, then yes, Feature Detection and Graceful Degradation would be even more important, as they are today.
For a final time, religion is referred to. That paragraph demonstrates why the entire article is meant to be a caricature of a straw man of a misunderstanding. “High priests” such as myself must indoctrinate developers to use our methods, as a preponderance of evidence proving our methods just does not exist.
That is what passes for intelligent discourse in the incubated, insulated world of Silicon Valley: inculcation. We are told by supposed thought leaders, via inculcation, that methods which have stood the test of time are outdated by nature of their age. I refuse to accept an argument by assertion. I want evidence; I want a rational argument. Instead, I witnessed development by decree—“I decreed it, therefore it is”.