Tuesday, September 12, 2006

Ask Brian: CVS, Open Source, and Startups Today

DEAR BRIAN: This is Michael, founder of Photoblog.com. I'm starting an online blog, folksonomy.org, where I hope to post interviews of prominent figures in Web2.0, investing, programming, and more. Would you be willing to answer a few questions? Here they are:

  • What inspired you to code CVS?

  • How do/did you feel about CVS being adopted by the open source community and watching it grow?

  • What are the biggest differences you see between the internet startups today, and the startups during Web 1.0?

  • Do you think we're in a new internet bubble?


DEAR MICHAEL FROM FOLKSONOMY.ORG: I'd be happy to answer your questions!
NOTE: Michael's post on folksonomy.org is: Interview with Brian Berliner.

1) What inspired you to code CVS?

I wrote CVS precisely because of a core need that my software development team had. I was working for a company called Prisma Supercomputers in 1988. We were trying to build the world's fastest scalar supercomputer using GaAs technology, running the SPARC instruction set, and built on top of SunOS (the days before Solaris). In the software department, we had a bunch of programmers that were making some significant changes to the SunOS kernel, all at the same time. This was 1988-1989, and Sun was largely a Workstation company at the time. They wanted to build the big servers and get the high margins, but really hadn't figured out how to do that yet. SunOS, as a result, was a Workstation-tuned operating system. The kernel jockeys at Prisma, myself included, were working hard to scale SunOS up to the speeds and performance demanded of the world's fastest computer. And, we were stepping on each-other's work, or having to wait for a file to be unlocked in RCS before we had a shot at editing it. We were a startup and had no time to be less than optimally efficient.

So, I went to my boss, Mike O'Dell (who since went on to be Chief Scientist at UUNET and is now a Venture Partner with NEA), and explained the problem. I asked for 2 weeks to dig in and solve the problem. He granted it (Thanks, Mike!). Given the limited time that I had, I opted to start from a "public domain" solution called "CVS" done by Dick Grune in 1986. It was about 2,000 lines of shell script that did the basics of adding concurrency on top of RCS within a single directory. The project had not advanced in the 3 years since release, but it gave me a good jumping off point. I wrote about 6,000 lines of C code in those two weeks to implement the core CVS that folks have used over the last 17 years. Interestingly, the core concurrency piece of the shell script version (which was brilliant and ahead of its time), ended up being 239 lines of shell script code. My version of it, in C, weighed in at 289 lines of code, and I only recall extending it to handle directories (making CVS recursive was one of the killer feature additions), and fixing some logic. I also added a bunch of capabilities that weren't in the original shell script version, including recursive directories, modules, branching, tagging, code bulk import, operations on the repository itself, tracking your modifications to third-party source code, logging, hooks for third-party tools, extreme performance upgrades for scalability, flexible merging, checkout and diff using flexible dates, and patch generation.

You can find more on CVS here.

2) How do/did you feel about CVS being adopted by the open source community and watching it grow?

The original shell script version that I used as a model for CVS was already in the public domain. As a result, I could have done anything I wanted to my version of CVS, including making a commercial version. However, in the spirit of the Open Source movement (which, at that time, was really the Free Software movement), I chose to maintain the copyright myself and to license CVS under the GPL. Of course, to do this, I needed the permission of my management team. This time, it was Rob Kolstad who pushed Prisma to, as the company was being shut down, give me the rights to the work and let me put it under the GNU project (Thanks, Rob!).

CVS would not have been as successful had it not been a key part of the early Open Source movement. I nurtured CVS, part-time, for a couple of years past the first release. Jeff Polk helped me rewrite the internals of CVS during this time - he was a better programmer than I would ever be. Our rewrite allowed for lots of other contributors to extend CVS, now that it was as pretty inside as it was outside. User contributions included lots of portability fixes, which increased CVS adoption, as well as some key features, like the client-server support, which allowed for CVS to enable distributed development to happen on a very grand scale. You could say that CVS was a key component of the Open Source movement and its success. Sourceforge.net currently has over 120,000 open source projects using CVS (8,000 projects are using Subversion, the follow-on to CVS, and I am a big fan of Subversion).

I'm thrilled about the part that I, and other CVS contributors, had on Open Source and software development in general.

3) What are the biggest differences you see between the internet startups today, and the startups during Web 1.0?

It's easier to do an Internet startup today than in the Web 1.0 days. The software tools are better and cheaper, hardware is cheaper, outsourced data centers are available and standard, global developers are writing really good code now and it's easier to distribute development around the world. The entrepreneurs today are more focused on solving a true need. Google and Yahoo have established web-based advertising as a viable bootstrapping revenue stream - we didn't fully understand how to "monetize eyeballs" in Web 1.0. Open Source tools have really enabled a lot of this. And, we're just getting more mature in how we are allowing for the "architecture of participation". In Web 1.0, most people didn't fully understand the Web and what it could do for them or their place in it. Now, people spend enormous amounts of time on-line, doing good, building their reputation, contributing content. The Web 1.0 greed machine was not good for building enduring businesses. I don't see that now (yet).

4) Do you think we're in a new internet bubble?

I covered this topic in my post, Web 2.0: 24 Minutes In Heaven: "I was up-close and personal during the first Internet Bubble. Are we in one now? Absolutely not. Not even close. Yes, there is a ton of VC money out there right now, but the IPO markets are largely closed, except for the best companies, which is how it should be. The M&A multipliers are reasonable for the most part (yes, there are some amazing exceptions, but there always will be). VC’s are over-valuating some of their investments today (both Series A and follow-ons, which I will cover shortly), which is bad, but it does not appear to be out of control. Compared to what I saw in 1996-1999, I feel very good about the industry as a whole right now. It’s a good time to be an investor and a good time to be an entrepreneur."

This post is part of The "Ask Brian" Series and is held to the same legal considerations as described therein.

Tags: , , , , , , , , , ,

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.