Ask HN: GPL software works but what are the cons?

4 points by starter ↗ HN
I appreciate the Open Source community and all the positive things its doing for people and places. For instance, the GPL makes it easy to enter the market without a huge time investment into product development.

That being said, what are some cons to using Open Source code when developing applications for the masses? For example, is building a social network or designing a template using a GPL software package a bad business plan?

I just want to know where to start. Maybe the question I should be asking is something like this... What type of software is the Fortune 500 using and why?

18 comments

[ 4.0 ms ] story [ 47.7 ms ] thread
There are in fact many licenses that meet the open source definition, and any concerns about the restrictions of one might be dealt with by looking only at projects based on other licenses: http://www.opensource.org/licenses/category

For example, basing a business on GPL as you stated may be a problem because it would compel everything in the stack (including something unique built on top of established code) to be opened up...so it would be hard to build something truly competitive without showing all your cards to your competitors. Other open source licenses such as MIT's have fewer restrictions and amount to preserving copyrights and the right to reuse but without any warranties.

Of course you can only build on code that is "compatible" with the license you choose. There may be solutions that are only available under GPL licenses, in which case you have to decide to live with those restrictions or build your own.

That's not strictly true: the end-run around the GPL is SaaS - if you are not distributing your software, merely running it on your own servers, then you can keep what you've built on a GPL foundation as secret as you like. The most high-profile example of this approach is Google. They do give away a lot of stuff true, but their core tech, like BigTable, is kept under lock and key.
THAT is what I'm after! The SaaS market is the primary vertical my ventures need to dominate at the moment. Distributing software is really not on the list for the foreseeable future.

I think you discovered the answer I needed. I'm now confident that the GPL won't be an issue for the time being since most of the code will be staying on our servers. In the future, other licenses may be worth my time to investigate for new products.

Technically true perhaps, but morally gray at best. As I see it, a project that's using the GPL is making a pretty clear statement of their intent, regardless of whatever slimy legal loopholes may have been left unclosed. A GPL project author probably doesn't want other people harvesting their work and keeping the changes secret, even if there are technically ways around the GPL's distribution clauses.
FWIW I agree with you, but it is how it is.
I'm confused. Are you saying that using private GPL software in the SaaS vertical is NOT ok?
I'm saying that while it violates the spirit of the GPL, it is nonetheless completely permitted. As I say, Google do it.
I see. It all comes down to morals. With all the Open Source Community has given me, I'm not interested in stepping on toes. Not sure what the future holds but thanks for making your perspective crystal clear!
Of course, many very successful businesses are built on the GPL and rarely is a competitive advantage, so advantages that the entire company hinges its success on denying people their freedom. I call bullshit on that whole argument.
Good point. I'm all about freedom and our new economy is a perfect place to support things like the GPL.
> basing a business on GPL as you stated may be a problem because it would compel everything in the stack (including something unique built on top of established code) to be opened up...

This is a very rare situation. If you link to GPL code, then your code has to, at least, grant GPL rights to your users. However, just using GPL code to build your code is not. I use Emacs to write code that is either interpreted by Python or compiled by GCC and nothing I write needs to be licensed as GPL. A lot of OSX is compiled with GCC and many programs on the OSX install DVD are BSD licensed.

Unless you link to a GPL-only library, you are probably safe.

As for other licenses, there are licenses like BSD and Apache. You can pick code licensed under them and use it as part of proprietary code you release. OTOH, your competitor may use the BSD-ish code you release as parts of your competing product.

The ability to link freely isn't automatic in GPL libraries, it is something that GNU explicitly adds as an exception to the license of GCC; otherwise, GCC is pure GPL [1]. The GNU C library is a related runtime that also explicitly allows linking to proprietary software because it is under the LGPL and not the GPL [2].

What it boils down to is that GPL by itself does not allow reuse without similar disclosures of code, etc. and only a different license (like LGPL) or a documented exception to the license (like in GCC) will change that.

[1] http://gcc.gnu.org/onlinedocs/libstdc++/manual/license.html

[2] http://www.gnu.org/s/libc/manual/html_mono/libc.html#Copying

I did not imply you could use GPL code as part of proprietary code you distribute - quite the contrary. That's, BTW, what the LGPL and the exceptions you mention are for.
You haven't really given us enough information to answer your question. In fact, I suspect you haven't yet asked the question(s) you really want/need to ask. I think you need to spend some time getting familiar with the top most popular F/OSS licenses, and the implications of each of them. There's a really good book on that very topic titled Understanding Open Source and Free Software Licensing. I recommend you read it for a good introduction:

http://oreilly.com/catalog/osfreesoft/book/

For example, is building a social network or designing a template using a GPL software package a bad business plan?

Using, or not using, F/OSS isn't a business plan, it's just a detail - one element of many in a business model/plan. Whether or not it's a bad idea would depend on the other elements of said model. That said, Red Hat and others have proven the validity of selling F/OSS, if that's what you're getting at.

Thanks for laying it out like that. Yes, its a detail but I think its a very important detail don't you think?
Sure, most likely it is important - but without knowing more about the intended scenario, it's really hard to say. In the case of a social network, if one were to make a site which is strictly hosted, and never distributes their code, then one could use GPL'd code to your hearts content with basically no ramifications. But decide to sell the product for use on-site, and now it's a whole different game. Or pull in AGPL'd code versus GPL'd code and it changes the game. Hence my previous reference to the F/OSS licensing book. Understanding all these licenses and how they interact and what their implications are, is pretty important for anybody going down this path.
Yes, well, I'll at least have enough foresight to avoid AGPL or similar code if possible. Its just a good thing to understand what I may encounter once I've invested a year and a million dollars into something which might have unwanted public rights.
You can't link to GPL-incompatible code if you're going to distribute the result. If you want to maintain an exclusive right to sell out (which worked well for MySQL AB), you have to get copyright assignments from day one, not just accept GPL'd patches. Some people won't contribute to GPL projects on principle, though I don't think anyone knows how that number compares to people like me who won't contribute to BSDL projects.