Skip to main content

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?


-- MICHAEL FROM FOLKSONOMY.ORG, Bay Area, CA

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: , , , , , , , , , ,

Comments

Popular posts from this blog

Bill Coleman Joins 3tera Advisory Board

I think this move surprised a number of people, since Bill recently wrapped up Cassatt Corproation, getting the technology and people  acquired by Computer Associates . However, I was not surprised at all. The announcement, via  3tera Welcomes Bill Coleman : You may or may not have seen the recent press realease.  Bill Coleman, IT/Silicon Valley luminary, Founder and CEO of BEA Systems, has joined 3Tera’s Advisory Board. Yes, this alone is a great testimonial to what we have accomplished in our field.  Getting dignitaries such as Bill does not come easy.  But here’s the best part - this has a lot more than just marquee value and I doubt that Bill would have joined us if that was the case.  Bill, especially since his most recent stint as Founder and CEO of Cassatt Systems, is an extremely knowledgeable visionary in the area of utility and Cloud Computing; and, data center automation. So, Bill will be extremely valuable, reviewing and tweaking both our business plans and techno

Kernel-based Virtual Machine hits Linux

Many congratulations to my good friend Moshe Bar and his team over at (stealth-mode startup) Qumranet . Techworld reports that the KVM (Kernel-based Virtual Machine) project has been accepted into the 2.6.20 version of the Linux kernel distribution. KVM is an Open Source kernel driver that basically allows a Linux kernel to host virtual machines, as plain old Linux processes, that can run Linux or Windows (or other x86-based operating systems). It runs only on hardware that support Intel's VT instruction set (which is fine) and will soon support the AMD-V instruction set as well. This is cool for a number of reasons. It's Open Source, released under the GPL. It basically turns the Linux that we all know and love into a "hypervisor". Linux-as-hypervisor makes sense because Linux already knows how to manage devices, memory, processes, multi-cores, etc. VMware ESX is, essentially, a "hypervisor" - a small kernel, built on Linux as it turns out, that

Big In Japan Open Sources Their Ruby On Rails Tools

The kind folks over at Big In Japan have graciously decided to Open Source the code they used to build their demo web sites . It's all Ruby on Rails code, and it's being released with a GPL license. The code trees being made available include: elfURL ~ URL Shortner FeedVault ~ OPML file storage FrankenFeed ~ RSS feed merger InstantFeed ~ RSS feeds via email QwikPing ~ Ping Server SocialMail ~ RSS via email Very cool. I just love the Open Source community . I have actually been writing some code of late, and it's great to have some reference code to check out. Not sure if I'm going to go with Ruby on Rails yet, however. And, for the record. I have no idea if this is big in Japan. Tags: Open Source , GPL , Ruby On Rails , Big In Japan , Brian Berliner , brianberliner