Is the Browser a Transitional Technology?

34
Is the Browser a Transitional Technology? Talk, by Allen Wirfs-Brock Agile Portugal 2011, June 23, 2011 One dimension of software agility is the ability to adapt to changing development technologies and infrastructure. Long-lived software systems may have to be adapted to several major technology changes over the course of their active use. Today, many project are increasing focused on web based applications that use web browsers as their primarily user interface. How durable is this application style going to be? Is the browser likely to continue to expand its primacy? Can we expect the basic structure of our web facing applications to remain fairly stable for the foreseeable future or do we need to be preparing to make drastic changes? If the browser is a transitional technology, what will replace it? In this talk I’ll explore these and related issues about what is likely to happen with web develop technologies over the next few years.

description

Presentation by Allen Wirfs-Brock Agile Portugal 2011, June 23, 2011 www.wirfs-brock.com/allen @awbjs One dimension of software agility is the ability to adapt to changing development technologies and infrastructure. Long-lived software systems may have to be adapted to several major technology changes over the course of their active use. Today, many project are increasing focused on web based applications that use web browsers as their primarily user interface. How durable is this application style going to be? Is the browser likely to continue to expand its primacy? Can we expect the basic structure of our web facing applications to remain fairly stable for the foreseeable future or do we need to be preparing to make drastic changes? If the browser is a transitional technology, what will replace it? In this talk I’ll explore these and related issues about what is likely to happen with web develop technologies over the next few years.

Transcript of Is the Browser a Transitional Technology?

Page 1: Is the Browser a Transitional Technology?

Is the Browser a Transitional Technology?

Talk, by Allen Wirfs-Brock

Agile Portugal 2011, June 23, 2011

One dimension of software agility is the ability to adapt to changing development technologies and infrastructure. Long-lived software systems may have to be adapted to several major technology changes over the course of their active use. Today, many project are increasing focused on web based applications that use web browsers as their primarily user interface. How durable is this application style going to be? Is the browser likely to continue to expand its primacy? Can we expect the basic structure of our web facing applications to remain fairly stable for the foreseeable future or do we need to be preparing to make drastic changes? If the browser is a transitional technology, what will replace it? In this talk I’ll explore these and related issues about what is likely to happen with web develop technologies over the next few years.

Page 2: Is the Browser a Transitional Technology?

Allen Wirfs-Brock

Is the Browser a Transitional Technology?

Page 3: Is the Browser a Transitional Technology?

A little background about me •  Compilers, Smalltalk virtual machines, GCs, language design, development tools •  Launched first commercial Smalltalk: Tektronix 4404 •  Digitalk/Parcplace-Digitalk: Enterprise Scale Smalltalk •  (Re-) Instantiations: JOVE Java optimizing compiler, Eclipse tools •  Microsoft: JavaScript/ECMAScript 5 •  Mozilla: Future of JavaScript and the Web platform

Page 4: Is the Browser a Transitional Technology?

Fundamental Change

•  We’re mostly used to incremental, evolutionary change

•  Fundamental change is rare and hard to recognize

•  Usually can’t prepare for major discontinuities and shouldn’t worry about them…

•  … except if you are in the midst of such change

Page 5: Is the Browser a Transitional Technology?

The Eras of Computing

1950 1960 2000 2010 2020 1990 1980 1970

Soci

etal

Impa

ct

Corporate Computing

Personal Computing

New Era

Computers empower/enhance enterprise activities

Computers empower/enhance Individuals’ tasks

Page 6: Is the Browser a Transitional Technology?

The New Era of Computing

•  Devices not Computers

•  Ubiquitous access to information

•  Computer augmented life

I want my stuff (data and apps) right now, wherever I am, using whatever device is available. I can’t live without it!

The Ambient Computing Era

Page 7: Is the Browser a Transitional Technology?

What’s the Computing Environment of your Application

•  Today?

•  Tomorrow?

Design for today, be prepared for tomorrow.

Desktop PC?

Variety of mobile/fixed devices?

Page 8: Is the Browser a Transitional Technology?

Transitional Technologies

•  Precursors of fundamental change

•  Exhibit some characteristics of what will come

•  Firmly root in the status quo

Page 9: Is the Browser a Transitional Technology?

Transitional Technologies Precursors of PC Era

1950 1960 2000 2010 2020 1990 1980 1970

So

cie

tal

Imp

act

Personal Computing

Corporate Computing

Timesharing

Minicomputers

Page 10: Is the Browser a Transitional Technology?

Transitional Technologies Precursors of Ambient Computing Era

1950 1960 2000 2010 2020 1990 1980 1970

So

cie

tal

Imp

act

Personal Computing

Corporate Computing

Timesharing

Minicomputers

Ambient Computing

WWW/Browsers

Cell phones

Page 11: Is the Browser a Transitional Technology?

The Cell Phone

•  Always with you

•  Always connected

•  But initially dedicated into a single use case

•  PC era business models

Page 12: Is the Browser a Transitional Technology?

The WWW/Web Browser •  First real ubiquitous web of

information

•  Universal client/server computation model (HTTP/REST)

•  Universal presentation platform

•  Availability more important than performance

•  A Web Browser is a classic PC application

Page 13: Is the Browser a Transitional Technology?

Why are these only transitional

•  Telephony is just an application

•  Wireless communications now common part of most devices

•  WWW data access is an essential part of most applications

•  Users don’t “go to a pc” to use the web any more

•  Growing focus on solutions (apps) not tools (the browser)

•  When something becomes ubiquitous, it disappears

Page 14: Is the Browser a Transitional Technology?

What do you have when you strip away the PC application part of a browser?

Page 15: Is the Browser a Transitional Technology?

What do you have when you strip away the PC application part of a browser?

Rendering

Layout

Styling Network

Local

storage

User Input

Language Runtime

HTML

CSS

SVG

JavaScript

Frameworks and Libraries

Page 16: Is the Browser a Transitional Technology?
Page 17: Is the Browser a Transitional Technology?

Java promised “write once, run everywhere”, the modern web application platform is delivering it.

Page 18: Is the Browser a Transitional Technology?

Web Apps vs. “Apps”

•  HTML/CSS/JavaScript/WebApp APIs���

•  Server via: HTTP, JSON, XML, Sockets

•  Works on any device

•  Task specific “Chromeless” UIs emerging

•  “App Stores” about to emerge

•  Proprietary Language+Framework (Java, Objective-C, C#, etc.)

•  Server via: HTTP, JSON, XML, Sockets

•  Works only within a device family

•  Task specific “Chromeless” UIs

•  Tied to a specific “App Store”

Page 19: Is the Browser a Transitional Technology?

What operating system does that device run?

Who cares….

Page 20: Is the Browser a Transitional Technology?

Each Computing Era has had a Canonical Programming Language

•  Corporate Computing Era – COBOL

•  Personal Computing Era – C

•  Ambient Computing Era – JavaScript ??

Page 21: Is the Browser a Transitional Technology?

Why JavaScript? •  It’s there – It’s working

•  It’s good enough

•  It’s getting better

•  What could replace it?

•  How could that happen? http://odetocode.com/Blogs/scott/archive/2009/03/18/signs-that-your-javascript-skills-need-updating.aspx

Page 22: Is the Browser a Transitional Technology?

JavaScript Performance Over Time

http://iq12.com/blog/as3-benchmark/ http://people.mozilla.com/~dmandelin/KnowYourEngines_Velocity2011.pdf

ActionScript (Flash) vs JavaScript

Page 23: Is the Browser a Transitional Technology?

Evolving JavaScript

http://wiki.ecmascript.org/doku.php?id=harmony:proposals

Page 24: Is the Browser a Transitional Technology?

PDF Renderer in JavaScript

http://people.mozilla.org/~gal/test.html

http://andreasgal.com/2011/06/15/pdf-js/

Page 25: Is the Browser a Transitional Technology?

CPython Compiled to JavaScript

http://syntensity.com/static/python.html

https://github.com/kripken/emscripten/wiki

Page 26: Is the Browser a Transitional Technology?

What About “The Cloud”

The Cloud

Page 27: Is the Browser a Transitional Technology?

We Really Aren’t Going Back to Timesharing

Hacking after midnight must be a life choice, not a necessity!

Page 28: Is the Browser a Transitional Technology?

What happening on the server? •  The server-side of applications don’t have the the “single

platform” imperative of clients: Java, .Net, Python, Ruby

•  Growing interest in also using JavaScript for the server portion of applications

Want to use same skills and technical resources as client

•  node.js ( http://nodejs.org/ ) is current attracting significant developer interest:

//hello world server var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/');

Page 29: Is the Browser a Transitional Technology?

Concurrency/Using Multicores

•  The Browser App Platform uses a very simple no shared state concurrency model. §  Web Workers §  Message passing and JSON data records §  Event loops §  Continuation passing style

•  Essentially the same model as browser çè webserver

Page 30: Is the Browser a Transitional Technology?

Clouds All the Way Down?

Device Cloud

Device Cloud

Device Cloud

Home Cloud

Brand X Public Cloud

Open Cloud

•  Common programming models

•  Common APIs •  Local/remote cloud

transparency

Page 31: Is the Browser a Transitional Technology?

A Universal Standards-based Open Platform?

•  A nearly universal software platform emerged to dominate each previous computing era.

§ Corporate Era: IBM Mainframes

§  PC Era: Microsoft/Intel PC

•  Is it possible for a vender neutral standards-based platform to achieve similar dominance?

Really? W3C, Ecma, WhatWG, IETF, Kronos, …

Page 32: Is the Browser a Transitional Technology?

What to do today?

•  IT apps will lag

•  But enterprises must become part of the Ambient Computing Environment.

•  User expectations driven by the ambient device experience

•  Ambient Computing technology and skills shifts will drive IT change

Building tomorrow’s legacy systems today.

Page 33: Is the Browser a Transitional Technology?

This is the most exciting time for the computing industry

since the 1980’s.

Enjoy it!

Page 34: Is the Browser a Transitional Technology?

Follow up

http://www.wirfs-brock.com/allen/posts/category/post-pc-computing