New York: GothamJS

Saturday, July 9*

My second major reason for being in New York was GothamJS, a Javascript conference which actually didn’t sell out before I heard it was open for registration. Too late Saturday morning I realized that I could still go exploring; I set out into Central park, but realized that I wouldn’t have enough time before I got anywhere new.

GothamJS was held in the NYIT auditorium. The theater worked out well for the presentations, although the lobby area got a little cramped at times. I don’t know if it was intended to serve as a primary social space.

The first talk was one of the things that attracted me to GothamJS, The Once and Future Scriptloader by Kyle Simpson (aka Gettify). I dabbled with my own loader once, but lost interest when it got to the hard parts – browser testing and file optimization. Since then I’ve gone in with the RequireJS/AMD camp. Kyle actually promotes pure loaders – no dependency management (that might be a separate component) He broke down the challenges of loading (different scripts for different pages, caching, and parallel loading), called for the death of document.write, and laid out his personal perfect loader – any script, from any browser, at least as good as script-tags, without hacks or special cases. He also pointed out some challenges I hadn’t run into, as well as some techniques I never used – IE has a way to separate loading and execution, and async=false can also force execution in order. He is working on [], which was not released as of the conference.

Robert Nyman talked about HTML5 APIs. I’ve been around long enough to hear about most of the technologies. I did lear a few things, such as online/offline events – although their are still several browser kinks, and the file reader API. I mostly learned about interesting services: video transcoding, popcorn.js for live video sidebar, Google Body – a searchable 3d model, and Mozilla DevDerby, although unlike the page he showed that seemed to be a monthly challenge, the actual web site appeared to be a less frequent event.

Anton Kovalyov talked about JSHint, an alternate to JSLint that tries to be less opinionated than Douglas Crockford (e.g. a dictator). It also checks for implied globals.

Jonathan Julian went over the issues with Rendering Views in Javascript. Once again I’ve heard of most of the libraries involved, although he did raise a good point about search engine interaction with dynamic pages.

Rebecca Murphey presented Lessons from a Rewrite, that took a body of real-world experience and distilled it down a series of guidelines, backed by her actual experience.

Seb Lee-Delisle wowed everyone with CreativeJS Visual Effects. It was basically sprite graphics on canvas, and a few people said he could have actually gone beyond the really basic techniques. He still got some very nice effects with simple systems, and it’s good to see people who take these ideas and make them exciting. I got over the gee-wiz factor back in the BASIC days, so we need people to keep it fresh.

Mark Headd talked about JavaScript and Node.js in telephony. He started out saying “turns out people don’t like writing things in XML”. He was referring to a voice protocol, but in retrospect it may have also been a shot at his (Tropo’s) competitor Twilio. He some about telephony, and some about Javascript architechture, such as hosting demo as CouchApps and using Redis PubSub to as a message queue.

Yehuda Katz closed out with “The Fallacy of Microlibs”. As a developer of SproutCore, Yehuda can’t be called unbiased in the argument, but he argues well, and one presumes he’s working on SproutCore because he believes it the way to go. The basic argument seems to be that while microlibs (as promoted at []) are great for experimentation, the lack of coherency makes things more difficult for people trying to use them (“Integration eliminates cognitive overhead”). He points out the much-promoted UNIX philosophy of using small tools with pipes took ten years to develop – we probably don’t as good a common paradigm yet. Meanwhile, JS apps are competing with Cocoa (e.g. iOS), which is fairly consistent and well-documented.

The afterparty turned out to be some catering the crowded lobby. People stayed upstairs by the food, making it even worse. After a little wandering around I fell into the orbit of Yehuda, Kyle, and a few others discussing various minutia of JavaScript. People gradually wandered off, until we were informed that the building would be closing shortly. People agreed to meet up at a bar over in Hell’s Kitchen a little later.

I walked back to the hotel with Kyle Simpson (LABjs) and took the opportunity to feed my curiosity. I stopped developing my Module library when I got to the hard part, so I wondered if he knew where the gotchas were the exception-and-reload technique. Perhaps I wasn’t describing it very well, but it actually appeared to be something novel. He recommended that I move the library over to Github, which has apparently become the defacto Javascript host along with Ruby.

After a missing the first time, I finally found the specified bar. However, this crowd is so new to me that I didn’t recognize anywhere there. Given that I’m not really a bar person myself, I didn’t hang out.

Comments are closed.