Thursday, April 05, 2007

I only recently began labeling and filtering my gmail, and it gives me a familiar feeling. Once I add a label to an email, I have the wonderful feeling that I can always be sure I have it, even if I don't put the slightest bit of effort into it at any point in the future. Gmail of course doesn't delete any of your mail, and labels based on search terms aren't a great deal different from simply searching my mail. But the feeling is motivating, and it doesn't hurt to have reminders of what to search for.
It also helps keep me from getting distracted to keep certain mail from entering my main inbox. I'll go to it when I need it, which so far has been not much.

This is the same feeling I have when using several other sites. Basecamp, Flickr, and others seem to me like they'll last a long time. When I save things in their databases, I don't worry about keeping any other copies. I know that their server will serve up as many copies as I can ever need, to wherever I ever go. Things we write on our blogs, same deal, we know those phrases can always be looked up if we don't remember exactly. The computer will repeat itself, so we don't have to.

Writing and using open source software gives you a very closely related feeling - that a problem has been solved and will never again need to be revisited. You may revisit the software to solve other problems that come up, but each advance is in some sense irreversible. Not strictly of course, but I'll speculate that once some working code is published, if a later version loses capabilities, the useful old versions will usually stay available in some way or another. Certain open source programs have been used billions of times and have solved a lot of the problems that billions of different users have had - and each one only had to be written once by one person. That gives him a feeling of accomplishment, as well as relief and freedom - those efforts and insights will never again be needed to solve those particular problems.

What I want to do is bring the two even closer together. I want my code creation to be, like my content creation, primarily done through a web browser. And I think my dream is going to come true in the next couple months. Lighthouse, a new site for code management, was designed to be interoperable with whatever add-ons users could write up, so a web interface that lets me make edits and commit them to the repository is probably possible. The only issue is whether ActiveReload will let us users keep a working copy of our code on their disc space so that the idea would play out the way it's supposed to. Actually, I believe they're comfortable storing whatever files we like, perhaps the real question is whether we can run a subversion commit command from their server (so people downloading the code would get all the updates made via the web site).

Already many open source libraries can be read through browsers, but I don't know of any that can be edited there. Similarly, most cannot be executed there. Every web site is an exception to this, but many programs require users to download the code themselves if they want to run it and get output from it. In some cases sending the code uses more processing power and bandwidth than just running the program and giving the user their answer would. And I think that we'll see more and more of the latter, which has the benefit of only needing one copy of the code. As Ruby takes over the programming world, most projects will find their way onto Lighthouse, more of them will find expression in a web page or server of some kind, and we'll be down to one step. Just type the code into the browser and it can be used right away, the world over and as many times as necessary. I have edited a live ruby web site in a terminal, so yeah, it's already possible to get zero-turnaround gratification. But I'm looking forward to the impending moment where open source is not just a library but a running resource that I can utilize fully without administering, and can be browsed and edited like a wiki.


Post a Comment

Links to this post:

Create a Link

<< Home