The New Mobile Web
Mikael Kindborg
MoSync AB
Introduction
My Favourite languages are Lisp, Smalltalk, and C
I also like JavaScript, and CoffeeScript looks very promising!
JavaScript:
function square(x) {
return x * x;
}
CoffeeScript:
square: (x) ->
x * x
Early Bound vs. Late Bound
The theme of this talk is Early Bound vs. Late Bound Thinking & Technologies.
Ready made toys like model cars are early bound, that is, the design is set ("in stone") early on in the design/production process and cannot easily be altered when manufactured, neither by the designer nor by the end user.
Going Late Bound means that the design/product can be altered at "run time".
For example, a model car kit is a bit less early bound than a ready made car model, but once assembled an painted, it is not as straightforward to alter and experiment with.
By contrast. LEGO is a truely late bound type of toy. Children can assemble, alter and disassemble LEGO designs in endless ways.
Nathan Sawaya is an example of an artist that has taken LEGO-designs to new heights of creativity, see http://brickartist.com/
Going late bound enables both Dynamic Development and Dynamic Deployment.
Dynamic Development
Characteristics of dynamic development:
- Incremental coding
- No Build
- Edit/Run cycle blurred
- Edit the running program
- Edit code during debugging
- Dynamic languages enable incremental evaluation
- Spreadsheets
- Smalltalk
- Seaside
- Live JavaScript
- Greasemonkey and Extensions
- The work at http://vpri.org
- DroidScript
- Magic Words (interactive toy)
- Squeak: http://squeak.org/
- Pharo: http://pharo-project.org/
- Clamato: http://clamato.net/
- Seaside - Web application framework: http://seaside.st/
- VisualWorks/WebVelocity: http://cincomsmalltalk.com
- http://metatoys.org/propella/js/workspace.cgi/Tennis
- http://metatoys.org/propella/js/workspace.cgi/Home/
- http://droidscript.se/jsedit.html
To: self-interest@self.smli.com
Subject: Sun buys Java compiler technology based upon Self!!!
From: keith@uniteq.com (Keith Hankin)
Date: Tue, 18 Feb 1997 17:38:17 -0800
Sun has just announced that they are buying Animorphic
Systems, which for the last 2+ years has been developing
JIT compiler technology for Java and Smalltalk.
And, guess what? It's based upon the Self project!!!
http://www.merlintec.com/old-self-interest/msg01011.html
Strongtalk and Google V8:
From: Dave Griswold
Date: Tue, 2 Sep 2008 12:14:32 -0700 (PDT)
Local: Tues, Sep 2 2008 9:14 pm
Subject: Chrome and V8
Hi everyone,
It's been a while, but now that Google has announced
Chrome and V8, I can finally make a little clearer a
major reason why I haven't been pushing Strongtalk
development for quite a while: Chrome's new JavaScript
engine V8.
The V8 development team has multiple members of the
original Animorphic team; it is headed by Lars Bak,
who was the technical lead for both Strongtalk and the
HotSpot Java VM (as well as a huge contributor to the
original Self VM). I think that you will find that V8
has a lot of the creamy goodness of the Strongtalk and
Self VMs, with many big architectural improvements
http://groups.google.com/group/strongtalk-general/browse_thread/thread/40eb8f405fbd3041/0abb010f0eac18e9
Strongtalk type system:
Type System: It contains the first fully developed
strong, static type system for Smalltalk (hence the
name Strongtalk). The type system is both optional
and incremental, and operates completely independently
of the compiler technology (which means that normal
untyped Smalltalk code runs just as fast as typed code).
http://www.strongtalk.org/
Dynamic Deployment:
- Update application at any point - even while it is running
- User modifiable applications
- Networked/linked/browsable apps (web of applications)
- Security! (*x*)
Mobile Apps:
- Early bound
- Manual install
- Manual updates
- Isolated
- Developed in static languages (Java, Objective C/C++)
- Native access
- A bit more late bound
- Automatic install
- Automatic updates
- Networked
- Developed in dynamic language (JavaScript)
- Restricted native access
What it is:
- JavaScript on Android
- Experimental open-source project
- Based on Mozilla Rhino
- Full access to the Android API (minus subclassing)
- http://droidscript.se/
- http://droidscript.blogspot.com
- Edit on computer, copy files to device, run on device
- Edit on device, run on device
- Edit on device, run incrementally on device (like a REPL)
- Edit in browser, run incrementally on device
- Copy files to device
- Publish JavaScript files and open on device
- Publish inlined JavaScript on any web page and open on device
- Open JavaScript from an application (web of applications)
- Distribute as native application (with or without dynamic updates)
- Security! (*x*)
- HTML5 and other web-based techniques will become increasingly powerful
- Dynamic languages enable dynamic development and dynamic distribution of mobile applications
- Going late bound boosts creativity and user participation (LEGO)
- A mobile web browser based on a dynamic programming language (NoHTML) would be cool
- mikael.kindborg (at) mobilesorcery.com
- http://mosync.com
0 comments:
Post a Comment