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.
Mind the Tools HOW THE
TECHNOLOGY WE USE TO BUILD THE WEB SHAPES THE WEB ❦ Alex Payne Edge of the Web 2009 – Perth, Australia
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).
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.
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.
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.
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.
- 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.
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.
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.
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.
Lessons of History ❖ Dynamic,
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).