is the browser a transitional technology?
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
![Page 1: Is the Browser a Transitional Technology?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/1.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/2.jpg)
Allen Wirfs-Brock
Is the Browser a Transitional Technology?
![Page 3: Is the Browser a Transitional Technology?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/3.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/4.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/5.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/6.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/7.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/8.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/9.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/10.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/11.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/12.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/13.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/14.jpg)
What do you have when you strip away the PC application part of a browser?
![Page 15: Is the Browser a Transitional Technology?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/15.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/16.jpg)
![Page 17: Is the Browser a Transitional Technology?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/17.jpg)
Java promised “write once, run everywhere”, the modern web application platform is delivering it.
![Page 18: Is the Browser a Transitional Technology?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/18.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/19.jpg)
What operating system does that device run?
Who cares….
![Page 20: Is the Browser a Transitional Technology?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/20.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/21.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/22.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/23.jpg)
Evolving JavaScript
http://wiki.ecmascript.org/doku.php?id=harmony:proposals
![Page 24: Is the Browser a Transitional Technology?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/24.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/25.jpg)
CPython Compiled to JavaScript
http://syntensity.com/static/python.html
https://github.com/kripken/emscripten/wiki
![Page 26: Is the Browser a Transitional Technology?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/26.jpg)
What About “The Cloud”
The Cloud
![Page 27: Is the Browser a Transitional Technology?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/27.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/28.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/29.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/30.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/31.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/32.jpg)
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?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/33.jpg)
This is the most exciting time for the computing industry
since the 1980’s.
Enjoy it!
![Page 34: Is the Browser a Transitional Technology?](https://reader033.vdocuments.net/reader033/viewer/2022052823/554f5b50b4c905524c8b54f3/html5/thumbnails/34.jpg)
Follow up
http://www.wirfs-brock.com/allen/posts/category/post-pc-computing