Rapid Evolution of Web Dev? aka Talking About The Web

Preview:

DESCRIPTION

Thomas Powell gives a Meme peppered talk at Interactive Day San Diego about the Web and Web Dev tech focusing on how far (or not) we have come since the late 1990s.

Citation preview

THE RAPID EVOLUTION OF WEB DEVELOPMENT

HTML5, CSS3 and Chrome 19 is so yesterday!Or

Thomas A. Powelltpowell@pint.com

@PINTSD

Who Am I?

• Yeah I worked on the Old Timey Internet

• Wrote a bunch of books

• Taught a lot people

• Web Agency Background

• Started a few successful Web Software Plays

Why Am I Here?

• Hoping to talk about Data Viz & Big Data

• “Too Specific. How about HTML5?”

• Ok, easy enough

• “Scratch that! Too techie, talk about changes and trends in Web dev instead!”

• Ok...sure (head scratching)

Here We Are Then• ~45 mins or so, let’s start the clock

• Time to talk about hopefully interesting things

• Sure you might be into marketing, but we need context so let’s talk about:

• Techie stuff : HTML5, JS, Networks, etc.

• Security and Privacy

• Performance

• Trends

Oh and Memes

 

A Long Time Ago...

• I wrote this book on paper

• Premise: Web Sites/Apps == Software, thus treat dev as such

• Then : “Wow, makes sense”

• Now : “Eh...Duh”

• So we’ve evolved and fast!?

What Makes Web Different?

• The Public Network

• Dev Practices

• Ownership

• Other Theories

The Network

• You don’t control it end to end

• Delivery time not guaranteed

• Latency is significant

• HTTP impacts

• Simple but...

• Stateless

• Slow

• Security - an after thought

Dev Practices

• What are those?

• Software Engineering without _________

• Release cycles

• You mean when we change code?

• QA

• Always doing or never doing?

• Let the users tell us!

Owner Effects

• Strong Patron and Walled Gardens

• Many Patrons and Open Market

• Convention and consensus over some predetermined standard

• Is there a right answer?

• Trade-offs always!

Theories• It’s different because

• Easy to leave ... but stickiness=lock-in

• Biz model ... but freemium looks like shareware

• Distribution ... but software is now the same

• Platform ... but browser becomes OS

• UI Issues ... but look at history

Let’s Take a Tour

• Different or not it doesn’t matter

• Time to tour the Web Dev Space

• We’ll go up and down the stack

• Visit some buzzwords

• Expose some pros and cons

• Hopefully seed many questions for the end

Browser Wars

• Version Number Battle

• Chrome 19*, Firefox 13, Opera 12, and coming up last IE 10

• Near monthly releases and nightly updates

• Tons of invented features

• Trouble: Continuous QA cycle!

Zombie Browsers

• Yes IE6 sucks (7/8 too)

• But did it back then?

• Consider that Chrome 19 will suck in 10 years

• Dev today for features which you expect to be standard which later aren’t...what happens?

Browser as Platform

• Browsers have more privileged access

• File System, Geoloc, WebCam, Gamepad, and more

• Native is ultimate goal - see Google Native Client

• Netscape’s early vision finally realized

• Browser as OS - see Chrome OS

• Outcomes: Security, Complexity, Portability just in new container

What is HTML5?• Sad Truth: Most often a buzzword for

anything new, focused on some feature of interest and tremendously confused with heavy JavaScript use

• Sprawling Spec under constant change

• Evolution of HTML 4

• Acknowledges failure of XHTML

• Paves cowpaths with non-standard to standard

• Secret Win: Tag Soup Parse Rules

HTML5 : Semantic Tags

• <header>, <footer>, <section>, <article>, <aside>, <nav>, <figure>, <mark>, <time>

• You can easily use them now

• HTML5 Shim, Modernizr

• Better than <div> - itis

• Outcomes: Semantics (maybe SEO), outlining

HTML5 : Web Forms

• Rich Form Widgets

• Date Pickers, Color Pickers, Sliders, Search box, Autocomplete Lists

• Semantic Types

• email, tel, url, number

• Validation without JavaScript

• pattern, required, semantic types

HTML5 : Media

• <audio> and <video> tags

• Flash video begone!

• But...codec chaos returns

• And maturity and integration jumps backwards

HTML5 : Canvas

• <canvas> tag + Canvas API using JavaScript = Programmatic Bitmap Graphics

• Pros: Small API and fast esp. if GPU accelerated

• Cons: Too low level, no IE until IE9, Not retained mode (no picking), accessibility is bad

Canvas Alternatives

• SVG - tag based, retained mode, in some cases faster

• JS DOM Animation - flexible but can be slow

• Flash - yes Flash, get over it

• CSS Animations and Transitions

• Fast but specialized and feature limited

JavaScript Everywhere• Client-Side (with many names - DHTML,

Ajax, HTML5, etc.)

• Library Mania: jQuery, ExtJS, Backbone,...

• Server-Side:

• node.js, silk.js, Helma, Ringo, even classic ASP

• Mobile

• Sencha Touch, Phone Gap, ...

• Even Desktop

Hating on JavaScript• It has “Ugly Parts”

• Rework it - ECMAScript5, 6, etc.

• Compile to it - Coffeescript, GWT

• It’s Slow

• Yeah and other dynamic langs?

• Great improvements: V8, Chakra

• It’s insecure

• Is it? Or is it what you are doing with it?

CSS 1,2,3,4...

• Multiple Columns, Drop Shadows, Custom Fonts, Image Borders, Layouts, Media-Queries, Animations, Filters!?

• CSS Bloat

• Welcome to -vendor prefix hell!

• Compilers Emerge

• Less, Sass, Stylus

• BTW CSS Variables are here too

Server-Side

• First stop the “____ won’t scale” nonsense, that’s a different problem

• JavaScript to erode PHP, Ruby, Python

• All continue with C# and Java a bit more entrenched

• More biz logic moves client-side.

• Server side becomes service layer

• REST won, URL as command line, and JSON everywhere

Database Drama

• The Rise of NoSQL (ex. MongoDB)

• Lots of hype here

• Good reasons why we want it but...

• DB research and tradition thrown out the window

• Change for sure, I expect a hybrid winner

Security Challenges

• Hack traffic is nearly ambient at this point

• Exploits are now industrialized

• Pants are down all over the place

• Anonymous is really not that l33t

• Trust relationship are not understood or admitted to

Security Face Palms

• The client-side is untrustworthy!

• You can’t can’t can’t trust inputs

• You must encrypt your transmission

• Especially given heavy public WiFi use

• Open Source is open to all (hackers included)

Web Security Truths

• Tech can’t solve the security problem

• There is no such thing as perfect security

• Security is a posture, not a feature

• The business model of Web security is mostly flawed

Delivery Woes• Speed matters! Can never be fast

enough

• Bandwidth fallacy still reigns, but latency is more important!

• Even 100ms can equal loss

• Client Side problems are source of > 80% of speed problems

• 3rd Party Includes and Scripts are major problem

• Speed, Security, even SPOF!

Serving Changes

• Performance & scale matter!

• Apache is fading

• Others rising Ngnix, Lighthttpd, node.js, etc.

• Protocols are changing - SPDY

• # of requests is the issue

• I/O is still a bottleneck

• CDNs use is more common

Analytics Shake-Up

• Reliances on JavaScript, Cookies and 3rd party hosts are quite troubling

• Lots of handwaving and conflicts of interest

• There is increasing tracking abuse

• Regulation is coming

• EU Cookie Law

• Could be a good business opportunity

Big Data != Big Wisdom

• We want to know everything!

• Storing and processing all that data is expensive and time consuming

• Viz helps

• Good questions help more

Data Driven to Disaster

• Lots of “data science” but often lack some basic scientific thinking patterns

• Causality and correlation are quite often confused

• Tons of confirmation bias

• Lots of sampling bias

• Crowd Wisdom is ruling a bit much

• Science isn’t easy, be skeptical

Mobile! Mobile! Mobile!

• Indeed huge changes!

• Mobile won’t completely rule

• On Star Trek ...

• In Japan...

• Creation vs. Consumption

• Walled Garden versus Open Garden tension again

Tool/Tech Blaming

• The languages, services, tools, hosts, etc. you use don’t make you do dumb things we tend to do that fine on our own

• Looking for the perfect _____ is going to be a long process

• Trade-offs exist, deal with them

Implementation over Function?

• Who cares what your app is written in?

• Hackers? Competitors?

• What does Google or ____ use?

• Does it matter?

• BTW ever viewed Google’s source?

Evaluation Solely By Looks

The Constant

• Being human is the constant, new technology is the variable

• Human nature tends to trend to norms over time

• The Web doesn’t make you (or your kids or customers) a smarter, super-friend making multi-tasker

User General Truths• Customer always right, listen to the

customer, nobody likes to wait, less work-more gain, etc.

• I’ve tended to find more insight in books like Robert Cialdini’s Influence: The Psychology of Persuasion or general works on General Biz, Psych, CogSci, Interface Design, etc. then Web specific ones

• BTW have you heard? The Web is the real world?