


Prior to the birth of the Internet, it was assumed that all software 
    cost money, and it could not be altered or re-packaged in any way by the 
    end user. After all, who would spend countless hours creating commercial 
    grade software just to give it away for free, not to mention letting others 
    modify and re-distribute it? Then, along came the Internet, and it enabled 
    hundreds of thousands of programmers from around the world to come together 
    in a single community to share their ideas. This created a concept, called 
    "Open Source", in which programmers distributed their software along with 
    its source code free of charge under a license called General Public License 
    or GPL. The beauty of this concept is that other programmers can improve 
    upon the original program and redistribute it without violating the terms of 
    its license. One would ask, why would programmers do this? The answer is 
    simple, recognition. Most programmers who are heavily involved in the Open 
    Source community, are just that, programmers. They are not business people, 
    but mostly academic types who derive personal satisfaction from their work 
    being recognized and praised by others, rather than monetary compensation. 
    Their contribution to the Open Source community is equivalent to that of 
    doctors and scientists who publish research articles in trade journals.
    
    Thus the birth of the Linux operating system, Apache web server, Qmail mail 
    server, Proftpd FTP server, BIND DNS server, MySQL database server, and 
    thousands more similar applications which are as good if not better than 
    their commercially available counterparts. The only factor that 
    distinguished this software from its commercial alternative, is that there 
    was no single entity (we will call it "big brother") that offered support. 
    Therefore to implement an support Open Source software, the end user needed 
    to do independent research, and communicate with other members of the Open 
    Source community. The largest and most obvious benefit of Open Source is 
    that the software is absolutely free to those who know where to find it. 
    Another is the freedom to modify the code for your own needs as you see fit 
    without paying licensing fees, or getting anyone's permission. This allows 
    you to upgrade and customize your own software as needed, without having to 
    rely on and pay "big brother" to do it for you when and if they decide it's 
    necessary. Generally, commercial software makers have a direct financial 
    incentive to get users to upgrade, so you may also be forced to pay for 
    upgrades that are truly not needed in order to continue receiving support 
    for the product you purchased.
    
    What type of Open Source applications are available, and where do you find 
    more information on them? There is one simple answer,
    Google. Google, itself 
    being run entirely on an Open Source software platform, has a wealth of 
    articles and email communications from the Open Source community that 
    probably addresses every bit of code ever written, as well as all known bugs 
    that were ever found. The amazing thing is that you will most likely get an 
    answer to any problem you are having with an Open Source product from Google 
    faster than you would is you had a "big brother" product, and called their 
    support line. For example, if you want to find an Open Source mail server, 
    you would simply do a search in Google for "open 
    source mail server". There are a staggering 12,000,000 results, so as you 
    see paying for a commercial mail server would be a complete waste of company 
    money. Now let's say you downloaded an open source program written in PHP, 
    and you can't seem to get past an error that says, "Parse error: parse 
    error, unexpected T_STRING", and you want to find out what is causing that 
    output, you would simply do a search on Google for "Parse 
    error: parse error, unexpected T_STRING". You will then see over 72,000 
    articles related to that particular error with many solutions. As another 
    example, let's say you want to write your own program in PHP, but you are not sure 
    what PHP's Regular Expression syntax is, you would do a search for "PHP 
    regular expressions". A result would be over 500,000 articles, including 
    manuals, examples and real code. The bottom line is, if what you are trying 
    to do has ever been done by any of the hundreds of thousands of Open Source 
    programmers, you will find it in Google, and if it hasn't you will most 
    likely find out how close someone has gotten, and maybe even be the one to 
    find the missing link. If you do not want to tackle the project, you would 
    of course again turn to Google and search for "open 
    source developers", and find over 9,000,000 results.
    
    For maximum functionality, speed, reliability, and security, we highly 
    recommend using the PHP 
    scripting language with a MySQL 
    database, hosted on a Linux 
    platform for development of all back-end web applications (in case you are 
    wondering, all of these are 100% Open Source). An application written in PHP 
    typically requires 30%-50% less code and development effort than if it was 
    written in any other language. PHP is also very easy to learn, it has the 
    most free 
    online documentation and support, and it is increasingly being deployed 
    in large scale enterprise applications by companies like IBM (click 
    here to see IBM's PHP efforts) and Oracle (click 
    here to read Oracle's reasons for choosing PHP). With over 10 years of 
    developing web applications for ourselves and thousands of clients from 
    around the world, we have yet to come across a task which could not be 
    handled using this platform.
    
    For a sample of open source web applications, please go to
    AutoInstaller.com, 
    and click on any of the program icons. To see a desktop open source 
    application in action,
    click 
    here to download the Firefox web browser. 
Building A Successful Web Application
The process to developing a successful web application is very much similar to building a house, car, or any other tangible product, as it employs the same basic principles. It involves three different phases, each one being equally important:
1) Engineering
    2) Coding
    3) Debugging
The Engineering Phase involves coming up with the concept and process of 
    events (user or external input) which will lead to desired output. Just like 
    an architect coming up with a design, and creating blueprints for a new 
    construction project, a web application must start with a vision of what it 
    is supposed to do, and how it should do it. The only difference is that in 
    engineering a web application, the person doing the actual engineering does 
    not necessarily have to be a programmer or even know how to code. A summary 
    of the inner workings of a program can be laid out in any format, a diagram, 
    itemized list, written overview, or any other way that can be effective in 
    communicating the thoughts of the engineer to a programmer. Despite the 
    apparent lack of formal structure, this phase can indeed be the most 
    challenging, as it requires creative thinking.
    
    The Coding Phase takes the software concept or blueprint created during the 
    engineering phase, and transforms it into computer code which will run on a 
    web server. This is also equivalent to a building contractor assembling all 
    parts of a structure that the architect has rendered on paper. This phase 
    can be very time consuming, and will most likely require a skilled 
    programmer. During this phase, the programmer will not only create the code, 
    but also test each segment for syntax errors to make sure it executes 
    correctly, and performs all tasks as required in the engineering phase.
The Debugging Phase is all about testing, and fixing bugs. One of the biggest challenges to building any application is error handling, which is what the program does if it receives unintended input. This is where the Debugging Phase comes into play, as it thoroughly tests the application with many different types of input, and creates routines which return a correct response from the program for each type of error. Although most error handling is usually created in the Coding Phase, the worst types of errors are usually uncovered during debugging. The developer must have the foresight to predict every possible input, and create output which will make end users aware of their mistakes, and encourage correct input, as bad error handling can mean the difference between a sale being made, or a customer going elsewhere.
In summary, every web application needs equal effort to be made during all three development phases in order to maximize its effectiveness, and yield the highest return on investment.
Click here to tell us how we can help you.