Comment bien choisir un langage web dynamique?
Publié le 2 April 2007, par Babozor dans la catégorie Développement, OutilsC’est une question qui revient périodiquement: comment bien choisir un langage web dynamique, quels sont les avantages, les inconvénients, les contraintes, etc…
Les langages web dynamiques (pour faire court) vous permettent via une base de donnée, un flux XML ou un fichier texte de dynamiser vos pages web, d’adapter le contenu au client; où de servir des articles (présents par exemple en base de donnée), sans avoir à physiquement construire ces pages en HTML (une page générique vous permet d’avoir accès à tous vos articles, par exemple).
- ASP: c’est le module de dynamisation de page fournit pas Microsoft en complément d’IIS (le serveur web Microsoft) depuis 1996, ASP est un langage interprété (donc non compilé), avec des fonctionnalités objets déjà implémentées (connexion base de donnée, etc…).
Avantages: langage interprété, mise en place simple (si on dispose d’un serveur IIS)
Inconvénients: le langage a été plus ou moins abandonné par microsoft au profit de .Net (son successeur)
- .Net (ou ASP.Net): Environnement de développement Microsoft qui permet un déploiement d’applications web à partir du framework .Net (qui couvre aussi d’autres sujets, pas seulement le web), c’est le successeur de l’ASP traditionnel (VBScript interprété)
Avantages: dispose d’un environnement de développement complet, avec beaucoup d’objets disponibles pour des utilisation divers (connexion base de données, envoi de mail, etc…)
Inconvénients: c’est un langage pré-compilé et l’environnement de développement et de production est un peu lourd à mettre en place.
- PHP: langage interprété OpenSource et gratuit, créé par Rasmus Lerdorf, il permet un développement agile sous plateforme Linux, dispose depuis sa version 5 d’une programmation orientée objet.
Avantages: simple à mettre en place, agile, interprété, beaucoup de sources disponible, une communauté de développeurs gigantesque et très active
Inconvénients: n’a pas les même contraintes que .Net et cela peut générer un code peu maintenable (voir complètement bordélique)
- RubyOnRails: Framework OpenSource MVC Ruby (langage OrientéObjet inteprété), très facile d’accès par sa philosophie axé utilisateur plus que programmateur
Avantages: un accès facile, une philosophie simpliste, intuitive… convient parfaitement aux développeurs débutants
Inconvénients: peu intégré en plateforme de production, une installation un peu barbare, le développement de fonctions avancées est beaucoup plus difficile qu’on ne pourrait l’imaginer (le coût d’entrée est faible, mais ensuite l’apprentissage peut s’avérer un peu rude)
Il existe évidemment d’autres technologies pour générer des pages web: JSP, J2E, Python, Perl, etc… et ce court article ne pas tous les couvrir.
Nous allons donc nous concentrer sur trois d’entre elles:
- .Net
Cette technologie est relativement lourde à mettre en place et est conseillée pour les sites corporate qui veulent farouchement le tampon Microsoft sur leur site ou garantir une infrastructure sans défaut (encore que ce point peut se discuter). Elle est particulièrment indiquée pour un développement lourd, avec des grosses équipes de développement.
Il existe énormément de module pré-construits disponibles à l’achat (type CommunityServer, etc…) pour simplifier le développement.
- PHP
C’est la technologie dynamique agile par excellence (bon je prèche un peu pour ma paroisse aussi… méa culpa), elle convient aussi bien à des projets lourds et coimplexes (avec éventuellement l’ajout d’un framework MVC ou un framework complet type Zend) qu’un petit site web au développement et déploiement rapide.
Une gigantesque communauté de développeurs et une quantité impressionnante de code OpenSource permettent de gagner beaucoup de temps.
- ROR
Technologie émergeante (date de 2005 pour la première version stable) mais qui donne une autre dimension au développement en adoptant une philosophie tournée vers l’utilisateur (ce qui n’est pas en général le cas pour les autres fait pour des développeurs hardcore)
Indiqué si vous possédez un des rares GuruRoR et quelques intégrateurs motivés
Très souvent, quand vient le temps de choisir une technologie dynamique, on prend le “chemin inverse”, c’est à dire on essaye de faire rentrer les fonctionnalités dans la technologie qu’on a déjà choisie. Par exemple développer un mini site de 5 pages avec deux formulaires en .Net est une hérésie, beaucoup de temps passé rien qu’à configurer l’environnement de travail, alors que PHP ou RoR peut le faire deux fois plus vite… Idem vouloir refaire phpBB ou OSCommerce ne sert à rien… autant le reprendre et l’améliorer.
SI vous voulez gagnez du temps dans vos futurs développements, prenez un peu le temps de la réflexion, regardez quelle est la technologie la plus à même de répondre à vos besoin (au lieu de se jeter tête baissée…), regardez aussi si des projets OpenSource sérieux existent, cela peut vous faire gagnez beaucoup de temps… et vous permettre de vous concentrer sur les points vraiment importants (mais ça on y reviendra dans un autre article).
Et vous c’est quoi votre techno dynamique de prédilection et surtout pourquoi?


le 3 April 2007 à 06h45
On ne peut pas parler de techno dynamique de prédilection :
- j’ai beaucoup travaillé en PHP avant d’avoir conscience de l’importance d’un framework, maintenant que je ne jure que par les frameworks pour les projets de moyenne et grande ampleur, je suis orienté vers RoR pour ces projets car il y a un “malaise” dans les frameworks PHP (trop grand nombre, pas assez de documentation – en clair les forces sont dispersées et Zend ne me convaint pas trop avec Zend Framework pour le moment). Je garde donc PHP pour les petits projets ou les pages dynamiques au coup par coup.
- Ruby On Rails pour les projets “database driven” de moyenne et grande ampleur. Productivité garantie et résultat “mieux fini” qu’avec un développement hand made en PHP. Avantage à la structure en couche (MVC) pour la clarté et la maintenabilité du code.
- Asp.Net, je viens de me lancer afin surtout de voir les avantages/inconvénients vis à vis de RoR. Je n’ai donc pas encore d’avis.
le 3 April 2007 à 07h39
@kilgore : Concernant PHP et les Framework, as tu essayé http://codeigniter.com/ ?
Je le trouve tout a fait excellent, et il permet de faire du MVC avec PHP.
Sinon moi je ne jure que par le PHP, n’ayant jamais essayé RoR et n’ayant pas envie de jouer avec .Net pour le moment.
le 3 April 2007 à 08h39
Bon, il va encore falloir que je joue le role du papy du web. Et bien d’mon temps, on faisait tout avec Perl. Cela marchait tres bien, et mon petit CMS perso est encore ecrit dans ce langage…
Mais il est vrai que tout cela date d’il y a deja bien 12 ans …:-)
le 3 April 2007 à 08h42
Je suis de l’avis de kilgore pour PHP et RoR. J’ai fait pendant de très nombreuses années du PHP, mais maintenant que j’ai découvert les frameworks, je ne pourrais plus m’en passer. Si je devais revenir au PHP (je fais quasi-exclusivement que du RoR), je prendrais un framework (CodeIgniter ou Symfony). Mais je préfère rester avec RoR parce que le Ruby c’est super
Ca fait près d’un an que je fais de l’ASP.NET et même si je suis pas super emballé par la techno, ça a de gros avantages quand même. Pour créer une application web moyenne, je dirais que le plus rapide c’est RoR, puis ASP.NET et enfin PHP (sans framework). Bien sûr il y a beaucoup d’autres solutions, mais là il faudrait des jours pour tout détailler ^^
le 3 April 2007 à 09h42
@Damien ALEXANDRE : CodeIgniter fait du MVC mais je peux te lister au moins encore 10 autres framework PHP qui font du MVC donc lequel choisir ? Pourquoi celui-ci et pas Symfony ? CakePHP ? Dans tous les cas ils me semblent que les framework PHP tentent de “copier” le concept de RoR mais PHP n’est pas aussi souple et adapté que Ruby pour ce genre de chose…
le 3 April 2007 à 13h01
@Damien ALEXANDRE : je viens de me relire et mon post était peut être agressif, ce n’est pas le cas du tout le but hein ! Je tiens juste à souligner encore une fois le problème du choix d’un framework en PHP
le 3 April 2007 à 13h29
Je dois avouer que j’ai été assez séduit par l’approche de RoR, j’ai mis un peu les mains dedans, mais pas assez pour mettre quelque chose en production.
Pour le PHP, ça reste ma technologie de prédilection et là j’ai deux approches:
- qqchose à mettre vite fait en production: j’utilise un framework ou un projet OpenSource existant pour profiter du développement et ne pas réinventer la roue.
- projet perso: je code tout ou presque parceque j’aime bien mettre la main dans la crotte, tester des nouvelles choses que je ne connais pas, etc…
Mais j’aodre cette techno, facile d’approche, agile, mais qui peut se révéler super cradoc si elle est mal utilisée…
Je ne suis pas réfractaire au .Net, mais je ne peux pas me spécialiser dans 25 technos (déjà avec PHP,MySQL, Ajax et CSS c’est amplement suffisant pour m’occuper mes journées et mes nuits)
le 3 April 2007 à 13h31
@kilgore & Damien: je trouve cela une très bonne chose que certains framework PHP “piquent” l’approche de RoR, super pratique et permettant de réaliser un code propre et compréhensible… de toute façon en informatique et plus précisément dans le web tout le monde se pique un peu tout et n’importe quoi…
Ensuite c’est plus une question de paroisse et de clocher et de guéguère pour savoir qui à inventer quoi, etc…
le 3 April 2007 à 20h50
Je suis aussi un grand fan des frameworks PHP. J’ai essayé CakePHP, Symphony… mais il n’y a rien qui bat Code Igniter. Ce truc c’est super puissant, super simple à mettre en place, et un plaisir à utiliser.
J’étais pas très emballé par le .Net, mais c’était surtout parce que je n’y connaissais pas grand chose. Comme pour tout, il “suffit” d’utiliser l’outil le plus adapté…
Et puis Python fait de plus en plus de bruit dans la communauté des développeurs (note, Youtube est écrit en Python par exemple), et pour y avoir jeté un coup d’oeil, je comprends l’enthousiasme général…
On ne va quand même pas se plaindre d’avoir le choix
le 5 April 2007 à 16h27
Je ne peux que te conseiller de jeter un oeil sur Grails (grails.codehaus.org). C’est un framework “on rails” qui utilise le langage groovy. Groovy tourne dans une JVM. C’est vraiment très récent et prometteur car ça reste dans le monde java. Maintenant je ne crois pas que c’est une solution pour le grand public car l’hébergement reste limité…
Sinon cakePHP m’intéresse mais je n’ai pas encore eu le temps de l’essayer.
le 13 March 2008 à 19h24
Pour ma part, qui débute en programmation, j’apprends Php tant bien que mal. Cet article m’a beaucoup intéressé car je ne savais pas vraiment, à part au niveau de la syntaxe, quelle était la réelle différence entre tous ces langages destinés au développement web. Maintenant j’y vois plus clair, merci!