PHP et Oracle, c'est désagréable, mais c'est nécessaire

Je rebondis sur le billet de Laurent Jouanneau qui nous explique pourquoi il ne se rendra pas au forum PHP 2008, et notamment sur ses propos concernant les deux conférences (publicitaires) Oracle.

Oracle est un SGBD non open-source, et peu utilisé par des projets PHP… Ça aurait été plus sympa de parler de PostgreSql, qui n’a rien à envier à Oracle sur de nombreux points…

Que ça nous plaise ou non, Oracle est aujourd’hui le leader mondial des systèmes de gestion de bases de données, avec 48.6% de parts de marché (sources Gartner), à opposer aux 10% de parts de marché que se partagent les bases open source. Lorsqu’on attaque les grands comptes aux systèmes d’information aussi complexes que tentaculaires, cette part de marché doit même affleurer les 80%. À contrario, je ne connais en France qu’une seule grande entreprise à travailler avec PostgreSql, le groupe La Poste.

PHP à encore, dans la majorité des DSI, la réputation d’un langage pour amateurs, peu fiable, tout juste bon à développer des applications jetables quick and dirty. Il est toujours, et restera encore longtemps opposé à Java, considéré comme un langage corporate et robuste. Cela vient notamment du fait qu’on associe encore Java à Oracle et PHP à MySQL.

Évidemment, pour faire changer les choses, il faut un driver qui fonctionne (merci OCI8 de venir pallier cette daube de PDO_OCI), et qui s’installe facilement, ou du moins sans avoir à hacker les sources avant compilation (pas merci OCI8). Il faut également que les développeurs PHP apprennent à développer avec Oracle, et cessent leur discours Oracle c’est comme Firefox, ça pue c’est pas libre, moi j’utilise Iceweasel et PostgreSql sous Debian unstable avec 0 packages proprios.

En deux ans, j’ai eu l’occasion de travailler sur deux projets majeurs tournant avec PHP et Oracle. Le premier tournait sous Symfony, le second sous Zend Framework. Dans le premier cas, nous avons du nous battre pendant plus d’une semaine pour pallier l’absence de véritable support d’Oracle sous Symfony et en corriger les bugs ou les incohérences. Dans le second cas, la majorité du travail a été de modifier les requêtes spécifiques à MySQL pour les rendre compatibles Oracle. Autant dire que la première a été plus que pénible, et montrait l’immaturité flagrante des projets open source même majeure dès qu’il s’agit de rentrer dans un contexte industriel.

Que cela plaise ou non, Oracle est là, et pour longtemps. À ceux qui voudraient me donner l’exemple de la compétition entre Internet Explorer et Firefox et l’extraordinaire progression de ce dernier, je rappellerai simplement qu’il est plus facile de changer le navigateur de son PC que de migrer tout son système d’informations vers un nouveau SGBD.

Emmanuel de Taillac façon on achève bien les chevaux

Publié le 28 octobre 2008 à 14h17 Publié sous et Labels open, source, php, oracle

À propos

Frédéric de Villamil

Je m'appelle Frédéric de Villamil, et quand je ne déploie pas ma mauvaise humeur et ma mauvaise foi sur le Web, je suis un super héros chargé de sauver le monde. Vous pouvez me suivre sur Twitter.

  1. Eric le 28 octobre 2008 à 15h49

    Oui mais … il a raison tout de même. Qu’on juge Oracle nécessaire ou pas, le fait est que Oracle en liaison avec PHP est relativement rare (oui, même dans la grosse entreprise de l’imaginaire collectif) et que deux conf la dessus c’est certainement au moins une de trop, d’autant qu’il n’y a pas grand chose de spécifique à PHP dans Oracle ou de spécifique à Oracle dans PHP (donc pas vraiment lieu d’en parler).

    Si PHP est souvent avec autre chose que MySQL, c’est aussi souvent parce que l’optique des applis PHP c’est souvent de bosser rapidement sans mettre en branle les consultants/architecte et toute l’usine à développement énorme de “on lance un projet java/oracle”.

    Oui, Oracle dans la plupart des boites ce n’est pas l’équipe de développement qui s’en occupe, ce sont des gens chers, qui prennent beaucoup de temps pour toutes les manip et qui voudront un droit de regard sur tout. Bref, si on choisit PHP pour être agile, on embraye logiquement pour la même philosophie côté SGDB.

    On peut faire la même argumentation côté cout des développeurs d’ailleurs, avec les mêmes raisons de choisir du MySQL quand on choisit du PHP.

    Et je me refuse complètement à reconnaitre ton raccourci “industriel” => “Oracle”. Mais alors complètement;

    Perso dans mes missions j’ai eu autant d’Oracle que de PostgreSQL (mais peu dans les deux cas). J’ai eu moins de problèmes avec PostgreSQL (tirez en les conclusions que vous voulez mais du coup je serai plutot d’accord avec Laurent sur le fait que Postgres mériterait un petit coup de pouce), et les Oracles étaient plutot dans des boites qui se la jouaient “parapluie” ou “nous on fait comme les pro” alors que le postgres je l’ai trouvé sur des applis réellement critiques dans les très grosses boites (mais j’en ai marre qu’on fasse tout par rapport aux très grosses boites alors que 90% de l’informatique se passe ailleurs).

  2. banux le 29 octobre 2008 à 10h40

    Je pense qu’oracle ne se retrouve pas ou peut avec php vient de plusieurs points :

    • Du fait qu’une base oracle est une plaie à installer et administrer
    • Possède peu d’outils d’administration gratuits et à ma connaissance aucun web
    • Que les avantages procurés par oracle ne se voient qu’à partir d’une certaine quantité de données ou du moment qu’on part sur du tout oracle.

    A mon avis tant que l’administration oracle sera pensée pour des gens certifiés et qui ont accepté de perdre plusieurs jours pour faire quelque chose de basique, cela ne percera pas auprès des développeur.

  3. FabienM le 29 octobre 2008 à 10h51

    Non seulement ce n’est pas évident de migrer tout son S.I, mais de plus ce n’est pas toujours défendable : Oracle possède encore de l’avance et une certaine plus-value sur PostgreSQL, bien que la qualité de celui-ci s’améliore de versions en versions.

    Je suis un peu dans le même cas qu’Eric sur la quantité de missions Oracle/Postgres (et mon client actuel fait même cohabiter les deux) mais je serais bien incapable d’en dégager un vainqueur. Les DBAs que j’ai connu choisiraient par contre sûrement tous Oracle sans hésiter et comme ce ne sont pas tous des aficionados aveuglés par leur formation, j’aurais tendance à penser qu’ils ont de bonnes raisons.

    J’apprécie le travail de Laurent mais le fait est que son manque d’ouverture d’esprit sur cette question nuit fortement à PHP. Si l’on veut qu’il soit plus fort, le logiciel libre ne doit pas tomber dans les mêmes erreurs que ses homologues propriétaires. D’ailleurs comment penser qu’une entreprise qui a son S.I supporté par une base Oracle puisse avoir envie d’utiliser Jelix, le framework de Laurent si pour cela elle se retrouve obligée d’ajouter un SGBD Open Source à son infrastructure, pour lequel il faudra en plus développer des flux inter-applicatif et augmenter la complexité du système ? Le logiciel libre doit entrer dans les entreprises par la petite porte pour asseoir sa crédibilité, croire que tout doit devenir libre du jour au lendemain n’est pas seulement naïf, c’est aussi idiot, car ce n’est pas souhaitable de n’avoir plus qu’une idéologie capable de fournir des produits logiciels, qu’elle soit libre ou propriétaire.

    Tout ceci étant bien sûr mon humble avis, je ne cherche pas à imposer ma vision du monde :)

  4. YoGi le 29 octobre 2008 à 13h24

    Je suis bien d’accord avec toi. Et remplace “Oracle” par “MS SQL server” et tu n’imagines pas dans quelle galère tu t’embarques.

    En outre, dans le contexte d’un projet avec le ZF, il nous a tout bonnement été impossible de faire fonctionner correctement l’accès à la DB (tout au mieux, on a fait tourner des scripts simples via une passerelle ODBC).

    Ca la fout mal quand on essaie d’imposer PHP en face de Java dans un contexte industrielle, et que Java / SQL server / Linux est déjà en prod depuis des années et ne pose aucun problème.

  5. Eric le 29 octobre 2008 à 15h37

    @Fabien: Tu parles de deux choses différentes. Personne ne conteste que pouvoir s’interfacer avec Oracle est une bonne chose. Même pas Laurent.

    La question est que sur 20 conférences PHP il y en a finalement 10% qui sont consacrés à Oracle, alors que le sujet n’a pas vraiment besoin qu’on s’y attarde plus d’une demi heure et que l’utilisation d’Oracle reste factuellement ultra minoritaire en PHP (ça c’est factuel). Bref, on ne parle pas assez de ce qui est important et ces deux conf ressemblent beaucoup à un espace publicitaire. Rien à voir avec le fait que Oracle soit présent ou pas dans les entreprises ou les raisons qui te poussent (ou pas) à l’utiliser.

    Ce que visiblement tu as mal accepté c’est que Laurent n’ait pas fait d’adaptateur Oracle dans son framework open source (Jelix); je n’en sais rien mais le connaissant il doit certainement partir du principe qu’il n’en a pas besoin donc que celui qui en a besoin peut coder l’adaptateur lui même. Il fait ça sur son temps, il n’est pas payé pour et n’a aucune raison de passer son temps sur un truc qui ne lui plait pas, donc je me vois mal lui reprocher. Si tu le codes et qu’il est bien je suis sur qu’il l’intègreras dans Jelix ;) Mais par contre … ça n’a un peu rien à voir avec la question qui nous intéresse.

    @YoGi:

    C’est quoi pour toi un “contexte industriel” ? en quoi les millions d’applis php ne sont pas dans un “contexte industriel” ? C’est un terme pas mal vide de sens derrière se cache souvent un “il me fait chier avec ses technos agiles, on va le disqualifier en lui disant que ce n’est pas réaliste dans le monde de l’entreprise, un système transactionnel, une application complexe, le monde du travail, etc [rayez la mention inutile]”. Le tout sans aucun sens derrière.

  6. FabienM le 30 octobre 2008 à 14h27

    Eric,

    Non ce que je voulais dire c’est que la position de Laurent ressemble beaucoup trop à un “extrémisme GPL”.

    Sur ce genre de conférence, j’ai tendance à penser qu’il vaut mieux une conférence Oracle qui permettra d’éduquer les entreprises en leur disant “si si, vous pouvez écrire une application PHP moderne sur votre S.I Oracle, et voici comment le faire proprement” et permettra peut etre de combler la carence d’image “Q&D” dont souffre PHP, plutôt qu’une conférence Postgres qui n’apportera rien d’autre qu’une bonne pub au SGBD en lui même vis à vis de MySQL, alors que l’intégration de ces deux produits sont déjà très bonne.

    Si l’on souhaite que PHP donne un coup de pouce au projet Postgres, alors mieux vaudrait faire l’inverse, une présence de PHP lors des événements Postgres.

    Cela dit, mon propos dépend aussi des contenus des conférences Oracle, effectivement si il s’agit uniquement de faire la pub du SGBD…

    Sinon ma référence à Jelix n’est rien d’autre qu’une illustration du problème, si l’on souhaite cloisonner les univers “Oracle/Propriétaire” et “PHP/Libre”, je me doute que Laurent sera preneur de toute les contributions :) De plus, je viens de lire le post de Laurent (mea culpa, j’aurai du le faire avant) et il est clair que ce n’est pas la présence d’Oracle qui le tiens à l’écart de la conférence, voilà de quoi modérer mon propos ^^

Réagir à PHP et Oracle, c'est désagréable, mais c'est nécessaire

Afin de maintenir le niveau global de ce site, les commentaires font l'objet d'une politique de modération qualitative basée sur des critères non écrits et totalement subjectifs, donc injustes.

Les commentaires écrits en langage SMS, inutiles, déplacés, injurieux ou relevant du spam seront systématiquement supprimés sans avertissement préalable.

Les trackbacks sont fermés pour cause de spam.