Presentation: Fail, Meh or Win? How do you want the web to be?
When you see this talk, you are at a web conference.
On these we show cool new stuff and teach people about using our technologies in different ways. We find inspiration, we discuss details and we get to know each other. When we go back to our day-to-day grind things look different though and the inspiration we got can turn into frustration.
Chris Heilmann will show some tricks and ideas how we can break that cycle. You should not have to be on stage to produce bleeding-edge awesome. And guess what? With the right attitude, you don’t have to.
Christian Heilmann, Mozilla, Frontrow, Krakow, Poland, October 2011
Be on the lookout for cool new technology
Play with technology, document for yourself what worked
Find ways to explain and demonstrate complex matters in a simple fashion
Fix issues and give them back to the original makers
Take part in discussions (forums, mailing lists, reddit, hackernews, google+, twitter)
Share your findings (twitter, blog, pinboard, delicious)
Give real examples and bring issues back to the makers
Give feedback and ask for improvements
Be positive about change
Question everything (in a constructive manner)
Always question the current state of affairs
The issue is once you are inspired and you know what cool stuff you could be playing with, your day to day job can appear bland and boring. And this is frustrating. I am sure all of you think you can do the same speakers on stage are doing.
Over the years I learned one thing as a web developer: nothing is set in stone. Our market moves so fast, there is no way to ever say that you are done as a web developer and you can stop caring about innovation. Not if you want to be a success.
No official accreditation in web development
Learning materials are free
Experts are easy to find and answer questions
You can start writing your first code with textpad or
We're a market where companies struggle to find people!
Of course the initial answer to me stating that the market is looking for talent is that people are looking for awesome rockstar developers and not you. That is true if you look at the job specs, but the fact is that job specs are never written by the people who hire. There is a lot of padding going on.
Therefore I think it is very important to start working together with people outside your remit. If you are a JS developer, you might want to talk to CSS fans. If you love markup and consider it a crime when people don't use the right semantic elements, ask why that happened and learn that there are issues.
Browsers are only as good as the feedback the makers get. Of course there is a lot of cool stuff being developed but most of the people working on browsers and sitting in standards bodies are not web developers. As Lea Verou put it in her Smashing Mag article:
Help The Community - Report Browser Bugs.
Don't build for one browser
Don't do everything in one technology
Document what is a hack
Start from a solid base
Even more scary, we seem to be steering towards a world where it is needed to have a modern browser to see a certain site. That, to me is unacceptable.
One of the more annoying examples of that was the Toyota "
It's a car" web site where a car salesman explained to you that it uses WebGL and HTML5 and that is why you need to download Chrome. Fact is that the site didn't do anything better in Chrome than in Firefox it seems. It was just a strange way of telling the audience that the agency didn't care much about cross-browser support.
Use the correct semantic HTML for the task (duh!)
Use new HTML5 elements when they make sense and are stable.
Write for humans, convert for computers.
Clearly mark generated code - this stops accusations
Avoid unnecessary dependencies
When it comes to using new browser capabilities, there is really no need to tell the end user to upgrade their browsers. Yes, we all want old browsers to die, but our users should not be the ones to bear the burden.
This Mozilla demo shows how you can drop an image into the browser, annotate it and upload the solution as an image to different social sharing sites.
As web developers we always had to be paranoid about writing code. We detect support, then we apply it. We check if the ice can hold us before skating on it. We jump into the river after checking that it is deep enough. Simple, really.
Replace technology alien to the browser with native one
Improve existing interactions
Add interactivity to previously static things
Replace simulated interfaces with real ones
A lot of people talking about HTML5 throw everything out we've done before. No need for semantic markup, our job is to give the same experiences native applications give us.
This is limiting the impact and usefulness of HTML5. The web has become the success it is not by being limiting but by being inclusive and adapting.
It is pretty much pointless to try to make an HTML5 app look and feel like a native app. First of all this only works on iPhone anyways as there is no "Android" look and feel. Instead, let's push HTML5 at what it is good at - being a web development stack.
Using open web technology means you can be flexible. Upgrades are easy, and your app can easily adapt to the needs of the user. The Boston Globe is a great example of that. By cleverly employing mediaqueries the same site can be seen across a lot of devices.
Build with sensible markup
Check for support, then apply
Raise the bar for day to day web sites
Use what improves the experience, not what is cool
File bugs and report successes
Don't limit yourself by what failed in the past
Firefox with native toolbars
In order to keep the open web the alternative of choice for app development we need to free the browser as the platform to allow us to access hardware and do the same cool things we can do with native apps. There are a few things brewing there and we would love to get your feedback. One of them is allowing the site to change the browser toolbars.
Defining access for web services to:
Another thing we are working on is a framework for apps that would allow you to tell people about your app from your web site, have full-screen applications that could be launched in the browser and from the desktop or on mobiles, and a synced experience across these devices.