Date post: | 20-Jun-2015 |
Category: |
Documents |
Upload: | ca-api-management |
View: | 1,378 times |
Download: | 0 times |
1
Future Interface:
Mike Amundsen
Principal API Architect
@mamund
What 50+ years of
modern computing history
may tell us about
the future.
2
Mike Amundsen
Architect, Developer, Presenter
Hypermedia Junkie
Principal API Architect for Layer 7
“Help people build great APIs for the Web”
Personal Mission
“Improve the quality and usability of information on the Web.”
3
What concepts and ideas have
influenced systems computing?
4
How have these ideas affected the
way we think of the Web today?
5
What does this tell us about a
possible future?
6
There is much we can learn from our history…
If we choose.
7
EARLY CONCEPTS
8
Vannevar Bush
Memex, 1945
Key project leader on the Manhattan Project to build the first nuclear
bomb.
“ A memex …is an enlarged intimate supplement to … memory.”
“With one item in its grasp, [the mind] snaps instantly to the next that is
suggested by the association of thoughts, in accordance with some
intricate web of trails carried by the cells of the brain.”
9
Vannevar Bush - Memex
10
Vannevar Bush - Memex
11
Vannevar Bush - memex
12
Vannevar Bush - memex
Mimic human linking using a machine
13
Ted Nelson
Hypertext, 1963
Identified and popularized early “cyber-culture” in 1979 book “Computer
Lib/Machine Dreams”
“If computers are the wave of the future, displays are the surfboards.”
14
Ted Nelson - Hypertext
15
Ted Nelson - Hypertext
16
Ted Nelson - Hypertext
Describe how linking works in a network
17
Douglas Engelbart
Computer mouse, 1965
Key to creating the ARPANET while at Stanford Research, Institue (SRI).
“Augmenting Human Intellect”, 1962
“[A] new and systematic approach to improving the intellectual effectiveness of
the individual human being … One of the tools that shows the greatest
immediate promise is the computer.”
18
Douglas Engelbart - computer mouse
19
Douglas Engelbart - computer mouse
20
Douglas Engelbart - computer mouse
21
Douglas Engelbart - computer mouse
Build the hardware that makes
the linked network possible
22
Early Concepts
Bush (1945)
Mimic human linking using a machine
Nelson (1963)
Describe how linking works in a network
Engelbart (1965)
Build the hardware that makes the linked network possible
23
AFFECTED SYSTEMS
24
Christopher Alexander
The Timeless Way of Building, 1979
Father of the “patterns” movement
“Complexity is one of the great problems in … design”
“There is one timeless way of building. It is a thousand years old, and the same
today as it has ever been. The great traditional buildings of the past, the villages
and tents and temples in which man feels at home, have always been made by
people who were very close to the center of this way.”
25
Christopher Alexander - Patterns
26
Christopher Alexander - Patterns
27
Christopher Alexander - Patterns
Identify patterns for thinking and acting
28
Donald Norman
The Design of Everyday Things, 1988
Action Lifecycle, Seven Stages of Action
“In the world” and “In the head”
“Simplification is as much in the mind as it is in the device.”
“Design is really an act of communication.”
29
Donald Norman - HCI
30
Donald Norman - HCI
31
Donald Norman - HCI
32
Donald Norman - HCI
Identify the cycle we all use for interaction
33
Roy T. Fielding
Architectural Styles and the
Design of Network-based Software Architectures, 2000
Created “REST”
Key in the startup and operation of the “Apache Foundation”
Representations and Hypermedia
“A resource is not the thing that is transferred across the wire or picked up off the
disk or seen from afar while walking your dog. Each of those is only a representation.
Do I think of a different identifier every time I see my dog, or do I simply think of my
dog as one identity and experience many representations of that identity over time
(and on into memory and imagination)?
34
Roy T. Fielding - REST
35
Roy T. Fielding - REST
36
Roy T. Fielding - REST
37
Codify a model for creating new systems
based on patterns and interactions
Roy T. Fielding - REST
38
Affected Systems
Christopher Alexander (1979)
Identify patterns for thinking and acting
Donald Norman (1988)
Identify the cycle we all use for interaction
Roy T. Fielding (2000)
Codify a model for creating new systems based on patterns and
interactions
39
FUTURES
40
Git/Github
Launched in 2008
A web-based hosting service for software development projects that use
the Git revision control system.
“Bad programmers worry about the code. Good programmers worry about data
structures and their relationships.” – Linus Torvalds
41
Git/Github – social coding
42
Git/Github – social coding
43
Git/Github – social coding
44
Git/Github – social coding
45
Enable collaborative interaction at distances
(of time and space)
Git/Github
46
Ryan Dahl
Node.js, 2009
Makes network latency “a feature”
“Node.js [is] perfect for data-intensive real-time applications that run across
distributed devices.” – Ryan Dahl
It is more like C than it is like Python, and that is by design.” – Isaac Schlueter
47
Ryan Dahl – Node.js
48
Ryan Dahl – Node.js
49
Ryan Dahl – Node.js
50
Ryan Dahl – Node.js
51
Ryan Dahl – Node.js
52
Embrace latency as a feature in networks
Ryan Dahl – Node.js
53
Rich Hickey
Clojure 2007, Datomic, 2010
“Code is data”
“The past doesn’t change”
“Clojure is a functional language that explicitly supports programs as models and
provides robust and easy-to-use facilities for managing identity and state in a single
process in the face of concurrency.”
“ We need to move away from a notion of state as ‘the content of this memory block’
to one of ‘the value currently associated with this identity’”
54
Rich Hickey - Datomic
55
Rich Hickey - Datomic
56
Rich Hickey - Datomic
57
Recognize that all data is immutable,
we just have lots of copies w/ shared identity
Rich Hickey - Datomic
58
Eric Schweikardt
Cubelets, 2012
PhD in Architecture at Carnegie Mellon University
“Unlike contemporary robots in which a single “brain” controls the entire robot, robots
formed with [Cubelets] are made up of individual parts that have different functions,
yet work in unison to form the entire model.”
“People have a hard time thinking about complex problems.”
59
Eric Schweikardt - Cubelets
60
Eric Schweikardt - Cubelets
61
Eric Schweikardt - Cubelets
62
Eric Schweikardt - Cubelets
63
Eric Schweikardt - Cubelets
64
Design systems to enable
emergent behaviors
Eric Schweikardt - Cubelets
65
Futures
Ryan Dahl
Embrace latency as a feature in networks
Rich Hickey
Recognize that all data is immutable, we just have lots of copies with shared identity.
Eric Schweikardt
Design systems to enable emergent behaviors
66
CHOICES
67
Choices
What does the future hold?
68
Imperative vs. declarative
69
Centralized vs. distributed
70
Bigger/”smarter” vs. Smaller/”dumber”
71
Controlled vs. Collaborative
72
ONE POSSIBLE FUTURE
73
One possible future
What I would like to see…
74
One possible future
The type of system I’d like to use…
75
One possible future
The kind I want to help build…
76
One possible future
That future would be…
77
One possible future
Systems composed of many small independent units…
78
One possible future
Each unit based on timeless patterns…
79
One possible future
Able to bridge the gulf of execution and evaluation…
80
One possible future
All widely distributed…
81
One possible future
Capable of operating as a collective
82
One possible future
In order to augment human intellect.
83
However…
There is no single possible future…
84
There is no single possible future…
The choice is ours.
85
Future Interface:
Mike Amundsen
Principal API Architect
@mamund
What 50+ years of
modern computing history
may tell us about
the future.