«« BarCamp Ottawa: DevShop Afternoon Demo BarCamp Ottawa: Conclusion »»
blog header image
BarCamp Ottawa: Advanced Javascript for Rich Web Apps

BarCamp Ottawa banner

Blog Posts in this Series
Introduction
Iotum's demo from DEMO'06 by Alec Saunders, Howard Thaw
Creating Open Source Communities and Platforms by Mike Milinkovich
Intellectual Property Rights by Mitch B, Kent Ledwell
Devshop Afternoon Demo by Craig Fitzpatrick
Advanced Javascript for Rich Web Apps by Craig Fitzpatrick
Conclusion

"My 2 cents"
Craig Fitzpatrick

What's great about Javascript?
Devshop is pixel for pixel in IE and Mozilla

Q: Is the time for that worth it?
A: yes, it's worth it ... makes the app more 'slick'

Super easy to learn the basics of Javascript
- a lot of people don't get more advanced

Adoption on lots of devices
Swiss army of web development
-- rich behaviour, flash, etc

Unlike CSS, Javascript supports User Agent abstraction
-- made his own DOM API to abstract it between browser
-- made his own widget library

Source code is available for the world to see and learn from
-- double edged sword: stealing

Q: licensing?
A: none yet
-- doesn't mind giving away widgets
-- but doesn't want to expose business logic

Interpreted code is always going to be slower
-- he's spent a lot of time optimizing custom GUI widgets

Q: did the code get more complex when you optimized?
A: often yes
-- complexity is also a deterrent for copying
-- but "localized" complex code to make them easier to use

Mutable objects are more trouble than they are worth
-- flexibility: too much rope to hang yourself with
-- no mandatory type declarations: problems with typos, etc
[ed. I don't think he's talking about mutable objects but dynamically typed objects]

Lack of mandatory typing "hamstrings" tool vendors
-- every variable is a variant
-- can't use Intellisense-like features (ie. Visual Studio) and he doesn't like that

Lack of commonly accepted libraries hinders re-use
-- exceptions: moo, prototype aren't common yet

A lot of people don't make the effort to be cross-browser
-- browser loyalty tends to cloud judgement
-- the business person in him says that's terrible
-- Firefox's increasing percentage gets his attention
-- to him, it's economics
-- doesn't pay attention to browsers with less than 10% (ie. Safari, Opera)

Q: do you use Firefox debugger
A: yes, a lot ... better than IE's

Created a collection of collections
-- list, sorted dictionary, etc

Created private libraries for low-level behaviour
-- drag/drop, inline editing

Created public libraries for page code to use
-- user controls: table, boxes, separator bar, etc

Created a thread object to manage asynchronous operations
-- like animations, that improve usability

Created a Page object that manages the entire page lifecycle
-- like a "root" object for all of the page objects
-- another abstraction over the DOM [ed. nice!]
-- easier to deal with page objects without having to deal with (XML) "elements"
-- window events are disparched to other libraries by Page

Cracked nut: pixel by pixel between browsers (IE and Firefox)

Stages of enlightenment (7 of them...)
-- see slides?

#6 plug and play for libraries in the framework
-- so libraries can co-exist
-- namespaces?

#7 framework and dev studio are integrated
-- to support intellisense-like features
-- again, doesn't like dynamic typing

A neat open source project would have challenges:
-- requires an extreme knowledge of javascript
-- patience to make it cross-platform
-- performance!
-- strong leadership

Speed improvements take "obscure" knowledge
-- [ed. not so sure about that ... just a knowledge of O notation and how dynamic languages work]
-- lazy instantiation: don't create boxes until the user mouses over
-- then when clicked, it opens


my notes:
-- advanced javascript is the exception rather than the rule; a lot of badly hacked code out there

Posted at April 22, 2006 at 05:29 PM EST
Last updated April 22, 2006 at 05:29 PM EST
Comments

Good News

» Posted by: clomid at April 29, 2006 02:10 AM
Google
 
Search scope: Web ryanlowe.ca