Technological Uncertainities
1. What is open source software? Open source software (OSS) is a collection of tools and operating systems which have core codes that can be accessed for free and can be modified or improved upon by programmers. The only provision is that the modified codes must be available for other programmers to access to learn from, modify and to continue innovation. Some famous open source software includes Linux, Apache and Netscape. Advocates of OSS claim that allowing the public to modify and add to codes increases innovation while opponents claim that proprietary software uses superior technology. OSS primarily began as backlash to Microsoft’s proprietary approach to software. Increasing usage and implications of OSS are under debate.
References: http://www.netaction.org/opensrc/future/intro.html http://en.wikipedia.org/wiki/Open_source_software
2. How is open source software developed?
The development process for open source software is often quite different from that of traditional commercial software. In some cases a single author or a small group may develop and distribute a program or system. Successful software often attracts additional developers, however, and larger projects generally require larger teams. These teams tend to be distributed, with participants in different locations and with different affiliations. Some members may contribute their own time; others may be paid to work on the project. Some projects develop infrastructure such as a consortium to coordinate the project; others work with a looser organization. In either case, projects are likely to be organized with less central control than in traditional software development
3. Is the open source easier to develop than closed source?
No it is not easier to develop the open source software than closed source software. This is because close source software programmers are sitting in one room creating the software, thus making the interactions among developers easier. Similarly the commitment for creating the closed source software is higher as people are paid for their work.
4. Who would be responsible for maintenance, quality and reliability control? Like the development of the software the maintainance, quality and realiability is also in the hands of many developers. Open-source software is peer-reviewed software; it is more reliable than closed, proprietary software. Mature open-source code is as bulletproof as software ever gets. You can read an extended technical argument for the superior reliability of general open-source software in [The Cathedral and the Bazaar[1]].
5. Can software created on open-source software be copy righted or licensed?
Open source software can be license protected. The most commonly used license is GNU General Public license or GPL. GPL states that all the code covered under license has to be shared again once any changes are made.
GPL partisans like to call it a "protective license" because it ensures that code covered by it will remain open source forever. In addition to the GPL, such licenses include the Artistic License, LGPL (GNU Lesser General Public License), v.2.1, IBM Public License v.1.0, Mozilla Public License v.1.0 and v.1.1, Open Software License v.1.1, and Sun Public License v.1.0.
All of these licenses have slight variations in them, and there are about a dozen more in use.
The BSD license is the second most widely used open source license. Its most significant difference from the GPL is that it does not require that anything be made open source.You can, if you like, take the entire NetBSD operating system, change one line of code, and then make the whole thing proprietary and try to sell it as YourOS. Similar to the BSD license are the Academic Free License v.1.2, Apache Software License v.1.1, Artistic License (which governs Perl),Attribution Assurance License, BSD License, Sun Industry Standards Source License, University of Illinois/NCSA Open Source License, Vovida Software License v.1.0, W3C Software Notice and License, and Zope Public License v.2.0.
Microsoft also promotes Shared Source software, a move that to some looks like an attempt to capitalize on the open source groundswell. Shared Source basically means that eligible developers and companies can access the code to certain Microsoft software if they sign up for the program.
Reference: http://acmqueue.org/modules.php?name=Content&pa=showpage&pid=153&page=2
6. Won’t adoption of open source software stifle innovation of software?
7. How does open standards used in MPEG4 and SAP work? Does this mean part of these software is changeable/copyrighted while is part is not?
8. Does system thinking work in open source development?
9. Security issues in open source
10. Issues related to Commercialization of open source software The use of open source software has become increasingly popular in production environments, as well as in research and software development. One obvious attraction is the low cost of acquisition. Commercial software has a higher initial cost, though it usually has advantages such as support and training. A number of business models designed by users and vendors combine open source and commercial software; they use open source as much as possible, adding commercial software as needed. They may use open source software as a central component of a product or service, but use other components to add value, which can then induce customers to pay for the offering (obviously, it is hard to compete with free software on price). Yet commercialization of open source software is plagued with difference in software development process, integration issues, and presence of numerous business models for open source software and commercial hybridization. This makes one thing clear: There is no such thing as free software. Sure the software is downloaded for free, but volunteers and employees have contributed their time to make available no-cost software for other users. In addition, integration of free software components involves a cost that must be considered. Many organizations and individuals fail to recognize the significant time and cost integration work can take. And, of course, initial cost and integration are not the end of the story: Updates, patches, version upgrades, and technical support are an ongoing overhead.
http://acmqueue.org/modules.php?name=Content&pa=showpage&pid=56&page=1
11. How is the role of the programmer affected by changing technology?
In the past, a programmer was the creator and maintainer of software. He/she developed software according to a language, editor and debugger. As technology changes and becomes more complex, software is also growing more complex. This necessitates more highly specialized programmers to develop software while generalists become the “maintenance.” Of course, amateurs will develop their own complex software utilizing the latest technology but the quality of such software will be unknown. The functionality of the software may be decent but the way in which all of the new technologies are being used may not be the optimal solution for the problem at hand. Instead of software being “programmed,” because of the new technologies, software development will become software architecture, where technologies are interwoven in a masterful way.
http://weblogs.asp.net/ralfw/archive/2006/04/01/441639.aspx
12. What is automatic software development?
An automatic code generation engine bridges the gap between design and coding by automatically generating commercial-grade code for virtually any language or platform from object models and code patterns. Developers can reuse the patterns to automatically create code for multiple platforms by synthesizing the application design with a different template.
http://www.cleanscape.net/products/sourcemill/summary.html
13. What are the implications of an automatic code developer?
An automatic code developer makes software development faster by automatically generating thousands of lines of commercial-grade code in seconds. It can reduces coding phase by up to 60% and significantly reduce the debugging phase and virtually eliminates the manual coding of redundant tasks. It also increases product quality by reducing programming errors and creates consistency across versions and platforms. Automatic code developer also b ridges the gap between design and coding and reduces development costs. The automatic developer is the beginning of the creation of software by other software.
http://www.cleanscape.net/products/sourcemill/benefits.html
14. What is generic software
Generic software is a synonym of commercial off-the-shelf software accounts for most of the software running today on general-purpose computers such as PCs; for example word processors, spreadsheets and games. It can be cheaper and more reliable than custom software. It can be customised but when a new release of the generic software is issued, the customization work may have to be re-done. It can also be defined as software designed to be sold on the open market and to perform functions on general-purpose computers that many people need (in contrast to custom software). The requirements of generic software determined largely by market research. Example of generic software are word processors, spreadsheets, compilers, web browsers, operating systems, computer games and accounting packages for small businesses.
http://www.site.uottawa.ca:4321/oose/index.html#genericsoftware
15. Is there any automated self generating software system? If yes, How does it works?
Yes there is self-generating software system. A completely automated software, firmware, and/or hardware system capable of self-generation and auto-updating, designed to be independent of computer technology and to never become obsolete as computer technology changes. A system in which all the software programs are generated by feeding problem specification files, which can be handled automatically, and, thus, can be updated and documented by, the computer, into program generators, which communicate with users in human language. The initial self-generating generators which have their own specification files and can, therefore, generate themselves.
By following the flow of the tree-structured multiple-choice questions, a user no longer needs to commit to memory any technical information, such as addresses, formats, keywords, etc. In particular, by presetting a flag in the program generator, not only can the generator generate instructions, but it can also generate instructions which can generate instructions, thus, allowing future generated generators to generate instructions, and also instruction generating instructions. The self-generating software system is completely automated, can self-generate to infinity, and has a structure similar to the DNA-protein system of the living organism.