[Greasemonkey] a difference in vision

Evan Martin evan.martin at gmail.com
Thu May 26 18:59:41 EDT 2005


[Disclaimer: my opinions are derived from hanging out and talking with
Aaron but he hasn't vetted this mail.  But he's also too nice to write
this email, so I get to do it!]

I think the original vision for Greasemonkey was that user scripts
would be tiny, ephemeral things; quick hacks that are passed around
and that break as site owners change their sites.  The analogy was
shell scripts -- you write them once to solve your task and then you
forget about them, or if you share them, you share them as a snippet
of code in an email and not as complicated .tar.gz download.

Somehow along the way people began using Greasemonkey for something
else: complicated and tricky modifications that reached deep into a
site.  Those are cool, with "far-reaching implications" and all of
those nice phrases people like to post to their blogs about.  But
they're complicated, and there are already provisions in Mozilla for
distribution, versioning, and autoupdate.  They're called extensions.

This is why Aaron wanted to integrate a script editor -- not because
of feature creep, but because a script is something you do immediately
when a page annoys you.  Or you take someone else's script that makes
a textbox 600px wide and you tweak it to make it 800px wide.  This is
why a author tag doesn't fit in -- because by their very nature the
scripts are derivative of someone else's work anyway and somebody
farther down the road will continue to change them.  It's 20 lines of
obvious code, why are we worrying about copyright and licensing of
derivative works?

With all of that said, I there's obviously place in the world for the
Lickrs and the Book Burros, and maybe the solution isn't converting
all of them to extensions.  But as everyone sits here and tries to
figure out ways to embed HTML and images and more metadata into their
single file of javascript I can't help but point out that there's an
easy way to package disparate data together: it's called tar.

How do you reconcile these views?  I see two options:
 - creature feep Greasemonkey into extensionmanager++; or
 - fork Greasemonkey into a bigger brother (I proposed to Aaron
"Greaseape", but that's lame) that does extension management with
signing and author metadata and tarballs and autoupdates and XUL
hacking and menu commands and preference panes.

I don't much like either of them, but I don't see any other options.


More information about the Greasemonkey mailing list