How the technology we use to build the Web shapes the web. A look at the history, present, and future of the programming languages and tools used in web development, and how they've impacted the culture of the Web.
1. Mind the Tools
HOW THE TECHNOLOGY WE USE TO BUILD THE WEB
SHAPES THE WEB
Alex Payne
Edge of the Web 2009 – Perth, Australia
❦
2. Introduction
❖ Working on Twitter since
January, 2007.
❖ Working on the Web since age
12 (1995).
❖ A bit nuts about programming
languages.
❖ Co-author of Programming Scala
from O’Reilly (October, 2009).
8. In The Beginning...
❖ HTML born in 1990-91.
❖ First proper public specification of HTML arrives in
1993.
❖ NCSA Mosaic 1.0 released in April, 1993, just as CERN
announces that the Web will be free and open.
❖ CGI standard emerges in 1993, enabling the earliest web
applications.
9.
10. The CGI Era
❖ 1993 - 1997.
❖ Most common languages for CGI scripts:
❖ C
❖ Perl
❖ Reduces data to key-value pairs.
❖ The primordial soup of web applications.
11.
12. The Applet Era
❖ 1995 - 1997.
❖ A showcase for the Java language.
❖ The first “dynamic” content on the Web.
❖ Solid security model, impressive demos, but never really
took hold.
❖ Killed by Microsoft’s unbundling and the rise of Flash
in the early naughts.
13.
14.
15. The Flash Era
❖ 1998 - present
❖ Started out as simply a solution for vector-based
animation.
❖ For a while, a competitor to “DHTML”.
❖ Now used mostly for delivering video and games.
❖ Deep concern in the Web standards and FOSS
communities about its use.
16. The JavaScript Era
❖ 1998 - present.
❖ From animations and client-side form validations to
web application greatness.
❖ Much maligned, must misunderstood.
❖ Now one of the most widely-deployed languages in
existence.
17.
18. The PHP Era
❖ 1998 - 2005
❖ The first programming language built explicitly for web
development.
❖ Decent performance, fast development cycle.
❖ Encourages poor programming practices.
❖ Also spawned ASP.
19. The LAMP Era
❖ 2001 - 2007
❖ Python catches up to PHP.
❖ Perl is still around.
❖ Generic interfaces like FCGI enable a “right tool for
the job” mentality.
❖ Open source web servers and databases have matured.
20. The Age of Frameworks
❖ 2005 - present.
❖ Ruby on Rails, Django, and many copycats.
❖ Codifying best practices, treating web application
development like “real” software development.
❖ Increased productivity, but at the cost of vendor
dependency.
23. Lessons of History
❖ Dynamic, interpreted languages have been
dominant on the Web.
❖ Languages built exclusively for the Web face
tough criticism (PHP, JavaScript).
❖ No one technology lasts forever – and that’s a good
thing.
26. APIs Everywhere
❖ Not just for mashups anymore.
❖ Eat your own dog food: API as systems architecture.
❖ Letting data escape the browser model.
27. JavaScript Everywhere
❖ Use the same language, front-to-back.
❖ Perfect for AJAX-heavy applications.
❖ JSON as universal object format.
❖ A bit untested, but AppJet and others are paving the
way.
28. Code Generation
❖ Use the same language for everything, but compile
down to HTML, CSS, and JavaScript.
❖ Google Web Toolkit (GWT).
❖ Popular in the Ruby and functional language
communities.
29. Refining Standards
❖ HTML 5, JavaScript 1.9
❖ new challenges:
❖ mobile
❖ geolocation
❖ heavyweight web applications (GMail, etc.)
❖ old and difficult challenges:
❖ internationalization
❖ accessibility
30. The Web Outside The Browser
❖ Taking web development to
other realms:
❖ the desktop (AIR, Titanium)
❖ mobile (Palm webOS)
❖ Why build your own
development model?
32. The Post-Framework Era
❖ Message queues connecting heterogeneous components.
❖ Trickle-down SOA.
❖ Back to LAMP, only language doesn’t matter this time.
❖ And, yes, finally, the Cloud.
33. The Native Era
❖ Google Native Client.
❖ Getting video out of Flash.
❖ Mobile apps.
34. The Functional Era
❖ Functional languages fit the Web development model.
❖ It’s taken time for the old FP languages (Lisp, Haskell,
OCaml) to build up Web tooling.
❖ Newer functional languages (Scala, Clojure) are already
productive and competitive for Web work.
❖ Even newer FP languages are aimed squarely at the Web
(Arc, Ur).