Crockford on JavaScript: A Public Lecture Series at Yahoo! - Volume One: The Early Years
Crockford on JavaScript: A Public Lecture Series at Yahoo! - Volume One: The Early Years
Weaving the Threads
- The people who should be the first to recognize the value of an innovation are often the last.
- Obsolete technologies fade away slowly.
- Sometimes forward, sometimes backward.
- The Myth of Inevitability.
Carriage Return & Linefeed (crlf)
the carriage return character would take the printed element and push over to the left
the linefeed character would roll the paper one line
http://en.wikipedia.org/wiki/Douglas_Engelbart
http://www.youtube.com/watch?v=JfIgzSoTMOs
An End to Innovation
We have a small set of CPU architecture
- Intel (computers)
- PowerPC (games)
- ARM (mobile)
ALOGOL 60
The best design-by-committee in the history of programming languages.
Atari 2600 VCS
- 6502 CPU
- There is no software or firmware in the console.
- A cartridge can hold 4K or 8K
- Console has 128 bytes of RAM. That has to hold all the game's dynamic states, including the subroutine stack.
ALGOL -> Simula (first object-oriented language, classes & objects) -> Smalltalk (for kids)
Object Oriented Programming
- 1967 Simula
- 1972 Kay begins Smalltalk
- 1980 Smalltalk released
- 1995 C++ Programming Language
- 1995 The Java Programming Language
Leaps
- Plugboards
- Symbolic Assembly Language
- High Level Languages
- Structured Programming
- Object Oriented Programming
Smalltalk -> Self (took the smalltalk idea, and took the classes out, one object inherited from other object.)
The Actor Model (from smalltalk)
What is "send a message" meant "send a message".
- desktop app all build around event loop, look very much like message queue, so application is an actor
- web server is an actor
LISP (AI language developed in MIT, 1958)
-> Scheme
The Actor Model
LISP
- tail recursion in order to allow you to keep calling things that never expect to return without running out of memory
- lexical closure if function is nested inside another function they get access of everything that outer function has, if the outer function has already returned.
The Actor Model -> Joule
-> E (The Object Capability Model)
Java
Caja is based on the work of E.
HyperCard types
- Stack: contains background and cards
- Background: an images and buttons and fields
- Card: a background and buttons and fields
- Button: text and/or image
- Field: text
on mouseUp
put "100, 100" into pos
repeat with x = 1 to th number of card buttons
set the location of card button x to pos
add 15 to item 1 of pos
end repeat
end mouseUp
HyprtCard
- Stacks of cards containing images, buttons, and text fields.
- Didn't anticipate color.
- Didn't anticipate text links.
- Didn't anticipate networking.
- A decade alter ,cards would become disappear
Java ->
Scheme -> JavaScript
Self ->
(you just can't do scheme, too weired-looking, people don't like it, make it more look like java)
took syntax form java, take the function model of scheme (doug: best idea of history of programming language), took prototypal object from Self