Redtexture

Mark R.D. Jones

Category Archives: Programming, Data

Douglas Crockford on JSON and JavaScript

Links to a number of outstanding lectures given by Doug Crockford at conferences, about JSON,  and JavaScript, along with a brief history of computation in the 20th and 21st century, with transcripts.

Douglas Crockford — The JSON Saga
• Video and transcript (50 minutes): The JSON Saga. (Published July 2, 2009, by Yahoo! Developer Network.)
• Slides: http://yuiblog.com/assets/crockford-json.zip

In “The JSON Saga”, Crockford describes how he was influenced by Lisp, Rebol, JavaScript (visible via his book “JavaScript: The Good Parts”), and XML. He also traces the history of markup languages and angle brackets, from Runoff, Scribe, through HTML and XML. A few quotes from the talk:

We found it [JSON] worked really well. It was extremely effective for the thing that we invented it for – being browser server communication – but we also used it a lot for inter-server communication. Our platform scaled hugely, so we could have lots and lots of boxes, and they needed to be kept in sync, and we found JSON was perfect for sending messages between the servers. We also used JSON to implement a simple database, so we just have keys, and for each key we’d store some JSON data. It made it really efficient for storing stuff and getting it back.

One of the benefits of having a really simple description of a data format is it doesn’t take much code to implement it. And when you’ve got code that’s this easy to write, there are a lot of people who will be willing to write it, and share it.

Every language expresses these differently, and will add a lot of other stuff on top of it, like type systems, and semantics. But they all have the same idea about what the data looks like, and JSON has the thing that’s common to everything. By being at the intersection, it turns out to be the thing that everybody can agree on, so it’s really easy to pass data back and forth.

More generally, Crockford on JavaScript, computation and computer languages:
http://www.crockford.com/javascript/
Douglas Crockford: JavaScript – The Good Parts
(Video of keynote talk at the 2007 Konfabulator Developer Day, discussing the evolution of JavaScript and his changing relationship to the language.)
Crockford on JavaScript
A series of eight or more lectures conducted in 2010 and 2011, with transcripts for the first five, and links to accompanying slides. The first lecture surveys the history of computing machinery and the history of computer culture and languages influencing JavaScript. The remaining lectures give an introductory survey of JavaScript, with commentary on the “good parts”, the evolution of the language leading to the ECMAScript-5 standard and its strict mode, its functional model (derived from Scheme), its prototype object model (derived from Self), and generally, the rise of AJAX.
YUI Theater, Yahoo Developer Network – More talks by Doug Crockford and others.
• Most of the videos have migrated over to Youtube, since Yahoo’s departure from serving video to browsers (as distinct from video file download). Crockford’s presentations are also available via the Yahoo User Interface (YUI) Theatre channel on Youtube

• JavaScript: The Good Parts
Doug Crockford, Google Tech Talks, Web Exponents
(February 27, 2009)
Video: JavaScript: The Good Parts (1 hour, 4 minutes)
Slides: JavaScript the Good Parts

Google Code blog post about Crockford’s talk:
http://googlecode.blogspot.com/2009/03/doug-crockford-javascript-good-parts.html

Why Java Script Matters – talk given at Montana State University, Bozeman MT (Apr 20, 2011)
Video: Part One (32 Minutes) Part Two (34 Minutes)

• The State and Future of JavaScript
Doug Crockford, YUI Conference (October 29, 2009)
Video: The State and Future of JavaScript (56 minutes, with transcript)
Slides: The State and Future of JavaScript (powerpoint)

There’s pressure to make it a better compilation target. Now, this is a big surprise. Everybody thought that the Java VM was going to be the VM of the internet, but it turns out that JavaScript language is the VM of the internet. People are writing in Java, and Python, and lots of other languages, and then translating it into JavaScript because JavaScript, for all of its security problems, actually has a much better security model than everybody else. The CLR has a terrible security policy, Java has a terrible security policy — JavaScript is better than everybody else.

Douglas Crockford — Project Future Video and transcript (43 minutes) (November 10, 2010).
This talk was given at YUI Conf 2010 (Yahoo User Interface Conference),
November 8-10, 2010, at Yahoo!’s main campus in Sunnyvale, CA.

Four introductory JavaScript lecture-videos by Doug Crockford (October, 2006):
The JavaScript Programming Language (1 of 4)
The JavaScript Programming Language (2 of 4)
The JavaScript Programming Language (3 of 4)
The JavaScript Programming Language (4 of 4)
• Slides: http://yuiblog.com/assets/crockford/javascript.zip

Doublas Crockford – Advanced JavaScript (October 17, 2006) (links to three videos: 31, 25 and 11 minutes)
• Slides: http://yuiblog.com/assets/crockford/advancedjavascript.zip

• Douglas Crockford – An Inconvenient API: The Theory of the DOM (October 11, 2006) (3 parts)
This lecture was recorded before the release of Internet Explorer 7.
• Slides: http://yuiblog.com/assets/crockford/theory.zip

The Future of Programming Languages (Panel discussion)
Guy Steele, Douglas Crockford, Josh Bloch, Alex Payne, Bruce Tate; moderated by Ted Neward.
Strange Loop Conference 2010, Saint Louis, Missouri (October 15, 2010).
Video run-time 45 minutes.
The panel is asked in concluding to suggest a language that will help people learn the languages the panelists want people to learn. For example, in the past, for learning C++, it was often said it was useful to be exposed to Smalltalk; and for Scala, likewise, Haskell is a useful introduction.
• Bruce Tate (“Seven Languages in Seven Weeks”): IO (for prototypes, DSL, for JavaScript); Prolog.
• Josh Block (“Effective Java”): Scheme (simple, small, informative in approaching other languages); Assembly language at the processor level.
• Guy Steele: (Any three languages you don’t know), Clojure, Haskell.
• Alex Payne (BankSimple; “Programming Scala”): Forth, or Factor (for a bottom up low-level perspective).
• Douglas Crockford (“JavaScript, the Good Parts”): Scheme; Rebol (for DSL, dialects).

• CUSEC 2010 Keynote: Douglas Crockford – The Software Crisis
(Canadian University Software Engineering Conference)
Among many things he remarks upon, Crockford attributes a debt many modern programming languages and concepts owe to Smalltalk, which had the good fortune of eight years of gestation and re-writing before public release (funded by Xerox Corporation’s Palo Alto Research Center), unlike the eight weeks that JavaScript had.
Link to excellent and detailed notes on the talk by Joey deVilla

Doug Crockford on HTML and Fixing the Web
Interviewed by Ryan Slobojan. (Video and transcript.)
Strange Loop Conference 2010, Saint Louis, Missouri (October 12-15, 2010).
Selected quotations from this interview:

HTML5 is huge and complicated and it’s going to take years to get it right and finished. While that is going on, that may prevent correction of this more serious problem. The cross-site scripting problem has been with us for 15 years now and it is serious and in my view, the HTML committee was negligent in not dealing with it.

There is a proposal and it is not complete. One problem with the way that HTML5 rolled out is that the browser makers got way ahead of the standard. In a way that’s good because it allows for testing of the standard before it gets finalized. The problem with that is in exposing all of those APIs to the web early, a number of developers have started implementing stuff, applications, sites using HTML5. It’s half-baked still. So W3C is not warning “Don’t use HTML5 yet. It’s there just for testing purposes.” Because a lot of interoperability hasn’t been worked out yet, the proposals are going to have to change possibly in significant ways before they are finalized.

And if you are writing applications on it now, then they are going to fail when the proposals are corrected. The danger is that if enough developers get in front of this thing then we will not be able to correct the specifications because we don’t want to cause mass breakage. If that’s the case, then things are going to be like they were back in the Netscape era, except even more so, in which inter-browser compatibility is severely broken. The group that is going to suffer the most for that would be the web developers.

• Douglas Crockford, “JavaScript & Metaperformance”. Velocity Conference 2011 Santa Clara, California (June 14-16, 2011).
Video: http://www.youtube.com/watch?v=HrFpqmgv2DY (16 minutes)

• Douglas Crockford “Server Sidedness by Douglas Crockford at Yahoo! Open Hack EU 2011” Bucharest, Romania (May 14-15, 2011).
http://www.youtube.com/watch?v=Nafl-UjeOU0

• Douglas Crockford Heresy & Heretical Open Source: A Heretic’s Perspective
Strange Loop 2010 St. Louis, Mosurri, USA (October 15, 2010) (59 minutes) (Publishedon InfoQ.com)

Advertisements

Leslie Lamport on distributed systems

An interview with Leslie Lamport by Mihai Budiu (May 3, 2007)
A transcript of an interview with Leslie Lamport, surveying Lamport’s wide-ranging activities in distributed systems.

The Introduction to the interview:

Leslie Lamport is a legendary figure of computing. While he is probably most well-known because of the open-source typesetting LaTeX macro package and book, arguably his most important contributions are in the domain of distributed systems; this is also the subject of this interview.