A Recap of PolyglotConf 2012: JavaScript Frameworks, Consulting Services, and More

Table of Contents

tl;dr

A fair amount of attention was devoted to current JavaScript frameworks and a surprising amount of Clojure.

Schedule

Javascript GUI Framework

Frameworks

Backbone http://documentcloud.github.com/backbone/ rest-centric, collections
Knockout http://knockoutjs.com/ html-centric, data bind
Ember http://emberjs.com/ model-serialization, mongodb
Spine http://spinejs.com/  
Derby http://derbyjs.com/  
Batman http://batmanjs.org/ coffeescript
ExtJS/Sencha http://www.sencha.com/  
YUI http://yuilibrary.com/  
jQuery+UI http://jqueryui.com/  
  • Ext: code quality issues even worse with GWT
  • jQueryUI: widget versioning hell
  • Derby.js
  • Sencha: Corporate sponsorship

Features

Without even looking at the tools and anciliary:

Utilities
  • Underscore
  • Shims
  • jQuery
Templates

Still active pain with initial page load with templates or directly as HTML.

Issues

  • Mobile performance

Meta

  • Look at the use case of the framework author to see if it fits with your goals
  • No UI = no bugs
  • JavaScript UI Frameworks mirror Python (Django) or Ruby (Rails)
  • If you create a framework what are the costs for pulling in new users

What widget support

  • trees
  • dialogs

Recommendation

From Consulting Services Work to Product Building

Shared License vs. Open Source

  • Perpetual license
  • MIT or push core /

Services vs. Product vs. Consulting

  • Ownership of the code
  • Do you need to eat?
  • It is a mental step to move into the product space
  • Example: $2000 for tech exploration
  • Launch, create pricing ($5000), sell or have rates
  • Example: Cloud service for $500 but with custom option

What do your clients expect

  • What is the target market
  • Do you need a product or just a presentation
  • Bring a tool-chain
  • Custom code suffers bitrot as soon as it
  • Is your client a special flower
  • Shared source may be more palitable to clients
  • Do you walk away after the project finishes
  • Just don't sell to my competitor
  • Win without pitching as anti-RFP
  • Are you labeled as an expert (from https://gingerhq.com/)

Meta

  • What are you offering?
  • "If you're there just to write code you shouldn't be in consulting"
  • "If you're not tracking your time and value you're doing it wrong"
  • Are you building for R&D + maintenence
  • Should you split the code into reuseable
  • Do you create a perpetual term license
  • Do you develop just for a contract or do you create
  • Do you and the client both work to make the project a success
  • You don't have to package or create a community, just add an MIT license
  • Can value be accurately judged or measured
  • When is your product failing (act as your own VC)

Time Tracking

FreshBooks http://www.freshbooks.com/  
Harvest http://www.getharvest.com/  
Pen and paper    
RescueTime http://www.rescuetime.com/  
basecamp http://basecamp.org/ Use older version

**

Considerations

  • performance
  • usability
  • monetization
  • build
  • app ontology
  • adoption
  • consumer -> developer -> app vendor -> browser vendor
  • channel is marketing rather than technology

JavaScript Q&A

What to cover

Went through the Resig Advanced JavaScript1 slides.

// The .bind method from Prototype.js 
Function.prototype.bind = function(){ 
  var fn = this, args = Array.prototype.slice.call(arguments), object = args.shift(); 
  return function(){ 
    return fn.apply(object, 
      args.concat(Array.prototype.slice.call(arguments))); 
  }; 
};
  • how do you distinguish betw
  • web vs. server programming
  • server: debugging, npm
  • problem with junior / intermediate is this context
  • can you ignore the issue by moving to functional style
Util.hideButton = function() {
  this.hide();
}

Final

https://github.com/tavisrudd/emacs.d

  • vmware fusion + natlink + putty + screen + emacs = speech to text programming

Mozilla Hackday

Project: Build UI for JavaScript

Project: XDM prototype

Footnotes:

Author: Jason Walsh

j@wal.sh

Last Updated: 2025-07-30 13:45:27

build: 2025-12-23 09:11 | sha: a10ddd7