Ce jour, en lisant mes flux RSS, je suis tombé sur un article indiquant que Mac OS X Lion abandonnait MySQL pour PostGreSQL.
Pour information, je n’ai toujours pas migré de Snow Leopard vers Lion, car j’attends les 1er retours avant de me jeter sur la mise à jour.
Mais revenons au sujet : le remplacement de MySQL par PostGreSQL.
Pour ma part, cela fait longtemps que MySQL n’est plus mon SGBD préféré, et je dirais même que j’ai pas mal de choses à lui reprocher, dont la source est toujours la même : sous couvert de simplicité d’utilisation, il ne respecte pas la norme SQL ANSI-92.
- Possibilité d’utiliser des mots-clés réservés pour les tables, colonnes, … en utilisant le « ` »
- Création automatique d’index
- Intégration des dates plus que limitée (tout est converti en timestamp à votre insu)
- tant encore
Je sais bien que vous pourrez me répondre « mais si c’est plus simple à utiliser, où est le mal ? ». Et j’aurais du mal à vous contredire sur ce point.
Mais le soucis est ailleurs, au niveau de la maîtrise.
Non seulement, les milliers (millions ?) de développeurs ayant découvert le SQL avec MySQL apprennent de très mauvaises habitudes, mais les défendent alors même qu’elles sont contraires aux standards.
Le plus marrant, selon moi, est que ce sont ces mêmes personnes qui défendent Mozilla parce que « c’est libre, respectueux des standards, alors que Internet Explorer, non » qui utilisent MySQL (preuve selon moi de l’immense majorité de personnes qui ont adoptés Firefox pour être « hype » et pas par conviction).
Bref, pour en revenir à nouveau au sujet de base, j’utilise PostGreSQL depuis plusieurs années, et j’en pense le plus grand bien : non seulement il est ouvert, en pleine force de l’âge, équipé pour supporter les très gros volumes, permettant l’utilisation de techniques SQL avancées, mais également utilisable rapidement pour des sites à petits volumes, avec des bases de données simples.
Donc, en conclusion, je trouve que cette migration est une très bonne nouvelle pour PostGreSQL, pour augmenter sa visibilité au développeurs amateurs, qui apprennent sur les outils démocratiques.
Et, qui sais, un jour nous aurons une majorité de LAPP (Linux-Apache-PostGreSQL-PHP) au détriment du traditionnel LAMP (Linux-Apache-MySQL-PHP)
Ce qui serait intéressant, ce serait de connaitre la réelle motivation de la direction de chez Apple sur ce choix. Qu’il soit bon ou non m’importe en réalité assez peu, je suis assez enclin à penser qu’il y a chez eux des gens qualifiés pour justifier par des raisons techniques valables ce changement de cap. Mais le commentaire de kangaroos laissé sur l’article mentionné envisage un problème de gros sous à moyen/long terme pour Apple, ce qui rendrait finalement ce changement à prendre avec des pincettes parce que ça n’aurait plus rien d’un choix technique. Il serait également intéressant de connaitre les avis des utilisateurs à qui Apple fournit son serveur et si ça répond à une demande grandissante ou bien si on ne leur a pas demandé leur avis…
Sur les reproches que tu fais à MySQL, je ne les conteste pas spécialement, j’appuierais même assez volontiers le premier point sur les mots clés, mais j’aurais aimé que tu sois plus disert sur le sujet et en particulier sur l’indexation automatique et la manière de stocker les dates. Sur les dates, pour faire simple, je me fous de savoir comment c’est géré en interne du moment que je récupère la valeur dans le format où je l’ai enregistré. Quant aux standards ANSI SQL, là je n’ai effectivement rien à dire, mais je me demande s’il existe un seul SGBD qui les respecte complètement… tout en conservant malgré ça une efficacité qu’on peut difficilement qualifier de mauvaise à MySQL.
Ceci étant, et sur un plan beaucoup plus général, un SGBD reste un outil, il est adapté ou non à l’usage qu’on veut en faire. À priori, la direction chez Apple a conclu que ce n’était plus le cas et ils ont changé leur fusil d’épaule.
My 2¢
Merci pour ton avis.
Je n’ai pas disserté sur la raison du changement, puisqu’il s’agirais d’un soucis de licence, et qu’Apple craint en effet des soucis de droits.
Donc, sur la raison du changement, il n’y a rien de lié à la qualité intrinsèque du SGBD. Et dans la lignée Apple, ils décident ce qui est mieux pour les utilisateurs, sans vraiment demander l’avis des utilisateurs.
Par contre, j’ai profité de cet article pour avancer ma préférence pour PostGreSQL.
En ce qui concerne mes reproches à MySQL :
– L’indexation automatique : MySQL crée automatiquement un index sur les champs cibles des clés étrangères. C’est bien, mais ce n’est pas sensé être automatique. Nous n’avons donc pas la main sur le schéma de l’index.
– Sur le stockage des dates, MySQL utilise toujours le timestamp en interne, donc des entiers de grandes tailles. Sur des tables de grandes tailles (> centaines de millions d’enregistrements), ça se sent sur le poids des tables dans le filesystem.
Pour répondre à ton dernier point, je suis d’accord : pour de petits à moyen projets, MySQL peut convenir, et on peut se satisfaire d’une maîtrise partielle du SQL, tant que ça marche. Toutefois, PostGreSQL couvre ces projets, mais également les gros projets, ou avec des architectures avancées (la réplication PostGreSQL est géniale, ainsi que la répartition des données par partition disque).
Du coup, je pense que nous serions tous gagnant à utiliser PostGreSQL dès le début, plutôt que MySQL, et s’enterrer avec dès qu’on veut passer un cap.
Hey
,
Je suis passé à côté de cette nouvelle et je suis ravi de l’apprendre. En effet, il y a sûrement des problèmes de licences qui pourraient justifier ce changement de la part d’Apple. Ça donnera aussi une excellente visibilité à PostgreSQL.
En parlant du respect des standards, PostgreSQL respecte SQL3 et même plus, et à ce que je sache, très peu de personne utilise SQL3. C’est dommage car c’est déjà une version très puissante ! Par rapport à MySQL, c’est donc une très belle avancée.
En relisant un peu quelques documentations, je me rends compte que PostgreSQL gère bien mieux les standards SQL que SQLite. Ça m’intéresse donc très fortement.
Merci pour cette nouvelle et ton opinion !
Hello,
Juste un petit point sur ta dernière ligne : N’oublies-tu pas un peu GNU dans ton acronyme : Linux est juste une partie d’un système, pas le système dans son entier. Ca aussi c’est une simplification dommageable.
Le terme plus approprié serait GLAMP ou GLAPP.
Bonne journée,
Jérémie
Le problème c’est que ces serveurs sont tout bonnement appelés comme ça : C’est du LAMP !
(Ensuite c’est d’autant plus simple de s’y retrouver : LAMP sous GNULinux et WAMP sous Windows)
Merci pour cette News !
Bonne journée !
Punkill3r