finding harmony in web development

122
Finding harmony in web development Chris Heilmann - London Web Meetup, February 2011

Upload: christian-heilmann

Post on 06-May-2015

9.487 views

Category:

Technology


0 download

DESCRIPTION

A presentation questioning why we keep fighting the same fights as web developers when there are a lot more important things to worry about.

TRANSCRIPT

Page 1: Finding harmony in web development

Finding harmony in web development

Chris Heilmann - London Web Meetup, February 2011

Page 2: Finding harmony in web development

You are in a strangeplace.

To the west is a rock, to the east is a hard place, to the north is the Devil and the south is the Deep Blue Sea.

Command:_

Page 3: Finding harmony in web development

A world of mixed messages

Page 4: Finding harmony in web development

A world of constant disagreement and overly quick and harsh responses.

Page 5: Finding harmony in web development

Let’s take a current hot topic...

Page 7: Finding harmony in web development

Erase and rewind.

Page 8: Finding harmony in web development

Text text text link text text text link

text

Text text text text link text link text

Text text text link text text text link

text

load

Document Document

load

Document

Basic Hypertext model:

Page 9: Finding harmony in web development

Frames!

Page 10: Finding harmony in web development

100% Flash Sites

Page 11: Finding harmony in web development

AJAX!

Page 12: Finding harmony in web development

Fragments vs. documents.

Page 13: Finding harmony in web development

Load on demand vs. massive documents.

Page 14: Finding harmony in web development

Application state vs. fragments.

Page 15: Finding harmony in web development

Breaking stuff...

Page 16: Finding harmony in web development

★Back button

★Browser history

★Bookmarks

★Deep links / Crawlability

Page 17: Finding harmony in web development

Actions are applicable in a certain environment.

Page 18: Finding harmony in web development

★Back button

★Browser history

Web sites

★Bookmarks

★Deep links / Crawlability

Page 19: Finding harmony in web development

★Back button

★Browser history

Web applications

★Bookmarks

★Deep links / Crawlabilityhttps://heatmap.mozillalabs.com/mozmetrics/

Page 20: Finding harmony in web development

http://www.flickr.com/photos/artonice/4599768501/

You miss all SEO benefits!

Page 21: Finding harmony in web development

Standards to the rescue...

http://www.w3.org/TR/html5/author/history.html

Page 22: Finding harmony in web development

Scripts to the rescue...

Page 23: Finding harmony in web development
Page 24: Finding harmony in web development

Web

Sit

e

Ap

plic

atio

n

Identity crisis...

Page 25: Finding harmony in web development

Religious debates

Page 26: Finding harmony in web development

Saving the long web!

Page 28: Finding harmony in web development

Brokenlinks are broken promises

Page 29: Finding harmony in web development

72165041

Page 30: Finding harmony in web development

Web vs. Contracts

Page 31: Finding harmony in web development
Page 32: Finding harmony in web development

Corporate shortsightedness?

Page 35: Finding harmony in web development

Show love to your links, but don’t kid yourself and others - there is no “long web”.

Page 36: Finding harmony in web development

Web vs. Realtime Web

Page 37: Finding harmony in web development

http://packrati.us

Page 39: Finding harmony in web development

Links and resources are great, but knowing people and having a network gets you somewhere!

Page 40: Finding harmony in web development

Best practices are timeless!

Page 41: Finding harmony in web development

The holy trinity according to the book of Zeldman.

Structure (HTML)

Presentation(CSS)

Behaviour(JavaScript)

Page 42: Finding harmony in web development

The reality according to people you ask these days.

Some HTML Placeholder stuff

CSS - created with a meta language asit lacks variables and stuff.

JavaScriptlibraries,

polyfills, templating languages and “real

languages” translated to JS.

Page 43: Finding harmony in web development

Of course depending on what they do...

clean HTML from Expression Engine or Wordpress.

CSS OMFG!!!! CSS3Transition and Animationand Shadows and fonts!

OMG OMG OMG!

jQuery!

Page 44: Finding harmony in web development

We tend to define tech by how we use it rather than what it is meant to do.

Page 45: Finding harmony in web development

This yields a plethora of different definitions.

Page 46: Finding harmony in web development

★ JavaScript’s bitch (empty elements, links pointing nowhere, content to show and hide)

★ A static database (microformats, semantics of awesome)

★ The thing Google loves

★ The end result of using real languages on the server.

★ Outdated

What is HTML?

Page 47: Finding harmony in web development

★ Something to style and animate with - really the thing that makes the web interesting.

★ Something to simulate layouts with and hope they work.

★ Not good enough - it needs variables and constants and mixins and all the other cool thing real languages have.

★ Broken

What is CSS?

Page 48: Finding harmony in web development

★ The predecessor to jQuery.

★ Dangerous - use noscript.

★ Awesome, use it with node.js to see why it rocks.

★ Too hard to learn.

★ Broken. Time to use LUA/Python/Ruby/Coffescript instead.

★ The thing Crockford understands.

What is JavaScript?

Page 49: Finding harmony in web development

Time for a more flexible approach it seems.

Page 50: Finding harmony in web development

Agile and small one-size-fits-all solutions are the future.

Page 51: Finding harmony in web development

jQuery.com - 2006

Page 52: Finding harmony in web development

There’s a plugin for that!

Page 53: Finding harmony in web development

Lots of small, very clever solutions adding up...

http://www.flickr.com/photos/wheatfields/3026491551/

Page 54: Finding harmony in web development

Is modularity extra complexity?

Page 55: Finding harmony in web development

shrtr = btr!

Page 56: Finding harmony in web development

B=(function x(){})[-5]=='x'?'FF3':(function x(){})[-6]=='x'?'FF2':/a/[-1]=='a'?'FF':'\v'=='v'?'IE':/a/.__proto__=='//'?'Saf':/s/.test(/a/.toString)?'Chr':/^function \(/.test([].sort)?'Op':'Unknown';

“Clearly  code  quality  is  not  important  to  you,  or  you  would  not  be  demanding  your  right  to  write  incompetent  crap.”

Douglas  Crockford

Page 57: Finding harmony in web development

<!doctype html><html lang=en><head><meta charset=utf-8><title>blah</title></head><body><p>I'm the content</p></body></html>

Page 58: Finding harmony in web development

http://html5boilerplate.com/

Page 59: Finding harmony in web development

http://initializr.com/

Page 60: Finding harmony in web development

Web content is a mix of different technologies to make them work and display correctly...

Page 61: Finding harmony in web development

Showing them off separately paints a wrong image!

Page 62: Finding harmony in web development

Getting it out the door as quickly as possible - reiterate and fix later.

http://www.flickr.com/photos/artonice/4599768501/

Page 63: Finding harmony in web development

Abstracting problems into new languages and preprocessing.

Page 64: Finding harmony in web development

Unknown overheads:

★ Portability.★ Training of all involved.★ Explanation of abstraction layers for

maintainers.★ Performance impact (can the client/

server handle it?).★ Impact on UX/PM.

Page 66: Finding harmony in web development

The community knows best.

http://tools.ietf.org/html/rfc2795

Page 67: Finding harmony in web development

“If  you  animate  things,  do  it  in  CSS!  CSS  transitions  and  animations  are  are  faster  as  they  are  hardware  accelerated  and  people  don’t  need  to  learn  JavaScript!”

Page 68: Finding harmony in web development

“Using  a  Mac  is  the  best  thing  you  can  do  right  now,  but  be  careful  as  everything  is  faster  and  looks  much  smoother  there!  Test  in  a  VM,  too!”

Page 69: Finding harmony in web development

“Chrome  is  currently  the  fastest  browser  -­‐  no  point  in  using  any  other  if  you  want  to  build  things  fast.”

Page 71: Finding harmony in web development

https://developers.facebook.com/blog/post/460

On  desktops,  using  CSS  transitions  for  motion  or  CSS  keyframes  for  animations  were  slower  than  simply  using  JavaScript  for  these  tasks.  Worse,  they  often  generated  noisy  framerates,  so  they  are  not  a  good  solution  for  games  in  desktop  browsers.

Page 72: Finding harmony in web development
Page 73: Finding harmony in web development

Sentiment vs. research

http://twitter.com/tomcopy/statuses/36378510465433600

Page 74: Finding harmony in web development

Bring on the hyperboles!

Page 75: Finding harmony in web development
Page 76: Finding harmony in web development

SEO techniques - anything to stand out.

Page 77: Finding harmony in web development

(...)

Page 78: Finding harmony in web development
Page 79: Finding harmony in web development

Are we really that broken as a media that experts need to resort to tricks to lure us to content?

Page 80: Finding harmony in web development
Page 81: Finding harmony in web development

All this sensationalism doesn’t get us anywhere...

Page 82: Finding harmony in web development

So many theories, so many prophecies. What we need now is a change of ideas!

Page 83: Finding harmony in web development

I am worried about the internet right now.

Page 84: Finding harmony in web development

From read/write web to consumption media.

Page 85: Finding harmony in web development

Net neutrality? Censorship and government control?

Page 86: Finding harmony in web development

I am worried about lock-in to certain systems.

Page 87: Finding harmony in web development

Formal education vs. needs of the market.

Page 88: Finding harmony in web development

We believe that the web is more cared for than owned.

Page 89: Finding harmony in web development

We are the people who make the web work - we should have fun doing it!

Page 90: Finding harmony in web development

First up: Chill the f*ck out!

Page 91: Finding harmony in web development

Stop yourself from spouting truisms and do some reflection.

Page 92: Finding harmony in web development

Encouraging discussion and explaining your POV is a great way towards finding solutions.

Page 93: Finding harmony in web development
Page 94: Finding harmony in web development
Page 95: Finding harmony in web development

Context is king!

Page 96: Finding harmony in web development

There is no such thing as a perfect web product that meets all needs of the web audience.

Page 97: Finding harmony in web development

Explaining the context of a product makes sure people don’t measure it with the wrong values...

Page 98: Finding harmony in web development

...or implement it where it doesn’t fit.

Page 99: Finding harmony in web development

Let’s move from showcases to case studies.

Page 100: Finding harmony in web development

We have inspiration overload and a lack of real implementations.

Page 101: Finding harmony in web development

The main market we work for needs to get a push to move on.

Page 102: Finding harmony in web development

Let’s focus on the future and apply something I call “web euthanasia”.

Page 103: Finding harmony in web development

Redirect old and outdated tutorials to new and maintained resources!

Page 104: Finding harmony in web development

Offer a basic, working experience for legacy browsers - not more, not less.

Page 105: Finding harmony in web development

Simulating new tech with old platforms means we also need to test with them - wasting time!

Page 106: Finding harmony in web development

Let’s take ownership of the web our jobs are dependent on!

Page 108: Finding harmony in web development

Question authority

Page 109: Finding harmony in web development

Our job is to make the web of tomorrow better than the web of today.

Page 110: Finding harmony in web development

This means we need to let go of some old ideas and be flexible.

Page 111: Finding harmony in web development

It also means to concentrate on our outcome, not our ego.

Page 112: Finding harmony in web development

So instead of creating a lot of soon-to-be outdated “look what I did” posts, let’s collaborate.

Page 113: Finding harmony in web development

Forrst

http://forrst.com/

Page 114: Finding harmony in web development

Forrst

http://jsfiddle.net/

Page 115: Finding harmony in web development

http://jsbin.com/

Page 116: Finding harmony in web development

https://github.com/

Page 117: Finding harmony in web development

Go where people are who build for the web, but aren’t where we normally go (conferences, meetups)

Page 118: Finding harmony in web development

http://stackoverflow.com/

Page 119: Finding harmony in web development

http://www.quora.com/

Page 120: Finding harmony in web development

Everyone of you has something to contribute.

Page 121: Finding harmony in web development

Tell others, work together and build *real* products!

Page 122: Finding harmony in web development

Thanks!

Chris Heilmann@codepo8#mozilla#html5/freenet