An Open Letter to You and Alex Russell

by Brian Moschel

An Open Letter to You and Alex Russell

Brian Moschel This is a pipe-dream, random, 3 AM thought. Do not take seriously.

posted in Development on September 22, 2010 by Brian Moschel

DISCLAIMER: This is a pipe-dream, random, 3 AM thought. Do not take
seriously.

This is a two part letter to the Open Source JS authors of the world and
to Alex Russell of Dojo (now Google) fame. But first, a little
background.

JavaScriptMVC is over 2.5 years old. It’s first version included:

For the most part, I just took what other people’s projects and packaged
them up. Event delegation via controller was the exception.

Today, JavaScriptMVC has added a ton of polish, depth, and features. Yet
at it’s core, it’s still these components.

But in these 3 years, solid alternatives have developed. For example:

  • jQuery widgeting – $.widget
  • Model –
    js-model
  • Dependency Management –
    RequireJS,
    LabJS
  • Client Side Templates – JAML, Mustache, jquery-tmpl, etc
  • History –
    Sammy,
    jQueryBBQ

Recently, JavaScriptMVC added FuncUnit which is a decedent of Selenium
and qUnit.

With that, I begin my letters …

Dear Open Source Authors,

Can we start putting aside differences and collaborating? Yes, we might
disagree on a few design goals, but there are clear wins. For example:

  • $.widget is lightweight (and now broken into parts)
  • $.Controller can bind / unbind all event handlers automatically
  • LabJS is fast
  • RequireJS keeps namespaces ultra clean
  • StealJS can handle Less, CoffeeScript, and a ton of templates, and
    split builds across pages.
  • Sammy is elegant
  • BBQ is light weight (and lower level)
  • FuncUnit is … well, there is no comparison here, but I’ve asked
    for it to become part of Selenium and qUnit

Surely, we can figure out ways of working together to ‘solve’ these
problems that doesn’t involve building another tool from scratch? Today,
low-level libraries like jQuery, Dojo, and MooTools are extremely close
in what they provide. There’s no reason to write another offset method!

Imagine a world where you can build your own toolkit from parts of other
libraries with little or no waste. Want to use jQuery’s event system
with NWMatcher? Just require(‘jquery.event’,’nwmatcher’). Use the
perfect build tool to make your own perfect library.

JavaScript development needs to start conforming around the patterns we
now know are best-of-breed.

Unfortunately, I don’t how to make this happen or even where to start. I
certainly don’t have enough influence. I’d be interested in sponsoring a
collaboration meetup of sorts with some framework / library developers.
I really want to combine StealJS, RequireJS, and LabJS.

But, before I get ahead of myself, there is someone who already
accomplished this who might have some solid advice …

Dear Alex Russell,

First, I have a huge man crush on you. How can you blame me? Your beard
screams old-spice-guy manliness.

786 Russell<br />
Medium

Plus, you invited me out to dinner with the big Dojo guys (and Christian
Heilmann), before I knew anyone and I looked creepy, having shaved
JavaScriptMVC into my head:

Img<br />
0193

It’s my understanding that you started the collaboration of competing
toolkits that led to the creation of Dojo. How did you do it!?!? All I
found is this short
article
.
It doesn’t provide any suggestions on how someone without your charisma
or skill could accomplish this feat. Getting together a pool of talented
developers to unite under a single project must have taken a
considerable effort.

Unfortunately, the Dojo project missed an opportunity by not releasing
something that became jQuery. But …. I wonder … is it possible to
correct that so everyone can start moving forward together?

My pipe dreams are clogged. Sincerely,

\~Justin Meyer

blog comments powered by Disqus

Using CanJS 2.2 with StealJS and NPM

David Lueckeposted in Development, Open Source on April 23, 2015 by David LueckeCanJS can be used in many different module formats like AMD and CommonJS and package managers like Bower and NPM. In this post we will talk about using CanJS with the new StealJS and NPM.

Set Algebra with can-set

Justin Meyerposted in Development, Open Source on April 22, 2015 by Justin Meyercan-set is a client and server side JavaScript utility that makes set algebra easy. This article talks about the design goals of can-set and introduces a few cases where you might find it useful.

CanJS 2.2 Release

Justin Meyerposted in Development, Open Source, Uncategorized on April 5, 2015 by Justin MeyerCanJS 2.2 is out. It's awesome. This article covers the top 10 enhancements added since 2.1. Some of the improvements include Browserify and StealJS support, can-EVENT arguments, observable promises, and in-page automatically rendered templates. The article includes a lot of good JSBins to learn from too.

Contact Us
(312) 620-0386 | contact@bitovi.com
 or cancel