Choosing the Right Open Source Technology
Once you have decided to build your store using open source (presumably based on one of the many excellent reasons for doing so), it's now time to consider which technology is best for you. There are many options to choose from, so let's talk a little bit about how to pick the right technology.
Language
The primary language of most open source commerce platforms is PHP. PHP is a very reliable language that has been around for a long time. There is a well established pool of developers out there that work with this language and it's particularly well suited for the types of projects that most small businesses would be interested in. PHP is supported by every major hosting provider and it's pretty easy to learn, as far as programming languages go. There are many excellent frameworks and tools built on PHP (such as Drupal and Joomla), as well as hundreds of easy to use tools.
In my experience, PHP is a very fast language to develop with. You simply grab some of the existing projects out there and cobble them together to suit your needs. It's not terrible, and it's much better than Java for getting a job done quickly. The main drawback to PHP is that it does not scale as well as Java or Ruby. Once your site starts to grow, you may find it does not perform very well without expensive server upgrades and/or tuning. It's also incredibly hard to maintain a PHP project over time. So there is a cost of ownership issue that you should consider. Short term gain, long term pain. That doesn't mean I would advise against using PHP for a project. It's usually the cheapest and fastest way to get a simple project off the ground.
Ruby is the other major player in this area. Ruby has actually been around for many years but it has gained a very large following with the advent of the Ruby on Rails framework (which this site currently runs on.) Ruby is relatively new to the e-commerce game, but there are now some well-established options from which to choose. Ruby developers are harder to find and cost more than PHP developers, but the choices tend to scale better and are easier to maintain. (Full Disclosure: I am the creator of a Ruby e-commerce framework.)
Strength of Community
I would argue that the actual technology used is not nearly as important as the quality of the community surrounding that technology. Before settling on a technology, you should investigate some of the following considerations:
- Is the project under active development? When was the last release?
- Does the project have a mailing list or online forum for getting help? If so, do people seem to get their questions answered?
- Is there an online demo you can try? Most projects have a demo version that you can play with. Ideally, you can also log into the backend and see how the reports work, etc.
- How is the documentation? Even if you're not a programmer, good documentation is the sign that the developers are interested in seeing you succeed.
Developers are the Key
The real key to a successful project is to hire the right developers. There are great developers using all of the available technologies; so there is no correct choice when it comes to picking one. My advice is to pick the right developer (or team of developers) and go with the technology that they are most experienced with. In my next article, we'll go into some specific strategies on how to choose the right developer shop.
Update: OK, I've corrected the reference to Django being a PHP application. It was an oversight. We all know that it's Python and it should also be noted that a flame war arguing over which language is best is not the goal of the article.
boyluv2000 says:
<blockquote>"The main drawback to PHP is that it does not scale as well as Java or Ruby."</blockquote>
http://en.wikipedia.org/wiki/RubyonRails
<blockquote>"Rails has been criticized for issues with scalability, most notably in relation to problems with database scaling[11]. These critics often mentioned various Twitter outages in 2007 and 2008, which ostensibly prompted Twitter's transition to Scala (which runs on the Java Virtual Machine) for their queuing system[12][13]."</blockquote>
Sean Schofield says:
Rails scales just fine when properly configured. The Twitter example is a bit controversial within the Rails community and I think you would find plenty of people who would argue that Twitter's problems were not Ruby/Rails specific. In fact, both PHP and Rails are probably overkill for a web application with just a few screens (such as twitter.) There are many interesting lightweight Ruby options that exist now that I would probably use.
I'm also not saying that PHP can't scale (just look at Facebook.) I would argue though that it is faster, simpler and cheaper to scale Ruby apps then it would be for the same apps written in PHP. I also feel that Ruby is much faster to develop in and easier to maintain. These concepts are related to scaling. The larger you application gets the harder it is to maintain a PHP application.
jeffs says:
One problem with your article. Django isn't written in PHP. It is written in Python. Python is a very robust and powerful object oriented dynamic open-source language.
realmac says:
Wow, you should check your research. Django is written with Python and it's about as far away from PHP as it gets. Sorry Sean, but you've lost your cred with me.
shawnr says:
Wow, not only are you wrong about Django, but you're writing a survey/decision article and neglecting one of the fastest growing languages in web development? Bad move, space cadet.
You should also discuss Python and discussing Django, Zope, Turbogears, web.py, Grok, or a number of other excellent web frameworks. Then again, it might not be so helpful for you to do so...
dartdog says:
Funny you should diss Django probably the one framework that may scale better than Ruby and has Google supporting it on App-engine as well. Of all the frameworks probably the easiest to maintain and scale. And did we all mention Python Based?
skyl says:
"I would argue though that it is faster, simpler and cheaper to scale Ruby apps then it would be for the same apps written in PHP"
"Its not terrible, and its much better then Java for getting a job done quickly."
"Ruby developers are harder to find and cost more then PHP developers but the choices tend to scale better and are easier to maintain."
THAN moron, not then. I had to join this pathetic site just to point that out. And, of course, the whole article is hogwash. And, of course, Django is Python.
skyl says:
Sorry for the outburst. That is just my pet-peeve when programmers mix up then and than. Also, the bit about Django threw fuel on the fire. I realize now that the article is just a joke and the joke is on me for not realizing it, my sincere apologies.
Sean Schofield says:
OK folks, settle down. This post was written late in the day and I accidentally included Django when trying to rattle off the various PHP frameworks (as has already been pointed out numerous times). I've worked with several people who have used Django and I'm aware that it's written in Python. I'm not going to comment on Python or Pearl as I have not used either in a project.
The main point of the article was really to say that the person writing your application is much more important than the technology. For instance, would you be interested in hiring someone who registers on a website just to call someone else a moron? I would argue that whatever technology that person uses, you would probably do better to hire someone with a little less attitude.
Sean Schofield says:
@dartdog: This is not really a survey of OS commerce frameworks, nor am I dissing Django. I do have some issues with PHP but I was also careful to point out what I like about PHP.
@realmac: This is not about research. Its an opinion piece based on personal experience. I expect that people may disagree or have different experiences.
@jeffs: Python is a great language from what little experience I have with it.
@everyone: Pay attention to my conclusion. "The real key to a successful project is to hire the right developers. There are great developers using all of the available technologies so there is no correct choice when it comes to picking one."
Sean Schofield says:
Right. Again, spelling not a strong suit of mine. Good thing I don't claim to be a "Pearl" expert. :-)
rleighton says:
Tough crowd. Yikes!
I liked your article a lot. You bring out a very important but seldom mentioned point: the developer is key to the success of a project. Being a developer, I couldn't agree more. I've been privileged to work with a lot of wonderful developers who were creative, efficient and professional problem solvers. I also worked with a few people who were at the other end of the spectrum. The particular technology being used didn't matter. People are either good developers or they aren't. Thanks for a nice article.
Web_Man says:
PHP is a great language to program in. I have just started to learn it and understand how to read it thanks to prior C++ experience.
There is a lot of options with programming, and so far PHP has done wonders over HTML. The stuff we have in the open source community and CMS, is that PHP has been a God send!
researchstan says:
I think your follow-up blog comment that "if you called my company and said "I am thinking of spending between $15,000 - $30,000", we would politely tell you that we do not take on projects this small." does not match the audience needs. We (i.e. "I") am evaluating something that is not "free" but can be utilized by organizations that do not that initial financial resource. More specifically addressing "brand" names -- Zen Cart, OScommerce, Interchange, etc. as to evaluating them as to implementation by the entrepreneur and NOT the corporation.

Connect with us