Open source is great. Code is knowledge and knowledge should not be hidden forever. ASAP it should become public for all to use and benefit from. In the past the flow of information was slow, but nowadays is fast, and the faster we share and need information, the greater the need society has for all code, which is knowledge, to become public, with no strings attached.
But what about the rights of the creators of original code? The programmer sometimes pours his money, his time, his energies, his own life into a program, and is unfair to demand or expect him to put it into the public domain right away or license it under a free license that may take away his rights and his opportunity to make some money out of his product. This don't seems fair.
A balance must be found somewhere. The programmer should have a reasonable opportunity to make a living and earn an adequate return on the investment of time, knowledge, and effort he puts into the development of a computer program. Yet the code itself is knowledge that should eventually become public domain, accessible for all to use and share free or charge, with no strings attached.
Certain programs constitute the foundation and infrastructure upon which the internet, the whole computer industry and some other segments of society are built. In these cases the public interest stands above those of the individual programmer. In these cases the period of time from the moment when a program is made public to the time it becomes public domain should be relatively short. But there are other programs which are peripheral applications, for example, an Astrological Calculations and Report writing program. It is not essential for society to have this program's code placed on public domain. In this case there is no specific public need that demands that the code becomes public domain immediately. Eventually it should be, as general knowledge. But the need is not as urgent as with more critical code.
So, what I proposed is that when a program is released, if it is going to be used in a critical application essential for society, the preferred method should be to develop and release the code immediately under a free license like the BSD or the GPL, to mention the two most popular. If the programmer or company who develop the program feels that they have make a sizable investment in the development of the code and need to keep it private in order to have a decent return on their investment, then they could release it under a proprietary, closed code license. But within a certain period of time, lets say one year, the code should be release under a less restricting license. Year after year thereafter the status of that code should become more and more public till it becomes public domain, free for all to use and modify, free of charge.
As a number to consider I suggest that after five years of its release, the code for a given critical program should become public domain. This number, of course should eventually be established by the competent authorities and become an international standard.
A similar process of increasingly free licensing should applied to less critical code, but in this case instead of a yearly cycle, it may be every two or three years. But again, I suggest that all software should become public domain not latter than ten years after its initial release. Once again the appropriate authorities should establish this final limit and it should become an international standard.
Once these international standards are established, every time a software program is release, we will know that after a set amount of time, the code will become available, and the individual or Corporation who releases the program will know that the will have the exclusive use of that code for a set period of time. So, they better release a good program, because if it does not works well from the beginning, they will not be able to benefit from it before its code becomes public domain.
Under these standards what happened with Windows Vista would not happened again; for inevitable, from the date of the initial release, the source code would have become increasingly open and by the time windows 7 came about, it would have been well known to the competition. A norm like this would have force Microsoft to release good, well tested code from the very beginning, to maximize their return on investment before the opening of the code, or develop their OS under an Open Source development model that will speed up its development while benefiting from the contributions of others, even their competition.
This proprietary to open source to public domain source code release Standard will bring to an end the present conflict between proprietary and open code development models. Some companies and individuals will choose to develop their software as open source, to take advantage of the extra and free resources that the open source developing model provides, while others will prefer to develop it as proprietary code, to gain a competitive advantage once it is release. One way or another, within a set number of years the code will become public domain, free for all to use, share and modify.
The important thing is that code, should not remain proprietary forever. It is knowledge that must become public. Yet those who invested time and effort developing it, should have a fair opportunity to get a decent return on their investment, before it becomes public, and, eventually be placed in the public domain.
This idea is not written in stone, hopefully will not be written on ice, either. It is presented with the hope that the powers that be will take a look at it, will improve it, correct it, rewrite it, and eventually propose it as a Software Code Development, and licensing Standard.
I love open source Hardware, Operating Systems and Software. Presently I have a CR-48 Chromebook which has become my primary computer. I also have a Desktop computer built around an Asus M3A78-CM motherboard, an Athlon X2 cpu and 8 gigas of ram (Not that much by today standards) and a Viewsonic Gtablet. There are many applications and configurations I would love to see developed and implemented as open source, to be run on Linux and other Operating Systems. Let's write about them.
Subscribe to:
Post Comments (Atom)
I personally don't agree with you on this model. This will lead to outdated code being released to public domain. The original developers may or may not bring innovative and unique features to the program before releasing the code. This will hamper innovation which is seen in todays open source model. Consider, for example, ubuntu(and all projects it uses) following your pattern of licensing. The code for ubuntu 5.04 would have been released this year which would be severely outdated to modify by the community.
ReplyDeleteWhat I suggest on this topic is the use of dual licensing for the same code, as in, free for personal usage and chargeable for commercial usage with the right to modify code while retaining the original author's name and contribution.
I hope I've made aa valid point of discussion on this topic.
I think that this make sense for some things. I would argue that some things should be open-sourced from the start, such as operating system code (maybe), device drivers, and security-critical programs (encryption programs, network security stuff, etc). Some things work better with your model. Computer games would work very well. They make much of their money within the first year or two, so open-sourcing after that doesn't lose them much. And the developer can always make customers pay for any online features that the game has. Your idea probably won't cut into the open-source software industry, such as it is, but will probably be attractive for people who normally make closed-source software, because they can drop support to the community after a year or two.
ReplyDeleteI agree ... but not with the time spans... I think you should double or triple them. 2-3 years before it becomes 'shared source' and maybe 15 before it goes public domain. That means windows 95 should be in the public domain. Honestly I wouldn't care if it was 20 years... but at some point these companies should have to release the source just so the knowledge isn't lost.
ReplyDeleteThe big idea is that at a given time ALL code should become completely free, license free, public domain knowledge for anyone to use. Those who wish to continue to develop and release their code as open source should be free to do so, but proprietary developers should have a limit after which their code will become completely license free knowledge.
ReplyDeleteSoftware, and its source code, which is critical for any given area of society should be release sooner, while not critical software may take longer. But eventually all Code, should become completely free, license free. This is the main idea..
The time frames and intermediate license arrangements presented in the article are for illustration purpose only. The actual times frames and intermediate license arrangement are for the experts to decide.
I like the intent of this idea (I suspect many won't, Americans in particular, because it smacks of the spectre of government interference; that doesn't in itself bother me). But I'm not clear that this would work the way you think it would, unless you mean something different by "public domain" than is normally meant. "Public domain" functions much like a BSD license, in the sense that if you find a piece of code in the public domain that you like, there is nothing to stop you from folding it into your own closed software and distributing the result as a closed binary, with no attributions or credit, much less any necessity of distributing the source of what you took. So what you would create would be a lot of software waiting for corporations to put proprietary wrappers around it, add maybe a few extra features, change relevant file formats enough to create lock-in, and profit without having to actually write most of the code.
ReplyDeleteBasically, just because "public domain" is considered some sort of default or absolute state doesn't mean it doesn't have its own specific characteristics. The characteristics of "public domain" aren't defined in a license, but they are still there and they aren't actually as beneficial for freedom as copyleft licenses are. Consider, the public domain already existed when the GPL was created, but it was not filling the need that the GPL fills--that's why the GPL needed to be created in the first place.
I'm also wondering about a detail of this plan. OK, so MegaHard writes a word processor called "MegaHard Paragraph", releases version 1, gets lots of computer vendors to bundle it with them and so on. Next year it releases version 2, then "MegaHard Paragraph Millennium Edition" and so on. In between, it does a long stream of bugfixes, so what was actually being packaged as "version 1" changed every couple of weeks. Five years after the initial release of "MegaHard Paragraph", what gets released to the public domain? Version 1? Or is this the end of the gravy train for "MegaHard Paragraph" and they have to release the whole thing? If the latter, some might consider it unfair and there might be perverse incentives not to bother improving software especially towards end of life. If the former, who's going to go back to obsolete old "Paragraph Version 1"?
One might hope that people will contribute to further development of the software now that it's public domain, but they will be less likely to because it isn't copylefted. I suspect that even if this happened, these vast archives of old code would be to a fair extent irrelevant--people like the developers of Samba or OpenOffice would go through the guts for interoperability clues, but for the most part the Free software world would continue to revolve around existing, mainly copylefted, projects.
Hi, Rufus Polson:
ReplyDeleteYou have a valid point. The central objective is that after a certain period of time all code should become public knowledge, free for all to use as they please. Under this scheme, for example the original code for Windows 95 would, by now, be public domain. Likewise OS2 and even Windows NT...
From my point of view all Critical software should be release as open source, critical areas of society should not be hold hostage to the secret code develop by a private company, This, or course is too much to ask. So the second best is to establish a timetable that all proprietary software has to follow on its way to go from proprietary code to public domain information.
Perhaps a longer time period will be better, lets say 10 to 15 years....
Once again the central point is that all software should eventually be freely available with no strings attached, as public knowledge in the public domain...