![]() |
![]() |
|
Wednesday, August 18th, 2010
Why you shouldn't base your software off open-source projectsBy Tyler King
Note: This post is meant for people that build, or are interested in building software. If you don't care how software is made, you might want to skip this one. Ok, so this title is a little inflammatory. Before getting into this, I should say that I am a huge fan of open-source software. This site is built on PHP, MySQL, and Apache. We also use all kinds of open-source libraries like JQuery. This post is not an argument against using open-source software, it's an argument against building new software based off an existing open-source project. Let me explain what I mean. When starting a new software project, you basically have two choices. You can build the entire thing yourself from scratch, or you can take code from an existing open-source project and modify it to fit your needs. For example, there are a number of web applications based on the popular open-source blogging software Wordpress. Because Wordpress is open-source, developers can easily download the source code and use it as a starting point for new applications (rather than starting from scratch).
Why would you start with an open-source project? So if open-source software can save you so much time, what's wrong with it?
Problem #1 - It's harder to make changes So if you're building serious software (and not just a website about your cat), you may actually save time by starting from scratch. If you start with a clean slate, that means that all the code will make sense to you, and it means there won't be anything unnecessary complicating things.
Problem #2 - It stifles creativity When you start with someone else's project, you're boxed into a corner before you even get started. Sure you have full access to the code so you can make whatever changes you want, but you're a lot less likely to get creative. Wordpress already has a login page, and you'll use that as your starting point. That means that whatever you end up with for your login page will be some altered version of what the Wordpress designers came up with. You never have an opportunity to truly create something for yourself. There's almost no way to design great software when you skip the "blank canvas" stage. I'm sure many people will disagree with my opinion on this topic. It's certainly easier and safer to start with an open-source project, but I think that doing so dooms you to mediocrity (unless you rewrite tons of code in which case there was no point). Just to clarifying, I'm totally fine with using open-source libraries and frameworks (JQuery, Rails, etc.). I just don't think that your core product should be a modified version of someone else's core project (normally). Also, I have no problem using Wordpress or Joomla to build a basic website or blog. My argument only applies to people trying to build real applications with functionality that goes way beyond the built-in features of any open-source project.
|
Are you new here?
You might be interested in reading these posts:
Or you can browse by topic:
About this blog
This blog helps small businesses find and use easy, effective software. Most technology is meant
either for individual consumers, or huge corporations. We'll help you find the tools that are
powerful enough to help run your business, but simple enough that you can start using them by
yourself.
This blog is written by the co-founders of Less Annoying CRM. We build an easy customer management tool that helps small businesses organize customer information and track leads. If you have any feedback about this blog, please feel free to contact us.
Search the blog
Archives
|

