Difference between revisions of "Technological Uncertainities"
Line 34: | Line 34: | ||
http://acmqueue.org/modules.php?name=Content&pa=showpage&pid=56&page=1 | http://acmqueue.org/modules.php?name=Content&pa=showpage&pid=56&page=1 | ||
* 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 | |||
* 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 | |||
* 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 |
Revision as of 20:29, 9 May 2006
- 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
- 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
- Is the open source easier to develop than closed source?
- Who would be responsible for maintenance, quality and reliability control?
- 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
- Won’t adoption of open source software stifle innovation of software?
- 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?
- Does system thinking work in open source development?
- Security issues in open source
- 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
- 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
- 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
- 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.