On réalise des sites dynamiques en programmant… Avec un langage de programmation donc.
Si, théoriquement, on peut faire des services internet avec n’importe quel langage, en réalité, il existe pas tant que ça de solutions :
- C# dans .Net : proposé par Microsoft, c’est un très bon langage, avec un environnement de développement pil poil. C’est du propre : compilé, typé… Le problème est que quand on met un doigt là dedans, on en sort « full microsoft » avant d’avoir compris ce qui se passait… Et la facture licence peut faire peur…
- Java : Solution normalement aussi propre que C#, avec l’avantage d’avoir des outils gratuits… Bon, la réalité est que, bien souvent, les architectures Java sont un peu lourdes, un peu verbeuses… On a rapidement des « délires UML » cher à développer et à maintenir.
- PHP : LA solution Web par excellence. Langage simple à prendre en main, bien adapté à la production de pages dynamiques. Tout est fait pour faciliter l’écriture de petits programmes… Mais le contexte à bien changé depuis les débuts du langages. Ce langage est en fait utilisé par un nombre incroyablement grand de sites web (30 % ?), et PHP motorise donc des petits sites, mais également quelques monstres (comme Flickr !). Le fait que la plupart des hébergeurs proposent des solutions PHP clés en main accélère la diffusion de ce langage.
- Autres langages interprétés (Python, Perl, Ruby…) : il existe pas mal d’autres langages, orientés Web. Ruby est par exemple une solution assez puissante pour produire des sites avec peu de ligne de code (ce qui est un critère de qualité : moins de ligne, mois de bug 😉 ).
- C et C++ : Ce sont des langages bien solides, qui permettent de faire des applications excessivement rapides… Mais finalement, aujourd’hui, peu de monde utilise ces langages pour développer des sites web… Bon, quand même : les éléments clés des algos de Google sont développés en C…
Le PHP joue donc un rôle clé dans le développement du Web aujourd’hui.
Sa flexibilité, la taille de la communauté, la gratuite, … Beaucoup de facteurs ont poussé son développement, et aujourd’hui, la communauté PHP est juste phénoménale.
Mais aujourd’hui, je trouve la situation un peu paradoxale :
Qu’un site qui se lance parte sur PHP, je comprends : coût de développement réduit, pas de frais de licences, …
Mais ces contraintes changent complètement quand un site est plus important. Pour un gros site, la qualité devient un élément fondamental. Il faut donc être certain que le programme va bien produire le résultat attendu. Et pour ça, rien ne vaut un langage compilé, avec un typage stricte.
La solution actuelle consiste à rajouter des couches sur PHP, avec Zend Framework, …
Mais je pense, surtout après ma discussion avec Zeev, que l’avenir passera à moyen terme par l’émergence d’un nouveau langage.
Le cahier des charges est, à mon avis :
- Langage compilé et typé ;
- Langage orienté Web : disposer de syntaxes très simple pour produire des pages HTML ;
- Peut être intégrer dans le langage une solution native pour gérer les sessions (et arrêter de charger la base de données avec des infos qui n’ont rien à y faire) ;
- Langage objet bien sûr, pour faire de beaux modèles 😉 ;
- Langage open source et gratuit, parce que c’est la clé de la diffusion sur Internet, et, comme PHP, parfaitement intégré à Apache.
La barrière à l’entrée est assez élevé, parce qu’il y a pas mal de choses sur le marché…
NB : ce billet est un billet de « projection ». A court terme, on peut très bien développer de bons services avec les outils actuels. On remplace les insuffisances de tels ou tels langage par de la méthode et des outils !