Skip to main content

Geek, coder, gamer, tinkerer, husband, father, system admin, web developer, and American cyborg, though not necessarily in that order. Creator of Mythic Wars (card game).

itsericwoodward.com

mythicwarsgame.com

git.itsericwoodward.com/eric

social.wonderdome.net/users/eric

github.com/itsericwoodward

boardgamegeek.com/user/EricPlaysGames

hey@itsericwoodward.com

 

The Web is Dead! Long Live the Web!

4 min read

In browsing through some of the fallout from the arrival of [Facebook's Instant Articles](http://instantarticles.fb.com/), I stumbled across a couple of great pieces by Baldur Bjarnason ([@fakebaldur](https://twitter.com/fakebaldur)) that go a long way to explain how we got into [the situation we're in](http://www.newser.com/story/206784/facebook-instant-articles-a-tectonic-shift-in-news.html), and why it's us [web developers](http://blog.itsericwoodward.com/2015/developing-the-web) who are responsible.

In the first, he takes on [the ongoing debate about apps vs. the web](https://www.baldurbjarnason.com/notes/media-websites-vs-facebook/), and makes the assertion that it isn't "the web" that's broken, it's how (we) web developers are using it that's broken (emphasis his):

> Here’s an absolute fact that all of these reporters, columnists, and media pundits need to get into their heads:
>
> The web doesn’t suck. Your websites suck.
>
> _All of your websites suck._
>
> You destroy basic usability by hijacking the scrollbar. You take native functionality (scrolling, selection, links, loading) that is fast and efficient and you rewrite it with ‘cutting edge’ javascript toolkits and frameworks so that it is slow and buggy and broken. You balloon your websites with megabytes of cruft. You ignore best practices. You take something that works and is complementary to your business and turn it into a liability.
>
> The lousy performance of your websites becomes a defensive moat around Facebook.

In other words, if the [mobile web is dead](http://www.zdnet.com/article/the-mobile-web-is-dead-long-live-the-app/), it's because we developers killed it.

On a side note, I wonder if this isn't alot of the reason that millennials have increasingly [preferred using apps to browsers](https://www.siliconrepublic.com/play/2010/11/24/mobile-ads-shock-millennials-prefer-apps-gen-x-browsers) - because mobile browsing is, for many, a needlessly painful experience.

In the [second piece](https://www.baldurbjarnason.com/notes/new-age-of-html/), he even goes so far as to explain why people can't seem to get on the same page about how "the web" should be: Because they're all talking about different versions of it:

> Instead of viewing the web as a single platform, it’s more productive to consider it to be a group of competing platforms with competing needs. The mix is becoming messy.
>
> 1. Services (e.g. forms and ecommerce, requires accessibility, reach, and security)
> 2. Web Publishing (requires typography, responsive design, and reach)
> 3. Media (requires rich design, involved interactivity, and DRM)
> 4. Apps (requires modularity in design, code, and data as well as heavy OS integration)

Just to drive this point home, he makes reference to the Apple Pointer issue from [earlier this year](http://studiotendra.com/2015/03/01/the-web-has-covered-the-basics):

> This is just one facet of the core problem with the web as an application platform: we will never have a unified web app platform.
>
> What Apple, Google, Microsoft, and Mozilla want from web applications is simply too divergent for them to settle on one unified platform. That’s the reason why we’re always going to get Google apps that only work in Chrome, Apple Touch APIs that are modelled on iOS’s native touch model, and Microsoft Pointer APIs that reflect their need to support both touch and mouse events on a single device at the same time. There really isn’t an easy way to solve this because standardisation hinges on a common set of needs and use cases which these organisations just don’t share.

A more conspiracy-minded individual might even believe most of the major vendors would be better off if the standards never really do work out, since it would prevent "native-esque" web apps from cutting into their bottom-lines in their respective app stores. But I digress.

Speaking for myself, I know that I had never really considered this point when talking / ranting about "the web". What's more, I wonder if half of our inability to come to agreement on some of these issues is simply a matter of terminology getting in the way of having meaningful conversations. I mean, apps aren't "better" than "the web", because they are essentially part of (one form of) it: they use the same web protocols (HTTP / HTML) as the rest of the "browsable" web, they just use them on the back-end before glossing it over with a pretty "native" front end.

In fact, one might argue that this is the reason that the one area of web standards that has actually seen some progress in the past few months is the [HTTP2 spec](https://http2.github.io/) - an update to how data is transmitted on-the-wire, which should bring notable speed and security improvements to anyone that uses HTTP (including all of those native apps I mentioned earlier). After all, improving this part of "the web" is the one thing that all of the players involved can agree on.

 

Developing the Web

3 min read

_Sorry for posting this again, but I accidentally deleted the original when I changed web servers recently, and I thought it was worth reprinting. Let that be a lesson to us all in the [Tao of Backup](http://www.taobackup.com/)._

The great Remy Sharp ([@rem](https://twitter.com/rem)) wrote a [piece](https://remysharp.com/2015/02/26/i-am-web-developer) about what it means to be a web developer, as opposed to an engineer, and the difference a title does (or doesn't) make. In the end, he settles on the title of "web developer":

> I don't know why I thought it was uncool to be a "web developer". Perhaps because it's utterly vague.
>
> What "web developer" does mean to me though, is this:
>
> Someone who writes code for browsers. Likely from the school of view source, is comfortable with drop-in libraries, understands standards and best practice techniques. But mostly, a tinkerer.

I like his definition (especially the part about tinkering), but I think that it's incomplete, being merely functional.

I suggest that the term "web developer", by its definition, carriers a philosophical drive: to develop the web. That is to say, a web developer should visualize how they would like the web to be (as a whole), and build their own projects in a way that reflects that vision.

This is something I've tried to do myself, both in my professional and personal projects (albeit with varying degrees of success). To me, being a web developer means that I should use [responsive design principles](https://en.wikipedia.org/wiki/Responsive_web_design), [ensure accessibility](http://www.w3.org/WAI/intro/aria), and [follow the standards](http://www.w3.org/TR/pointerevents/) wherever possible. It also means using only open source software, be it [in the server stack](https://en.wikipedia.org/wiki/LAMP_%28software_bundle%29), the [service layer](http://philecms.com/), or even as a [client browser](https://www.mozilla.org/en-US/firefox/).

As a web developer, I want to participate in a decentralized web, and would rather use a self-hosted, fully-open [social media platform](http://withknown.com) than a corporate data silo. Likewise, I support the use of standards-based communication protocols (IRC, e-mail, etc.) over proprietary solutions. Finally, as a web developer, I believe in a more secure web, and support initiatives like [HTTPS everywhere](https://www.eff.org/https-everywhere).

All in all, I think this definition adds an air of legitimacy to the "web developer" title. As I noted in a [comment](https://remysharp.com/2015/02/26/i-am-web-developer#comment-1876942490): based on this criteria, one could say that Sir Tim Berners-Lee is the definitive Web Developer (a title he himself uses, as @rem pointed out), and that's not bad company to be in. In fact, I think I'm going to go get some business cards with "Web Developer" on them.

_TL;DR - A should "develop the web" by building their projects in accordance with their own vision of how the web should be. For me, that means using open source software to build standards-compliant, accessible, and secure sites and apps.