views:

2381

answers:

3

Hi all,

I was wondering what you guys think about these two frameworks.

I'm going to build a turn-key solution for a vertical market and would like to offer both options: software as a service and give them the opportunity to host the app on their own. In other words I'd aim at having similar deployment options as Joel's FogBugz.

I'm a Python programmer and I could fly over the project with Django but there's several reasons I prefer PHP:

1) Django installation and configuration assumes you have access to a shell (my target is NOT the programmer type), although I could offer installation service, but NOT on their servers.

2) Django runs only on some specific hosts that take must take special care to enable it, installing mod_python/mod_wsgi and most likely the minority of my potential clients would have root access or even a cpanel.

3) Using PHP would mean I could run it on their existing server: this means no need to move them to a Django-enabled server, and no downtime for their emails, while DNS updates.

On the other hand I have very little experience with PHP. Smarty as a templating language looks nice and works similarly to Django templates, but doesn't offer template inheritance, except in a very hackish way, that I wish not to use, cause could break the app if the designer mess them up.

What do you guys think?

Thanks

+2  A: 

Deployment is clearly a problem for all non-PHP based web apps, but I think things are getting better with the DreamHost/Engineyard type ISP's who provide Ruby/Python etc. out of the box. It also looks like there's going to be a lot of discussion at PyCon this week about ways to fix deployment problems. The growth in popularity of Django, Turbogears, and Pylons is driving demand for better deployment solutions.

That said, if your target market are people hosting on the very low end $12 a year type ISP's then I don't think you have much choice other than PHP.

Finally, one thing I disagree with you is running PHP and Django on the same server. I'm running a few PHP apps on my server with Apache and dozens of Django sites with mod_wsgi in daemon mode. Running it that way means the Python interpreter doesn't use up ram in the Apache workers and vice versa, the PHP interpreter isn't contaminating my mod_wsgi daemons :)

Van Gale
Yes I could run them also side-by-side, on webfaction for instance, but that's not the kind of hosting provider my customer would have.
L. De Leo
+1 with a note: It's unfortunate that you wish to offer not only SaaS, but to limit your final product with the "self-installs" being possibly hampered. As Van Gale mentioned, if your target market is the type to *not want* a SaaS app, but to also have such a hard time getting it installed locally (assuming Django), you may be forced to spend the time on PHP. But in the end, will you have a large enough customer base to pay for the additional time you invested? What's the ROI on that going to look like, considering you said how easy it would be for you to make it happen in Django?
anonymous coward
+1  A: 

If you want your application to be mainstream then your almost forced to go with PHP. Going from Django to PHP is alot easier than going from PHP to Django. You know the standards, you just need to learn the PHP syntax and functions.

I would definitely use a PHP framework. Symfony and akelos are very similar to Rails (close to Django). On the other than theres Code Igniter which does what it should - organise your code.

A: 

Based on your own conclusions, I would go with CodeIgniter. It seems like there would be a ton of work helping your customers install your web app, and I assume you don't want that.

Build a simple-to-install web app so that you can concentrate your efforts on making it better and selling it, instead of working extra as a sysadmin or writing extensive installation tutorials.

(With that said, FogBugz wasn't easy to install on our Linux server, even though it is written in PHP. It took me and my colleague (both programmers!) more than a full work day to install. So I think there will always be problems with installation of self-hosted web apps.)

Christian Davén