For quite some time now it has been argued that open-source, or some close derivative of open-source is the fastest way to improve upon an application. However, I have not really taken the time to think through closed-source, and the advantages of a closed development process and codebase. I suppose some of these advantages could also be labeled disadvantages to open-source.
views:
1132answers:
9The number one advantage has to be money. I know how to make money from closed-source software. I don't know how to make money from open-source software.
- Others can't (easily) use your source code for their own benefit
- Makes it easier to enforce license fees on end users
The advantage of closed-source software is that you can embed your intellectual property in it and minimize the risk of competition.
If you develop a truly innovative product or algorithm and deploy it as open source, it's easy for a competitor to build a knock-off immediately and gain reputation, market share, etc.
Release the same product as closed-source, and you've gained some time to become the leader while your competition struggles to catch up.
Having worked in the software industry for 15+ years, in Silicon Valley and for Fortune 1000 corporations, every project I have ever been paid to work on has been closed-source. (Although I have volunteered my spare time to open source projects.)
In my experience, the chief benefit of closed-source projects in commercial software is Time to Market.
This is aided by the ability to hide known bugs. Occasionally (cough!) commercial vendors will release a beta-quality 1.0 product just in time to meet a ship date, with the intention of fixing what should have been stop-ship bugs in a forthcoming patch.
The lure of releasing products before they're fully-baked is bolstered by having a userbase that is unable to audit the source code, or examine the bug-tracking database.
I have been a staunch advocate of Open Source and Free Software the past five years, looking down upon closed-source and proprietary software as a BIG evil. Yes, there are different business models around being used by various organisations to make money off of open source software, but truth be told, once you get down to selling software in order to run your business, the ground realities set in and you start to realise how difficult it is to make good money out of merely open source software. I know, I know. There was a time (during the last five years), where you couldn't convince me one bit about any advantages of closed-source software---but, today, as I stand working alongside a friend building up a company from scratch, I understand how difficult it is for sustainability of business' sake to pull off a business by releasing all your products as open source.
My work in particular has to do with building, marketing and selling Symbian and Windows Mobile applications for the Asian markets. The competition there is extremely fierce, and there is an ever-increasing risk of someone filching your idea/code, materialising it, and running off with all the glory (whatever you include in it, money, fame, etc). Open source is just not an option--viable or not--over there.
A few things—proprietary software vs. free software, is what I think you're trying to ask. You can have software that is “open source” under something like the MS-ARL, and thus effectively closed-source because you prohibit the re-use of the code. But unless you’re distributing encrypted binaries, you are not effectively hiding anything from the application. Clean-room reverse engineering is permitted in most countries for software (and why not, you can reverse engineer your cell phone or even the binding of a book without special permission from the law). In any event, the clean-room process is effective whether you're distributing C source code or compiled binary opcodes for a native CPU.
All of the advantages I can think of are centered around control, not necessarily money. I make my money from supporting open-source, free software; I also make money on contract gigs for closed-source, proprietary software for clients, and sometimes extra because I can't re-use something publicly available under the GPL or find something under a suitable different license that the client accepts. I don't have a problem making money from proprietary ventures, if only because for some clients, they become a repeat-thing because they never really have an idea of what they want.
I totally prefer using open-source software all the way around, though. I use Ubuntu on my workstation at home, Mono for my programming for clients (I don't like most Microsoft software, but .NET is the best thing to come from them, ever), and GNOME for my desktop environment. Servers that I deploy also run Ubuntu or Debian. I make more money from jobs involving these while charging less, and being able to provide better assurances. That's just smart to me, though this is one of those controversial topics that many people will argue on forever and ever.
Perhaps you should take a look at some case studies; I would recommend looking at the story of Cygwin, too, for some interesting history on money-making on open-source software. There is lots of potential if you pull the wires right, no matter which world you play in.
Another advantage of writing a closed-source application is that you can utilise libraries and other code from commercial vendors, which would be incompatible with most (if not all) open-source licences.
I suspect that legally it's far easier to get away with breaches in a closed-source application because people can't actually see your code to back up their claim it violates some copyright or patent.
Open source as the fastest way to improve an application only works if a community can be created around the application and advantage is taken from its strengths. If committers do not work well with the community, they might be better off with closed source.
Time to market can be much better with open source than with closed source, but keeping competitors out of the market is more difficult.
Programmer's Freedom: With closed-source, you are free to decide for what purpose will be used your code, it means if you program, for example, an image regognition algorithm for a videogame, it can't be easily reused for a weapon, on the other hand, with open-sorce you lose any control over software end use, and you can't even know to who are you facilitating your effort and technology. Closed sourse gives freedom to programmer. Open source gives freedom to end user.