Question

Je sais que je vais en obtenir mille "Cela dépend de ce que vous essayez de faire" réponses, mais sérieusement, il n’ya pas encore d’informations solides à ce sujet en ligne. Voici mes hypothèses - je pense qu'elles sont similaires pour beaucoup de gens en ce moment:

  1. Nous sommes maintenant en octobre 2008. Je veux commencer à écrire une application pour janvier 2009. Je suis prêt à utiliser du code bêta, etc., mais d'ici janvier, j'aimerais un site qui n'a pas de problèmes "étranges". Cela dit, si un langage est tout simplement 10% plus lent qu'un autre, cela ne me dérange pas tant que le problème est linéaire. Ma principale préoccupation est la productivité des développeurs.
  2. Je vais utiliser Linux, Apache, MySQL pour l'application.
  3. Je veux pouvoir exécuter des tâches telles que l'exécution de scp et des fonctions du client ftp avec des bibliothèques stables (je n'ai choisi ces deux solutions que parce qu'elles ne sont pas liées au Web mais représentent en même temps des protocoles réseau assez communs qu'une application plus grosse pourrait utiliser ). Des technologies comme OpenID et Oauth seront également utilisées.
  4. Les développeurs Web expérimentés sont facilement disponibles (c’est-à-dire que je ne suis pas obligé de trouver des personnes issues de sociétés financières, etc.).
  5. Quel que soit le choix, il est courant et le restera un moment.
  6. Voici un kicker. J'aimerais pouvoir utiliser des outils / langages de couche de présentation avancés similaires à HAML, SASS. Je souhaite définitivement utiliser JQuery.
  7. Je vais créer une application Facebook et, à un moment donné, gérer des messages SMS, des applications iPhone, etc.

À ce stade, les choix de langue sont PHP (Cake, Symfony, Zend), Python (Django), Ruby (Merb). Je suis vraiment entre Django et Merb à ce stade surtout parce que tout le monde semble aller dans cette direction.

S'il vous plaît, ne mettez aucune technologie ici qui ne soit pas faite pour le grand public. Je sais que Merb n’a pas été testé pour l’essentiel, mais leur objectif déclaré est une plate-forme solide qui a beaucoup d’élan derrière, je suis donc confiant que cela fonctionnera. Ne répondez pas à quel point Perl ou .Net sont formidables.

Pour les références futures - ces choix ont déjà été faits:

  • Debian (Lenny) - Pour convertir les cycles de la CPU en quelque chose d’utile. Trac
  • 0.11 - Pour la gestion de projet Gliffy - Pour les structures filaires et autres
  • Google Docs / Apps: pour la documentation, la messagerie hébergée, etc.
  • Amazon ec2 / S3 - Pour l'hébergement, le stockage.

Salut, Adam

Était-ce utile?

La solution

ça dépend.

php - symfony est un excellent framework. inconvénients: php, wordy et répertoire lourd. propulser devient agaçant à utiliser. upsides: php est partout et le travail est bon marché. cadre bien fait et bon soutien. beaucoup de plugins pour vous rendre la vie plus facile

python - django est également un excellent cadre. Inconvénients: les programmeurs python peuvent être plus difficiles à trouver, django encore plus. Changer votre schéma de base de données peut être un peu difficile car il n'y a pas de migration officielle. ne fait pas tout à fait MVC comme vous vous en doutez. upsides: fait tout ce dont vous avez besoin et a la grande bibliothèque et la communauté python std derrière elle.

ruby ??- Je n'ai jamais utilisé Merb, je vais donc aborder les rails. points positifs: il existe un plugin, une gemme ou une recette pour presque tout ce que vous pourriez vouloir faire. facile à utiliser. inconvénients: ces plugins, gemmes et recettes échouent parfois de manière mystérieuse. la réparation de singe est souvent mauvaise. la communauté est .. vocale. d’opinion, et parfois ces opinions sont fausses ( manque de clés étrangères ). rails lui-même ressemble à une tour de cartes en attente d'exploser et prendre des heures de votre vie loin.

Cela dit, je suis un développeur freelance pour php / symfony et ruby ??/ rails. J'ai travaillé sur plusieurs projets dans les deux langages et les cadres. Mon dernier projet est dans Rails uniquement à cause de ActiveMerchant. Je cherchais une raison de développer une application Django depuis un moment. S'il y avait une bibliothèque comme ActiveMerchant pour django, je l'aurais probablement utilisée.

Autres conseils

Django!

Recherchez les discussions sur DjangoCon sur Google / Youtube - en particulier "Applications réutilisables". (www.youtube.com/watch?v=A-S0tqpPga4)

J'utilise Django depuis quelque temps, après avoir débuté avec Ruby / Rails. J'ai trouvé la communauté Django plus facile à intégrer (plus agréable), le langage documenté avec d’excellents exemples, et sa modularité est impressionnante, surtout si vous souhaitez ajouter des composants personnalisés à votre mix forcé d'utiliser certaines choses ici et là.

Je suis sûr qu'il y a probablement moyen de rester aussi souple avec Rails, mais je vous encourage vivement à jeter un long regard sur les introductions sur Django, etc., sur http://www.djangoproject.com/

Eugene a indiqué qu'il se situait maintenant à 1,0 - et qu'il restera donc une base de code stable et rétrocompatible jusqu'en janvier 2009.

De plus, les interfaces d’administration automatiques qu’il crée sont prêtes pour la production et extrêmement flexibles.

Désolé, votre question est fausse. Les gens vont probablement me voter pour celui-ci mais je tiens à le dire quand même:

Je ne m'attendrais pas à une réponse objective! Pourquoi? C'est simple:

  • Tous les partisans de Ruby diront d’utiliser Ruby.
  • Tous les avocats de Python diront d’utiliser Python.
  • Tous les partisans de PHP diront d’utiliser PHP.
  • Insérez d'autres langues ici.

Vous avez eu l'idée?

Je vous recommande d'essayer chacune des langues que vous avez mentionnées. Au moins quelques jours chacun. Ensuite, vous devriez avoir une bien meilleure base pour prendre votre décision finale.

Cela dit, je choisirais Ruby (parce que je suis un avocat de Ruby).

Tous feront le travail.

Utilisez celui que vous et votre équipe connaissez le mieux

Cela aura un impact beaucoup plus important sur les délais de livraison et la stabilité de votre application que toutes les autres variables.

J'irais avec Django si vous êtes à l'aise avec une solution Python. Il est maintenant à la version 1.0, et mûrit bien, avec une base d'utilisateurs importante et de nombreux contributeurs. L’intégration de jQuery n’est pas un problème et je l’ai fait sans problème.

Pour autant que je sache, Ruby est beaucoup plus populaire aujourd'hui pour le développement Web. Il est donc plus facile de trouver des développeurs Ruby. J'ai eu cette impression en parcourant les dernières offres d'emploi. Il n'y en a pas beaucoup pour Python ou Django. Je ne connais pas grand chose à Merb, je ne peux donc pas donner une comparaison juste.

J'ai fait assez de PHP pour ne pas recommander de démarrer un nouveau projet avec.

Sur la base de vos raisons, j'irais avec Ruby. Je vois que vous voulez des outils d’administration (scp, client ftp) et que Ruby en a (bibliothèques net / sftp et net / ftp).

En outre, il existe d’excellents joyaux comme Dieu pour surveiller votre système, Vlad le Déployer pour son déploiement, etc. Et de nombreuses alternatives dans le champ de Merb: utilisez ce que vous trouvez meilleur pour vos besoins (Thin, Mongrel, ebb, etc).

Pour avoir une idée de l'état actuel de l'écosystème de Django, vous pouvez consulter

.

Je dois commencer par accepter mon accord avec Orion Edwards, choisir celui avec lequel votre équipe est le plus familier.

Cependant, je dois aussi noter le manque curieux de langages ASP.NET dans votre liste. Ne pas provoquer la grande armée zélée, mais où est le boeuf? .NET est une plate-forme de développement rapide et stable et le bassin de main-d'œuvre augmente chaque jour. VB.NET et C # sont des ensembles de compétences transférables. Cela peut être très utile lorsque vous construisez une équipe de développeurs pour travailler sur un ensemble diversifié de tâches. .NET vous permet également de séparer votre couche de présentation de votre code de base, comme d’autres langues, mais vous permet également d’exposer ce code de base en tant que service Web, par exemple pour vos applications iPhone et Facebook.

Prenez toutes les suggestions avec un grain de sel et choisissez ce qui convient le mieux à l’application. Faites vos recherches et concevez pour la fonction et non pour les fanatiques.

Avertissement: Une fois développeur PHP, ColdFusion et Perl. Flex zélote et amoureux d'Adobe. J'écris maintenant des applications .NET d'entreprise. ;)

N'oubliez pas Mono, qui vous permettra d'exécuter .NET sous * nix. Non pas que je dise que ce sera parfait, je me contenterais de défendre l'avocat du diable.

Ne restez pas coincé dans l’état d’esprit de la mise en page côté serveur. Pensez à des technologies telles que SproutCore, GWT ou ExtJS, qui mettent le code de mise en forme entièrement sur le client, ce qui rend le serveur uniquement responsable du traitement et du traitement des données (et le remplacement facile).

Et vous avez réellement besoin de savoir quelle plate-forme de serveur vous souhaitez. Ne pas en choisir un parce que c'est la saveur du mois, choisissez-en un parce que vous êtes à l'aise avec cela. Les saveurs ne durent pas, une base de code solidement construite sera.

Ayant construit des applications dans Django, je peux attester de son utilité. Si seulement tous les cadres étaient aussi élégants (oui le printemps, je vous regarde).

Cependant, pour ce qui est de parier la ferme sur Django, vous devez prendre en compte le fait que Python 3 sera bientôt disponible. Python 3 n’est pas compatible avec les versions antérieures et il risque donc de modifier le langage et de ralentir l’élan de tous les projets Python pendant qu’ils gèrent les retombées. Pour être honnête, Ruby 2.0 devrait bientôt arriver aussi, mais je ne pense pas que ce sera aussi perturbant.

Mon expérience des différentes technologies au cours des dix dernières années me conduit à vous recommander de faire de la stabilité de la plate-forme un critère sérieux. C'est très bien de développer avec le dernier et le meilleur des frameworks, mais quand vous trouvez que ça avance d'une version ponctuelle et que soudainement, la façon dont vous avez tout fait est déconseillée, cela peut s'avérer un travail supplémentaire inutile. C’était particulièrement mon expérience avec des rails un peu en avance sur la version 1. Pour cette seule raison, j’éviterais toute plate-forme qui n’était pas au moins à 1.0 lorsque vous commencez à travailler dessus.

Ruby est un plaisir de travailler avec et maintiendra la productivité de vos développeurs à un niveau élevé, mais si Django est la plate-forme la plus stable, je suis tout à fait en faveur de cela.

Il est bon de ne pas faire de compromis sur la configuration de votre serveur. Tout framework web moderne digne de ce nom en code source possède une couche d'abstraction SQL. Les performances de PostgreSQL sont bien meilleures, et elles proviennent d’un ancien partisan de MySQL.

Apache est une bête, à la fois pour configurer et sur les ressources de votre serveur. Pourquoi ne pas utiliser quelque chose de léger, comme nginx ou lighttpd ?

(Pour rappel, je suis un gros utilisateur de Django, mais comme l’a dit la réponse acceptée, allez avec ce que votre équipe sait. Les retournements rapides ne sont pas le temps d’apprendre de nouveaux frameworks. équipe à partir de zéro, allez avec Django.)

Mise à jour: J'ai fini par utiliser et aimer Django. Je suis totalement fini avec PHP - désolé pour ça. Les futurs lecteurs qui tentent de créer un nouveau site Web 2.0 (en supposant qu’ils possèdent un arrière-plan de programmation) devraient fortement envisager cette configuration:

Amazon ec2 pour l'hébergement (80 $ / mois - pas cher, mais ça vaut le coup si vous pouvez vous le permettre) Django / Python (Python est le langage de script le plus puissant de la planète - et Django le rend tout simplement opérationnel sur le Web)

Le développement devrait être fait avec SQLlite et le serveur de développement fourni avec Django. Ne perdez pas de temps avec Nginx, Apache, MySQL jusqu'à ce que vous ayez quelques semaines de bêta.

Oh, et maintenant je développe sur un Mac, ce qui fonctionne très bien pour le développement local de Django.

Enfin, Pinax constitue un bon début pour Développement Django .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top