Tuesday, October 27, 2009

Why Not Launchpad?

samokk asked a very simple question: Why not Launchpad? After all, I get several advantages if I choose to use Launchpad:
  1. It's already fully functional
  2. It's written in Python
  3. It's open source
  4. It also seems to be heading in much the same direction that I'm looking to go with Bit Vizier.
I'd dabbled with the idea here and there, especially after hearing that they were doing some of the same things in Launchpad that I'm looking to do with Bit Vizier. So, I went to look at their instructions for getting a working Launchpad development environment working tonight, just to make sure I wouldn't be wasting my time with Bit Vizier.

My initial reaction was to be somewhat less than impressed. They have a whole setup script that is designed to get the various packages, get them built, and reconfigure your machine in order to support doing development work on Launchpad.

I've installed Request Tracker a couple of times. Anything that starts instructions with something similar to "Run the setup script to download and install all the required dependencies" makes me question if this is a good idea. I've gone through such tools in the past, and do not like finding myself working with them. I decided to try it anyway.

One of the first things I noticed was the script asking for my sudo password. That immediately raised red flags for me. This is supposed to be my development environment. Why do I need sudo access to run this? And then, when I aborted, it tried (and, fortunately, failed) to update my /etc/hosts file.

After finally managing to quit out, I look at the installer script. 526 lines long, little of it commented. It wants to update my ssh config file, my /etc/hosts file, my apt sources list file, and install system wide packages. This is when I finally notice this quote from their instructions:

Note: the changes introduced by the install script may break your current web development setup, so it is advisable to try Launchpad on a separate virtual or physical machine.
Wait, this is for my development environment? And it's going to take over my machine possibly to the point of breaking other web development on my machine?

That was the end of my willingness to look at Launchpad. If they had done things nicely, then they'd already be able to use a virtualenv, and the end result of working on their system would be more disk space usage. They chose to go a route that means that I have to devote my entire development machine to them, and them alone, unless I want to work in a virtual machine.

Add in their reliance on bzr and lack of interest in other distributed version control systems, coupled with my strong preference for Mercurial, and we just get further into the non-starter category (as if we needed to go any further).

No thank you. Their ideas might be great. But their cost is too high. I'll stick with building a TurboGears based system that allows me to let my developers use a virtualenv safely, reducing their risk to their machine.

No comments: