Prototype WTF

2005-08-25 14:37:00

The main project I'm to be working on at OSAF is Scooby, a Web-based CalDAV client. Part of my job is to evaluate the emerging AJAX toolkits to figure out which one we want to use.

So far, the one that looks best for our purposes is the unfortunately-named Prototype toolkit ("Are you using Prototype in your prototype?" "Yes."), which provides the AJAX functionality for Rails. Despite all the irritating, relentless overhyping of Rails, Prototype seems pretty solid, and actually provides something reasonably close to direct access to the XMLHttpRequest object's API.

The Prototype guys seem pretty sharp, overall. Prototype uses that weird hash-based JavaScript syntax I'm seeing everywhere now, but the code seems pretty tight. However, having found a tiny little bug in the code that I wanted to fix, I looked at the process for contributing fixes, and was amazed at what I found. Check this out:

To build Prototype, you'll need:
  • a copy of the Prototype source tree, either from a distribution tarball or from the darcs repository (see below)
  • Ruby 1.8.2 or higher (http://www.ruby-lang.org/)
  • Rake -- Ruby Make (http://rake.rubyforge.org/)
  • RDoc, if your Ruby distribution does not include it
  • darcs 1.0.1 or higher (http://abridgegame.org/darcs/; static binaries available at http://www.scannedinavian.org/DarcsWiki/CategoryBinaries)

Does this make any sense? All this crap for one, tiny .js file. Lucky for me, I already use Ruby, so I have most of this stuff, but that's probably not the case for a lot of folks.

On top of all the Ruby stuff, they also want you to install some alternative sourcecode version-control system, instead of just using S N. I'm sure Darcs is a perfectly fine version-control system, but we're talking about a JavaScript library here, people. Did I mention that it's one, single .js file?

Here's the process for submitting fixes:

Modify the files in src/, add tests in test/ if possible, generate a new dist file, and record the changes with darcs record -al. Then email patches to mailto:sam@conio.net using darcs send.

You can't even send the patch with a normal e-mail. I did mention that all this is for one, tiny .js file, right?


This is the blog for Matthew Eernisse. I currently work at Yammer as a developer, working mostly with JavaScript. All opinions expressed here are my own, not my employer's.


Previous posts

All previous posts ยป

This blog is a GeddyJS application.