Ye' old general discussion board. Basically, for everything that isn't covered elsewhere. Come here to shoot the breeze, shoot your mouth off, or whatever suits your fancy. This forum is not for asking programming related questions.
For years now, I have always suggested to clients that we build from scratch as opposed to using an existing third party application and hacking as need be.
Just recently I purchased a basic CMS from a company and hacked it slightly...and was very disappointed by the quality of source code, but thats neither here nor there...
My question the becomes...
Have you ever purchased a third party web application, customized it, rebranded it, whatever...and resold it to your customers???
I usually code from scratch. That's because I don't like giving other people credit for things that are integral to an application. Also, if I make it myself, I can learn something, and I know exactly how it works. There's nothing better than learning by doing.
I HATE working off someones code. Takes a bit to understand the original code then of course every coder has their own style, and its very very rare that two peoples styles are exactally the same. Last thing I want to learn is how someone elses codes. I am here to learn to code better and better in my own way, to make things best in the way that I think would be best.
I code from scratch, and I may reuse my own DB class that I have been using for forever but thats just because I understand it and it works for me. Other than that, everything is brand new.
Have you ever purchased a third party web application, customized it, rebranded it, whatever...and resold it to your customers???
...^that is considered bad practice by many. Including me. If you want to offer something as your own (commercial or freeware/GNU/other), _make_ it your own. Using ideas or being inspired by someone else's work is perfectly fine, however once you start using someone else's code in the core of your application (by this I don't mean tool classes, database abstraction layers, etc.), it's not your work anymore. IMO.
Also, I wouldn't feel much satisfaction after ripping off someone else's work and offering it as my own. I might as well just buy a reseller license and do it properly.
Cheers,
Tom
PS: Now that's at least 5 dollars worth of opinion there...
I voted build from scratch as that is what I do 95% of the time.
There are times however when doing so is a waste of time. Take phpBB for example. Sure I could write my own forum software and sure I could make as good (or better) than phpBB, but the amount of time it would take me to do it would be extraordinary. There are cases when software is as good as it needs to be "out of the box". This isn't to say that you shouldn't tweak them a bit here and there, but making major code overhauls just isn't necessary or a good use of time.
But for the 95% of the time I do build my own it's for reasons stated above (knowing exactly how it works and why, being able to make changes very quickly and easily, etc etc).
I haven't answered the poll because the question is too loosely posed. I can't say I would do one or the other unless the conditions are more fully described.
What is the application? For a full-fledged discussion forum there is no way I would reinvent the wheel if I could avoid it, for a smaller application it might be easier to do just that.
How closely does a third-party application suit my client's needs? Or how much effort is needed to make it do so? Again a reinvention might or might not be the way to go. And, in fact, I've done it both ways.
Your question's phrasing "Purchased.. and resold it" makes an answer a bit difficult. I would never alter another's work and then sell it as if it were my own. I have from time to time had my client purchase an application and then altered it for him, and I think I have made that initial purchase on the client's behalf. But that isn't what seems to be implied by your question.
There's no point re-inventing the wheel... if something been done before and the code is mature chances are you'll have to spend a lot time producing the same thing and then do all the bug testing etc.... not worth it IMO.
The beauty of open source is that things work like this... code can, and should be re-used/adapted. Of course, it comes down to licensing and whether the S/W will fits your needs too. Most things I'll do myself just for the more specific use in a project (lighter and more to-the-point), but if something does the job I need it to do I have no issues with using third party code... credit given to the author(s) of course
EDIT | A good example would be feyd's SHA256 class. Would you write it yourself all over again (reinvent the wheel) ? Or would you just take it and use it? I know what I'd do
d11wtq wrote:EDIT | A good example would be feyd's SHA256 class. Would you write it yourself all over again (reinvent the wheel) ? Or would you just take it and use it? I know what I'd do
Agreed. It depends entirely on the complexity and quality of the available alternatives. If I could write something better than the code available within the allowed timescale then I will .. otherwise I'll use the existing code.
Speaking of Feyd.. where is he? Not seen him post anything for agggggggggges.
All depends on circumstance, if someone wants to pay me to write from scratch, for example, and e-commerce app, then I'm happy to do it. However, when a client asks me to "Setup a webshop with my products" they are not going to want me to spend weeks making a site from scratch, so I use a 3rd party app such as X-cart, tweak it, make a template or two then hand them the keys so to speak.
In the office, it's policy *spit* to use 3rd party apps over our own.