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.
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Is the Browser a Transitional Technology?
1. 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.
2. Is the Browser a
Transitional Technology?
Allen Wirfs-Brock
3. 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
4. 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
5. The Eras of Computing
Computers
empower/enhance
New
Societal Impact
Individuals’ tasks
Era
Computers
empower/enhance
enterprise activities
Personal Computing
Corporate Computing
1950
1960
1970
1980
1990
2000
2010
2020
6. 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
7. What’s the Computing
Environment of your Application
• Today?
Desktop PC?
• Tomorrow?
Variety of mobile/fixed devices?
Design for today, be prepared for tomorrow.
9. Transitional Technologies
Precursors of PC Era
Societal Impact
Minicomputers
Timesharing
Personal Computing
Corporate Computing
1950
1960
1970
1980
1990
2000
2010
2020
10. Transitional Technologies
Precursors of Ambient Computing Era
WWW/Browsers
Societal Impact
Ambient
Cell phones
Computing
Minicomputers
Timesharing
Personal Computing
Corporate Computing
1950
1960
1970
1980
1990
2000
2010
2020
11. The Cell Phone
• Always with you
• Always connected
• But initially dedicated into a single use case
• PC era business models
12. 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
13. 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
14. What do you have when you strip away the PC
application part of a browser?
15. What do you have when you strip away the PC
application part of a browser?
Frameworks and Libraries
HTML
CSS
JavaScript
SVG
Language Runtime
Styling
Network
Local User
storage
Input
Layout
Rendering
16.
17. Java promised “write once, run everywhere”,
the modern web application platform is delivering it.
18. Web Apps vs. “Apps”
• HTML/CSS/JavaScript/WebApp APIs • Proprietary Language+Framework (Java,
Objective-C, C#, etc.)
• Server via: HTTP, JSON, XML, Sockets
• Server via: HTTP, JSON, XML, Sockets
• Works on any device
• Works only within a device family
• Task specific “Chromeless” UIs emerging
• Task specific “Chromeless” UIs
• “App Stores” about to emerge
• Tied to a specific “App Store”
20. Each Computing Era has had a
Canonical Programming Language
• Corporate Computing Era – COBOL
• Personal Computing Era – C
• Ambient Computing Era – JavaScript ??
21. 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
22. JavaScript Performance Over Time
ActionScript (Flash) vs JavaScript
http://people.mozilla.com/~dmandelin/KnowYourEngines_Velocity2011.pdf
http://iq12.com/blog/as3-benchmark/
27. We Really Aren’t Going Back to
Timesharing
Hacking after midnight must be a life choice, not a necessity!
28. 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 Worldn');
}).listen(1337, 127.0.0.1);
console.log('Server running at http://127.0.0.1:1337/');
29. 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
30. Clouds All the Way Down?
Open
Brand X Cloud
Public Cloud
Home
• Common programming
models
Cloud
• Common APIs
• Local/remote cloud
transparency
Device
Device
Device
Cloud
Cloud
Cloud
31. 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, …
32. 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.
33. This is the most exciting time
for the computing industry
since the 1980’s.
Enjoy it!
34. Follow up
http://www.wirfs-brock.com/allen/posts/category/post-pc-computing