View Single Post
  #5 (permalink)  
Old May 17th, 2004, 04:32 PM
richard.york's Avatar
richard.york richard.york is offline
Wrox Author
 
Join Date: Jun 2003
Posts: 1,706
Thanks: 0
Thanked 6 Times in 6 Posts
Default

Early on I liked developing completely from scratch. As I've gained some experience I've realized how much of a hassle it is to reinvent applications that already exist elsewhere. At this point I find myself in a healthy balance of both. For instance in a project I did a few months ago I needed a calendar application. I found a suitable calendar appication available open source and used that as the foundation for my project, which eliminated a great deal of guess work and logic tinkering and sped the project along quite well I did in a few days what could have easily taken two weeks starting from scratch.

Often times however, many open source projects are sparsely documented or too customized to one particular usage, which makes them difficult for even a programmer of intermediate skill to adapt to their own needs and completly inaccessible to the beginner.

On the other hand though, there are many that are accessible and tried and true solutions to complex problems that to build from scratch would require months upon months of programming and testing. Building from scratch privately or proprietarily takes away some of the real world element where thousands of people are using, testing and improving the application in question.

These days I always do some searching for an existing solution before building from scratch. And I have one of my own in PHP PEAR at http://pear.php.net. It's a program that can be used as a webmail backend called Mail_IMAP. I started Mail_IMAP as a personal project, I wanted to build a webmail program from scratch. The project took somewhere between 6-8 months before I had a good enough understanding of how PHP's built in webmail functions work. I used some poorly written tutorials and some very sparse documentation on PHP imap_* functions to put together my program. At some point I wanted to go open source with the project. Since I put together and released the package on PEAR I have discovered a number of bugs and errors that I would have either never found or taken years to discover without the widespread testing. So going open source with the project has had huge advantages. I also have the luxury of being able to invite others to assist on the project whereas it can be improved even more. And yet, in this particular program, a ready to implement PHP webmail program using the imap function library, already abstracted and fully customizable didn't already exist somewhere else. The closest were squirrelmail and horde, which are very difficult to abstract to one's particular aesthetic needs. So building from scratch here filled a need in the market.

Regards,
Rich

::::::::::::::::::::::::::::::::::::::::::
The Spicy Peanut Project
http://www.spicypeanut.net
::::::::::::::::::::::::::::::::::::::::::