Only certain super-behemoths like Microsoft or Apple can afford to have their infrastructure products being closed-source.
Only certain super-behemoths like Microsoft or Apple can afford to have their infrastructure products being closed-source.
I am all for open source, but it doesn't make things like this is easy as some make it out to be. For example with Linux source, how long would it take me to fix a video driver bug? Perhaps a year?
(Full disclosure: I am one of the people who could have been qualified; one of the jobs I was considering a few years back was a graphics-driver-hacker position at Red Hat. I happened to instead choose full-time employment doing various, mostly userspace Linux stuff for a startup. When they ended their incredible journey, I would have loved to make a living taking contracts like the ones you suggest - and I still wish I could - but there aren't enough of them and they aren't reliable enough to make it better than just taking a full-time job with a profitable company.)
But that assumes there is a ready supply of people that can fix a certain part, and want to take contracting work. For example, let's say I have an ATI XYZ in my laptop. It has a driver bug and won't work. ATI driver is open source. Who do I hire to fix it?
(Note that I am carefully using the phrase "open source," not "free software". Part of the free software ethos is that you can realistically modify your code as needed. I do happen to think that the current free software movement isn't very good at delivering on this promise.)
Therefore, if you're the one building the database, open-sourcing it de-risks your product to your potential customers, to some extent.
Of course closed source products can also be collaborations, but open source + open development practices can make this a smooth and natural result.
I think, more important that whether or not the DBMS is open source, just consider how critical the DB is. If you can't live without it, stick with a DB that you can be virtually 100% sure isn't going anywhere soon. Save your experimentation with new products for the small and less-important stuff, and make sure the small stuff doesn't reach some critical mass before the DB vendor does.
The way this is dealt with for closed-source software is source-code escrow. The support contracts stipulate that the company that built the software set aside the code with some stable third party, and that it be available under specified conditions, such as the builders going out of business.
It's not as good as having the source freely available, but then it's dealing with an extreme contingency, anyway. Very, very few users of a piece of software have the expertise to build it from source and then debug it if they run into problems. So they're probably screwed either way if the builders go belly up.
> Only certain super-behemoths like Microsoft or Apple can afford to have their infrastructure products being closed-source.
The alternative is to buy truly critical software only from companies you trust a lot. XYZ Valley Startup is unlikely to be around in 20 years, but Oracle almost certainly will, as will Microsoft.
If a project is open source then who is committed to helping you support and maintain it? You essentially need to have a team to do it.
If there's a company behind it, it gives you assurances.
Especially for a small company that needs to focus on building a product rather than committing features and bug fixes to their database
I assume you mean they have $2bn in annual revenue?
I was able to sell our company on Cassandra because there is a Datastax there to support it when the shit hits the fan.