Yoz Grahame's Unresolvable Discrepancy

I came here to apologise and eat biscuits, and I'm all out of biscuits

What I Want For WHAT

Posted: June 18th, 2004 Comments Off

Joel Spolsky satisfyingly nails a bunch of ways to improve client-side web app development which the WHAT Working Group
should work on. All his suggestions are excellent and well worth
looking over, even if some seem to require the same “boiling the ocean”
that he doesn’t want to hear about. That said, most of his list could
probably be done with a good set of Javascript libraries, along the
lines of Dean Edwards’s IE7,
and his #2 (fast REST queries back to the server in JS) is pretty much
- well, almost – with us already, looking at combinations of things
like XMLHttpRequest and mod_pubsub.

But anyway, he ended his piece with a call for more suggestions that
he could link to. I’ve been doing a little bit of browser app
development in the last few days, and these are the things that spring
most readily to mind:

  1. A more flexible security model

    The current Javascript security philosophy can be easily summarised thus: “No.” (And the IE/Win version can be summarised thus: “Well, okay, but just a little bit.” (pause)
    “Hey! Come back here!”) Back around Netscape 3.0 there was data
    tainting, and Netscape 4.0 had digital signatures. Both have fallen by
    the wayside, and it’s a right pain because I want my app to do things
    like fetch data from other parts of the web outside of the originating
    server, but it can’t. Instead I have to proxy through my own server,
    which generates horrible load and makes the app much slower. Sure,
    there are sound reasons why it shouldn’t be able to reach outside by default,
    but this is ultimately down to trust issues. If web apps are aiming to
    replace native apps then they need to get reasonably close to the
    capabilities that native apps have. The user should feel comfortable
    that a web page isn’t rifling through his hard drive without his
    permission, but when a user and an app both want the same thing and the
    browser is stopping them, it’s a bit of a pain. After a while it feels
    like the user is having to gaze longingly at the app through the solid
    glass barrier while they talk to each other over the visitor phones.

  2. Less Javascript, more XML: Accessibility for everyone and everything

    Joel calls for a richer set of controls and events. Those who know a bit about Mozilla will immediately start thinking about XUL and XBL, and Microsoft’s equivalent (XAML) is also relevant here.

    Much of this stuff is already doable in Javascript, but XML languages are better for a reason fundamental to the web: They lower the barrier to processing.
    It is an order of magnitude easier to decipher what a document is
    specifying than a program: the only way for a machine to really
    understand a program is to execute it. Unlike Javascript or any other
    Turing-complete language, XML doesn’t suffer from the halting problem.

    Lowering the barrier is vital so that a wider range of
    lesser-powered web clients can understand your content, whether those
    web clients are mini-browsers running on embedded devices or ten-line
    scraping scripts. Furthermore, explicit unambiguous markup means that
    the client then has more freedom in rendering the document in the way
    it sees fit, and this freedom is vital to true web accessibility. If
    the speech browser for blind users knows that what it’s trying to
    render is not just a collection of layers with links in them but a standard menu then it can render it in a much more usable way.

  3. Better documentation, please

    This sounds like a trivial one outside the concerns of WHAT, but
    it’s just as fundamental. If you really want to beat Microsoft in the
    race for developers then you have to also beat MSDN, which is probably the best developer information site in the world. On web app development alone it’s better than Netscape DevEdge and the W3C
    put together. The reason I mention those last two is because, if you’re
    developing for Mozilla, you don’t have much solid documentation apart
    from those (the pretty-good XUL Planet notwithstanding, since it’s more about extending Mozilla than developing web apps).

    The other night I was battling with setSelectionRange(), which is a method of the INPUT TYPE="TEXT"
    object. The thing is, I found out about it in a Javascript tutorial on
    some random site. Try searching for it on mozilla.org. Actually, don’t
    bother: it’s not there. This is particularly galling when you consider
    that Mozilla is the only browser that currently implements it. Those who’ve documented it appear to have done so by churning over the source, for lack of any other clues.

  4. A version of the DOM that isn’t so prissy

    This is a much weaker/whinier one and I haven’t done nearly enough
    DOM work to be certain of it, but: It always seems to take way too much
    effort to do the most basic things in the DOM tree. It feels really out
    of sorts in Javascript, not having nearly the same fluidity and
    ease-of-use of the rest of the language. It’s way too Java and not
    enough Perl/Python. I want to sling it, dammit.

    Update: Ah, this is what I want, and it looks like I’ll get it. Yay!


Comments are closed.

Archive

The complete list of posts lives here.

yoz's bookmarks

  • Lee Maguire – WikiLeaks and the future Hydra
    Lee on the similarities between WikiLeaks and comic-book villainous organisations.
  • WebGL Inspector
    Lovely Firebug/Web Inspector-alike for WebGL, usable either as an extension (for the top WebGL-enabled browsers) or embedded JS. Under rapid development.
  • ge.tt
    Gorgeous hack: web-based file sharing service where the link to your file works while it's still uploading. Instant, super simple and free. (via DMM)
  • Async.js (Caolan McMahon)
    One of the many flow-control packages for Javascript, of which at least 3 are called async.js. This one has some really nice tricks, especially auto() which fires off function calls as soon as their dependencies are met.
  • Adequately Good - JavaScript Module Pattern: In-Depth
    Really good explanations of several useful function and module patterns to use when building your own
  • News flash: Deadly terrorism existed before 9/11 - Ask the Pilot - Salon.com
    The quantity of air-travel-targeting terrorist attacks between 1985 and 1989 would be unthinkable today; yet the presented danger and precautions taken are far worse
  • 100 Free High Quality WordPress Themes: 2010 Edition - Smashing Magazine
    Some really nice minimal ones here, along with good theme tools and a bunch of things that I didn't know WordPress could do
  • Lenore Skenazy: 'Stranger Danger' and the Decline of Halloween - WSJ.com
    Despite American parents' increasing paranoia, Halloween may be the safest day of the year for kids. (via schneier)
  • becoming the alien: apartheid, racism and district 9 « a subtle knife
    Superb essay on District 9's relevance. "It confronts us with our complicity with racism, by making us identify with the perspective of the racist, inviting us to feel the revulsion of the xenophobe – and then pulling the carpet from under our feet." (via kevin marks)
  • Music Hack Day: The Uninterrupter - Andrew Shearer's Other Blog
    "For an increasing number of us, the same device we use to play music also handles email and GPS directions." The presented solutions are as brilliant as they are ludicrous. (via extensionfm blog)

yoz on twitter

    follow me on Twitter

    Meta

    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org

    Content licensed under the Creative Commons (Attribution - Share Alike) | Theme based on Clean Room by Columbia, MO Web Design