Mind the App - Simple but effective Tools for the EFL-classroom.
Mind The Tools
-
Upload
alex-payne -
Category
Technology
-
view
10.959 -
download
1
description
Transcript of Mind The Tools
![Page 1: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/1.jpg)
Mind the ToolsHOW THE TECHNOLOGY WE USE TO BUILD THE WEB
SHAPES THE WEB
Alex PayneEdge of the Web 2009 – Perth, Australia
❦
![Page 2: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/2.jpg)
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).
![Page 3: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/3.jpg)
![Page 4: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/4.jpg)
How does languageshape what we do?
![Page 5: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/5.jpg)
“That’s demented!”
![Page 6: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/6.jpg)
Agenda
i. A little history.
ii. A tour of the present.
iii. Gazing into the future.
iv. How languages and tools shaped the web.
![Page 7: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/7.jpg)
A Brief History
Programming Languagesof the Web
![Page 8: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/8.jpg)
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.
![Page 9: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/9.jpg)
![Page 10: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/10.jpg)
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.
![Page 11: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/11.jpg)
![Page 12: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/12.jpg)
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.
![Page 13: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/13.jpg)
![Page 14: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/14.jpg)
![Page 15: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/15.jpg)
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.
![Page 16: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/16.jpg)
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.
![Page 17: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/17.jpg)
![Page 18: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/18.jpg)
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.
![Page 19: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/19.jpg)
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.
![Page 20: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/20.jpg)
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.
![Page 21: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/21.jpg)
Timeline
1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
CGI (Perl, C)
1993 – 1997
JavaScript
1998 – 2009
frameworks (Rails, Django, et. al.)
2005 – 2009
Flash (ActionScript)
1998 – 2009
The Web opens up1993
Applets (Java)
1995 – 1997
HTML born
1990 – 1991
PHP
1998 – 2005
LAMP (Python, PHP, Perl)
2001 – 2007
VRML
1995 – 1997
![Page 22: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/22.jpg)
Charted Territory
Typing Object Model CompilationPerlPythonPHPRubyJavaScriptActionScriptJava
dynamic class-based interpreted
dynamic class-based interpreted
dynamic class-based interpreted
dynamic class-based interpreted
dynamic prototype-based interpreted
static prototype-based compiled
static class-based compiled
![Page 23: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/23.jpg)
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.
![Page 24: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/24.jpg)
The Present
![Page 25: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/25.jpg)
Frameworks Everywhere
❖ Application frameworks: Rails, Django.
❖ JavaScript frameworks: jQuery, YUI.
❖ CSS frameworks: Blueprint, Baseline.
❖ Typography frameworks (?!): TypeKit, sIFR.
![Page 26: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/26.jpg)
APIs Everywhere
❖ Not just for mashups anymore.
❖ Eat your own dog food: API as systems architecture.
❖ Letting data escape the browser model.
![Page 27: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/27.jpg)
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.
![Page 28: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/28.jpg)
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.
![Page 29: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/29.jpg)
Refining Standards❖ HTML 5, JavaScript 1.9
❖ new challenges:
❖ mobile
❖ geolocation
❖ heavyweight web applications (GMail, etc.)
❖ old and difficult challenges:
❖ internationalization
❖ accessibility
![Page 30: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/30.jpg)
The Web Outside The Browser
❖ Taking web development to
other realms:
❖ the desktop (AIR, Titanium)
❖ mobile (Palm webOS)
❖ Why build your own
development model?
![Page 31: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/31.jpg)
The Future
![Page 32: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/32.jpg)
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.
![Page 33: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/33.jpg)
The Native Era
❖ Google Native Client.
❖ Getting video out of Flash.
❖ Mobile apps.
![Page 34: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/34.jpg)
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).
![Page 35: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/35.jpg)
How Does All This Shape The Web?
![Page 36: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/36.jpg)
Dynamism.
![Page 37: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/37.jpg)
Tension.
![Page 38: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/38.jpg)
Heterogeneity.
![Page 39: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/39.jpg)
Evolution.
![Page 40: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/40.jpg)
Tools matter.Language matters.
![Page 41: Mind The Tools](https://reader033.fdocuments.net/reader033/viewer/2022052315/54b795ac4a795912598b456f/html5/thumbnails/41.jpg)
Thank you!
Questions?
❦