To be announced

This slide deck is using the shower system - roll over the previews to see the notes and click any slide to go into presentation mode. Then use keys to navigate.

To be announced

Chris Heilmann, Mozilla, Smashingconf, Freiburg, Germany, 19/09/2012
Today I will speak about changes happening in the web. I will also argue that future of it is not as problematic and endangered as a lot of people make it out to be.

Sometimes I feel stupid…

Photo by pkevinconnell
I have been professionally developing web sites for the larger part of the last 15 years, wrote quite a few books and lots of articles. Yet when I look around right now, I do feel incredibly stupid and wonder if I should hang up my coat and do something else. Almost daily we have new tools, new best practices and systems to use and a lot of it is very far removed from the original web development technologies that are defined by the standards bodies.

Goatfarming, maybe?

Photo by Klearchos Kapoutsis
I get the feeling of wanting to stop and go for example into goat farming. The issue is that I am bad at being outdoors and I really don't like goats that much. So that is a no-go.

Doom and Gloom

Photo by Pelle Wessman
I am also very confused about the message of doom and gloom we have right now when it comes to the web. Many spokespeople look at the sales numbers of smartphones and call us out for not doing enough to keep developers interested and get newcomers to start on the web rather than somewhere else.

But things are looking up!

To me, on the other hand, not everything is doom and gloom and the web isn't losing. I am actually very excited about what we are doing on the web and I see a lot of great things that are happening right now. I look back at what I had to work with in the past and see how professional and rich our development environments are now and I am very happy indeed.

So where's the disconnect?

So what happened? How come I am excited about the web and its immediate future whilst others are feeling an urge to protect it from certain doom?

Shiny things

Photo by Yutaka Tsutano
Part of the problems we see right now is ubiquity of technology and connectivity. The web is not the cool new thing any longer - instead everybody seems to be on it and uses it all the time. Not like we did in the past but through apps and small updates in social media.

Pace of innovation

Another issue is the speed of innovation - almost monthly something exciting comes out that makes the last big new thing seem boring and unwieldy.

Always new, always better…

I think one of the things is a perception of constant new demands by our end users and people who spend money on seemingly our market. However, a lot of this is just marketing and people repeating things they heard - suspension of disbelief.
This video shows people who get handed iPhone4S and get told that this is the iPhone5. What do they think of it? Nearly all of them find something extraordinarily cool about it and say it is better than the last one - even those who own the same version!

Projection

Let’s put this in context: mobile internet usage has doubled last year, and right now about 20% of all web traffic in the US is from mobile devices. This means Retina screens will soon become the norm.

Of course us being excited about these cool new things means that a lot of us call it and say that everybody these days has these cool devices and the newest technology and we need to keep up.

Context: WWW?

It is a very myopic way of thinking though. The web is world-wide and first of all only a few of us can afford these devices, secondly a big chunk of us can not get them in the place we live in and thirdly people forget that an initial investment that hurts doesn't mean that people want to replace their hardware every few months afterwards.Not to mention that high speed connectivity is not as ubiquitous as we consider it to be. Especially on mobile devices.

Not quite confident…

The reason we struggle with insecurity is because we compare our behind-the-scenes with everyone else's highlight reel.

Steve Furtick

We seem to be not quite at ease with what we are doing at the moment, regardless of the fact that our job market is ridiculously good and we get paid very well for a comparatively easy job. Instead of considering this for a moment we constantly compare ourselves with success stories inflated by the tech blogs who are there to inflate such stories.

Woe is us! HTML5 is dead!

At TechCrunch Disrupt Mark Zuckerberg was interviewed and in the immediate coverage by the tech press quoted as saying that HTML5 was a big mistake.

Quoting is hard…

I think that the biggest mistake that we made as a company was betting too much on HTML5 as opposed to native, because it just wasn't there.

Mark Zuckerberg (of sorts)

The quote went like this.

Especially when the interesting bits get cut…

It's not that HTML5 is bad. I'm actually long-term really excited about it. And one of the things that's interesting is we have actually more people on a daily basis using mobile web Facebook that we have using our iOS or Android apps combined. So mobile web is a big thing for us.

What was failed to mention were the interesting bits.

And the internal WTFs…

But there's no doubt that, we went for this approach, we built this internal framework that we called Faceweb, which is basically this idea that we can take the infrastructure that we built out for pushing code everyday, not having to submit to an app store, building web code on the web stack that we have, and that we can translate that into mobile development. We just were never able to get the quality of it we wanted…

It seems the main failure was Facebook's approach and internal system creating HTML5 apps - not the technology itself.

Don't listen to and quote "tech press" funded by clicks

The path to keeping your sanity in this world of ours is not to care about the shouty news outlets that need clicks to make money.

Emulation brings frustration

There are a few things that are going wrong right now and I think that the larger part of them is related to the fact that we emulate native apps and practices of thick client development rather than embracing the fact that the web is a different challenge. Yes it is software, no it is not a defined platform with established processes.

The dirty little (not so) secret…

There is a secret behind all the failures of HTML5 in the mobile market, and it actually stinks.

It is all about the hardware

We can innovate HTML5 until we are blue in the face and can optimise browsers to reach rocketship level but if the hardware and operating system providers don't allow us to be on their hardware or give early access there is no way browsers can perform as well as native code can.

Web = disrupting app sales

Photo by Ricardo Liberato
On mobile devices, if you think about it, most of the money comes from app sales. And the web is in the way of app sales as they are now. So there is not really much incentive to make web apps have good performance or access all the good parts in the hardware as it would mean developers don't have to become part of a vendor's program or pay to get access to their sales platform.

Drivers wanted

Photo by Library of Congress
The lack of drivers that would allow apps written in web technologies to access the whole hardware is the biggest issue. This even affects laptops and desktop machines - a lot of WebGL can not be used even in brand new computers.

Firefox OS - we're on it!

This is where Mozilla is right now going full force to bring a change to that dilemma. Firefox OS will be the first truly open operating system for mobile devices.

The web is amazing and empowering

Mozilla Webmaker is an ongoing project to turn pure consumers of the web into makers. We teach basic web editing skills, how to publish and mix video with online content and basic ways to keep safe and have a good time on the web. Attending one of these events is not only humbling but also incredible. It is amazing to see how things that we consider boring and "common knowledge" make people go crazy about creating and doing things they haven't done before.

Misunderstanding leads to failure

A lot of the frustration we see is that people have forgotten the main principles that the web is based on. Including us.

Communication and collaboration

I am right now reading New Model Army by Adam Roberts, a science fiction book about a war in England between the traditional army and the New Model Army, a group of mercenaries organised via the web and wikis. The main difference of the NMA is that there is no hierarchy - everything is voted upon and decided on the spot. This means the army is almost impossible to defeat as it moves much faster as there is no waiting for orders from above. They are also professional soldiers, there to fight other soldiers without any ideological and national interferences. All they defend is the right to be truly democratic in their decision making.

There is no single point of failure

The starfish and the spider is another book that talks about a principle that makes the web what it is. It explains that organisations without a single point of failure are much more likely to succeed than those that have a massive hierarchy and will be likely crushed by their own size. App markets are those things.

It is here!

One of the main things is though that the web exists, the web driven by the open and free technologies that we advocate. It works, and it has outlived many of the other closed technologies that were always heralded as its end.

Time to change…

Photo by Matt Brown
It is not at all a time to sit on our laurels though. There is no doubt that the web has lost a lot of its appeal to new people.

We're mainstream

Partly this is because we've become mainstream. The web is not the edgy cool new technology that can play with tech in any way we want. We have to consider the fact that mainstream media is powering a lot of it with advertising and cross-promotion of real world events and products. Thus we should be at the productive phase of the hype cycle, but somehow we missed that point and are still struggling to find a way to turn over a lot of products without re-inventing.

Rethinking tools

One big thing is to re-think the tools we have. Whenever we talk about the web, sooner or later the talk is about text editors and writing lots of code by hand. We should be better than that by now and make it easier for anyone to create on the web.

We're not simple enough

The success of other platforms with new developers is that they are simple to learn. You are in a fixed environment, you get a few Lego bricks to play with and you can build your first thing.

Re-stating the obvious

Instead of concentrating on being as fast on our feet we keep boring people with the same old tales of how the web came around and how HTML got better and we can add semantic value with microformats and many other tales of yesterday. In a world where all browsers run the same incredibly forgiving parser talking about purity of HTML and semantics falls on a lot of deaf ears of those who just start out and actually is a deterrent. We failed to make semantics matter - microformats are a great idea but when no browser does anything visible or useful with them and they don't bring a search engine benefit they are superfluous to people who just want to publish their work.

The missed reboot

When HTML5 got defined we should have been quicker getting our needs and demands in. If you think about it - the JS part of HTML5 is incredibly powerful but the semantics are not that amazing. We knew we wanted to move the web from text to apps, but we failed to define the necessary widgets. Instead we got elements that got defined by which classes people used in their HTML in the past. Most app-style widgets were created with JS and had no classes at all as not many libraries enhanced progressively. Even now we don't help browser makers or demand better support for rich forms, for example.

The lack of a packaged format

Photo by Beck Gusler
We even failed to think about a packaged format for an HTML5 app. Portability means that you have installers and de-installers instead of running an app in a browser. Right now we have no one-size-fits-all approach to that. The w3c widgets were not the right format so Chrome, Mozilla and PhoneGap all came up with their own formats instead.

The flight into abstraction

Outside the world of those who want to crack the app issue we flee into a world of abstractions. We build preprocessors for CSS, JavaScript libraries that make it easier, but also completely replace the syntax of JS with their own and we applaud all of these efforts and call them a solution without knowing if they'll be supported in the future or not. A lot of them came and went with not leaving much a footprint behind. Maybe it is time to understand that moving to another level of a building doesn't mean that the water damage on the ground floor will not become an issue sooner or later.

The myth of portability

We're always so proud of the portability of our web technologies and that they are so easy to learn and use and adapt to whatever you throw at them. However, when you look at it from an outsider's point of view there is a lot that is not portable or reusable in what we do. Every single HTML slide system is a great example of that. Or try to send an HTML file to someone who doesn't know HTML - they'll open it in word and everything is broken.

The broken and complex "open"

And we don't help the cause much. We again make the mistake we've done in the past of building solutions for one browser or demanding the end user to turn on things and change their setup. Many open solutions demand you to go five steps where one installer would be the right thing to have and we expect people to like setting up lots of tools using the command line. This doesn't help us win against closed technology.

Getting back mind share

So how can we get back the hearts and minds of developers? I think we need to create new products and take different approaches than we have in the past. We should focus on making things easier for people, not strive for purity and deliver like we did in the past. We need to leave our comfort zone cause that is where the magic happens.

Shorter journey time

Bret Victor's Inventing on principle talk is a great start for that. Bret's big principle is to allow creation by making the step from creation to seeing the results as short as possible. He shows off a few tools that are not only WYSIWYG but also work in both directions. You write a game by playing and adjusting the position of the player along a timeline. Thus your testing happens while you develop.

Developer tools

In-browser developer tools are a step towards a world like that. We create and change in the browser rather than having to reload every time we changed our code. Live reload with editors works the same way. It makes a lot of sense to have this immediacy where it happens and we should advocate more that every browser these days is also a creation tool.

Building blocks in the browser

Another big thing I am very excited about are web components, which define the missing app widgets we need, X-Tag which makes those available cross-browser and the Mortar and Webgame stub systems. Both of those allow any developer to start an app or game from building blocks and with a deployment script that uses GitHub as the host. They even create the offline and app manifests for you. Watch out for that.

Conversion tools

Another way to get people to think about the web is to not make them think about it and instead use what they do already. Banabread is a game demo that is written in C++ and uses Emscripten to run in JavaScript and WebGL. Recycling versus creating something new that might not be used.

Heck, tools!

In general I think tools is what we need much, much more. A very interesting move is that Adobe - yes, the Adobe behind the evil Flash - released Brackets, which is an editor that also ties into live rendering in the browser. It is pretty alpha but the very important point here is that the company who makes all their money with tools and rules for example the graphic creation market supreme is playing with open source. They want developers to work with them and make Brackets better and see how it works for them. This is a good chance to work with a company that knows how to build good tools and get them to open up more.

The time is now, the place is here…

All in all there is no doom and gloom here, but we should have a sense of urgency. We have an incredible amount of good things to share and tell but if we fail to do so we'll appear as an outdated group of experts. Today is the day you can help the web be sexy again.

Write and share wisdom

The first step is simple. Write and share wisdom. Do not do it in random places, instead join one of the open systems that already contain great content and make them better.

Complain where people listen

James Vaughan
The second step is to reconsider our ways of complaining. Yes, it feels good to vent on Twitter or our blogs when things are broken, but it doesn't give you the feedback you need. You don't reach the people who do fix your problems, you just advertise that the web is not ready and people are not even fixing issues. And this is not true, when you file bugs and complain on the channels where the developers of browsers and the makers of standards are available things do change for the better.

Collaborative coding and styling

One new thing that came around in the last years is a massive amount of collaborative development tools allowing you to host a development issue and get it fixed by others with you directly there. Use those as fixing an issue with an immediate result works much faster than long-winded explanations as to what could be done.

Catch them young

Last but not least, support the open training and education tools that are mushrooming all over the web right now. A lot of them are funded and need content. The earlier we can get people to play with the web the harder it will be to get them messed up again by traditional education. I'd wager to guess that all of us came to the web because of interest and tinkering with things rather than graduating in a course. Let's make that the way in for new makers of the web, too.

Focus on the great things and tell their story

Let's watch that movie, the one where a wife and all but one children of a family are brutally murdered, the last child gets kidnapped and the father starts a desperate attempt to find it with his only ally being a mentally challenged woman.

Remember that when you talk about the web to get people excited about it to point out the good things. We are far too good complaining openly about things that are broken but fail at sharing our excitement. Let's do that more.