8 votes

Django ou CodeIgniter pour une application Web clé en main

Je vais construire une solution clé en main pour un marché vertical, et je voudrais offrir les deux options : logiciel en tant que service, et leur donner la possibilité d'héberger l'application sur leur propre site. En d'autres termes, je souhaite proposer des options de déploiement similaires à celles de FogBugz de Joel.

Je suis un programmeur Python, et je pourrais survoler le projet avec Django. Il y a cependant plusieurs raisons pour lesquelles je préfère PHP :

1) L'installation et la configuration de Django supposent que vous ayez accès à un shell (ma cible n'est pas le type de programmeur). Je pourrais toutefois proposer un service d'installation, mais pas sur leurs serveurs.

2) Django ne fonctionne que sur certains hôtes spécifiques qui doivent prendre un soin particulier à l'activer. Installer mod_python/mod_wsgi, et très probablement la minorité de mes clients potentiels auraient un accès Root, ou même un cpanel.

3) L'utilisation de PHP me permettrait de l'exécuter sur leur serveur existant. Je n'aurais pas besoin de les déplacer vers un serveur compatible avec Django, et pas de temps d'arrêt pour leurs emails, pendant les mises à jour des DNS.

D'autre part, j'ai très peu d'expérience avec PHP. Smarty, en tant que langage de modélisation, est intéressant et fonctionne de manière similaire aux modèles de Django. Il n'offre cependant pas d'héritage de modèles, sauf d'une manière très bricolée que je ne souhaite pas utiliser car cela pourrait casser l'application si le concepteur s'y perd. Qu'en pensez-vous ? Merci d'avance !

4voto

Van Gale Points 21982

Le déploiement est clairement un problème pour toutes les applications web non basées sur PHP, mais je pense que les choses s'améliorent avec les FAI de type DreamHost/Engineyard qui fournissent Ruby/Python, etc. dès le départ. Il semble également qu'il y aura beaucoup de discussions à la PyCon cette semaine sur les moyens de résoudre les problèmes de déploiement. La popularité croissante de Django, Turbogears et Pylons entraîne une demande de meilleures solutions de déploiement.

Cela dit, si votre marché cible est constitué de personnes hébergées par des fournisseurs d'accès Internet à bas prix (12 $ par an), je ne pense pas que vous ayez d'autre choix que PHP.

Enfin, je ne suis pas d'accord avec vous sur le fait d'exécuter PHP et Django sur le même serveur. Je fais tourner quelques applications PHP sur mon serveur avec Apache et des dizaines de sites Django avec mod_wsgi en mode démon. En procédant ainsi, l'interpréteur Python n'utilise pas la mémoire vive des workers d'Apache et vice versa, l'interpréteur PHP ne contamine pas mes démons mod_wsgi :)

3voto

Lie Ryan Points 4241

Si vous voulez que votre application soit grand public, vous êtes presque obligé d'utiliser PHP. Passer de Django à PHP est beaucoup plus facile que passer de PHP à Django. Vous connaissez les normes, il vous suffit d'apprendre la syntaxe et les fonctions de PHP.

J'utiliserais certainement un framework PHP. Symfony et akelos sont très similaires à Rails (proche de Django). D'autre part, il y a Code Igniter qui fait ce qu'il doit faire : organiser votre code.

2voto

Christian Davén Points 4527

En fonction de vos propres conclusions, j'opterais pour CodeIgniter. Il semble qu'il y aurait une tonne de travail pour aider vos clients à installer votre application web, et je suppose que vous ne voulez pas cela.

Créez une application web simple à installer afin de pouvoir concentrer vos efforts sur son amélioration et sa vente, au lieu de faire des heures supplémentaires en tant qu'administrateur système ou de rédiger des didacticiels d'installation détaillés.

(Cela dit, FogBugz n'a pas été facile à installer sur notre serveur Linux, même s'il est écrit en PHP. Il nous a fallu, à moi et à mon collègue (tous deux programmeurs !), plus d'une journée de travail complète pour l'installer. Je pense donc qu'il y aura toujours des problèmes d'installation des applications web auto-hébergées).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X