Le PHP dans PMB manque de rigueur

Je ne connais rien au PHP ; cependant, mon impression indiquée dans Qualités et défauts de PMB, a été confirmée tout récemment par un jeune informaticien, ami de Linux, qui est à la recherche d’un SIGB libre, pour l’installer dans une médiathèque près de Toulouse.

Nous lui avons montré PMB et ses fichiers. Il nous a montré, par exemple, comment de simples « doubles quotes » ( » « ) dans le code font travailler Apache dans des cas où c’est inutile. PMB est déjà rapide malgré les lourdeurs de son code, ce serait une bombe avec du code bien propre ;-)

Passons sur les innombrables « include » qui rendent plus difficiles les modifications du code — activité légitime et banale dans le cas des logiciels libres.

Pour des gens comme moi qui connaissons le XHTML sans connaître le PHP, le fait qu’il n’y ait aucun fichier XHTML à part un seul, peu utile (help.html), et que tout soit dans les fichiers PHP, y compris les parties « header » et « footer », nous compliquent les choses. Voyez notre bandeau qui se duplique dans la section « paniers ». Je suis incapable de corriger ce défaut car la solution est enfouie dans le PHP. Côté XHTML, comme je l’ai dit dans Qualités et défauts de PMB, il y a beaucoup de choses simples à corriger mais inaccessibles pour moi. J’aurais pu faire profiter les autres utilisateurs, ainsi que l’équipe PMB, de ces corrections, ce qui est dans l’esprit du libre et ce qui économiserait du temps et de l’argent à certains.

Espérons que le PHP de PMB s’améliorera rapidement pour qu’on puisse être fier d’utiliser PMB. Nous l’utilisons parce qu’il est simple à installer et à utiliser mais nous aimerions pouvoir le vanter sans réserve.

10 réflexions sur « Le PHP dans PMB manque de rigueur »

  1. Bonjour,
    il est assez étonnant que, je vous cite « Je ne connais rien au PHP » vous vous permettiez un tel billet.

    De nombreux audits de PMB sont réalisés régulièrement par de grandes administration ou grandes entreprise qui veulent l’utiliser et à chaque fois c’est la même remarque: code très bien structuré, du bon boulot.

    Eric
    PMB ? Je sais que quoi je parle !

  2. Bonne nouvelle, cela veut dire que l’informaticien qui a regardé le code n’y connaît rien.

    Quant à moi j’ai demandé à qq’un car je n’y connais rien — c’est bien dit dans le billet.

  3. Je ne dirais pas que le code manque de rigueur, c’est plutôt la base de données qui en manque totalement:

    – Clés étrangères qui n’ont pas le même nom que la clé primaire, et ce systématiquement
    – Mélange de noms de tables français et anglais, même chose dans les champs
    – Noms de tables sibyllins (analysis, par ex. pour une table liant les articles aux bulletins … étrange)

    Je suppose que tout ça est lié à des raisons historiques.

    • Oui, sans doute. Ce qu’on appelle «raisons historiques», ce sont des bouts de vieux code qu’on n’a jamais eu le temps de modifier pour les accorder à l’ensemble. La société PMB a plus de clients que de développeurs, alors ils n’ont pas beaucoup de temps.

      Si PMB était simplement une communauté, le code serait nettoyé. Si PMB n’était pas aussi une entreprise, le logiciel serait peut-être beaucoup moins utilisé?

  4. J’espère bien qu’elle a plus de clients que de développeurs ;-)
    Je suppose que vous voulez dire « trop de clients par rapport aux nombre de développeurs ».
    Ce qu’il y a probablement c’est que la communauté de développeurs est insuffisante car remanier un code est long et rapporte peu dans l’immédiat, et vu que le logiciel fonctionne, ce genre de chose n’est pas une priorité. Ou peut-être qu’ils sont en train de le faire, en tâche de fond?

    Si PMB n’était pas une entreprise je ne sais pas si le code ne serait pas utilisé. PostGreSQL n’est PAS une entreprise, mais rencontre du succès (Bull l’utilise, par ex.), car c’est un bon produit, de taille à se mesurer à Oracle.
    PMB Services vous dira que PMB n’est pas lié à une entreprise, mais je pense que si PMB faisait faillite, il faudrait un temps certain avant qu’une communauté ne reprenne les choses en main. Il y a certes une bonne communauté d’utilisateurs, mais peu de développeurs hors PMB Services (c’est mon impression et je me trompe peut-être).

    Il n’y a pas beaucoup non plus d’utilisateurs au niveau avancé, je veux dire peu de gens connaissant le fonctionnement interne de PMB, et capables, par exemple, d’attaquer les tables directement sans mettre le souk dans l’application.
    C’est pourtant ce que je dois faire en devant importer des centaines de milliers de notices, car l’application n’est pas prévue pour importer – uniquement par l’interface web – une telle quantité de données (ou alors peut-être faudrait-il des serveurs d’une puissance que je ne peux pas me m’offrir).
    Je peux dire que cet import est très difficile, et me prends énormément de temps et d’énergie ..

  5. Il y a certes une bonne communauté d’utilisateurs, mais peu de développeurs hors PMB Services (c’est mon impression et je me trompe peut-être).

    C’est ce que je voulais dire. Comme il y a une entreprise derrière PMB, les développeurs bénévoles s’y intéressent peu. C’est peut-être une impression aussi.

    Bon courage pour l’importation des notices :-/

  6. Bonjour,

    Un regard d’informaticien :

    – Utilisation : PMB est un logiciel globalement efficace et pratique, adapté aussi bien à une utilisation basique qu’à des besoins plus poussés. Cela semble de plus un produit vivant et évolutif.

    – Code : il est globalement efficace et peu buggé, mais sa qualité est assez médiocre. Quasi absence de commentaires explicatifs, nommages approximatifs (comme pour les tables de la base de données, déjà dit par Bernard Schenk), et surtout on perçoit un gros manque d’homogénéité et pas mal de redondances, signes caractéristiques de la juxtaposition de développements individuels mal coordonnés. En résumé : il faut être très motivé pour aller comprendre / modifier le code.

    – Documentation : la documentation utilisateur est très parcellaire, voire peu à jour : il est systématiquement plus efficace de s’adresser à des sites tiers plus complets, comme celui de AM Cubat ou Citedoc, ou directement sur la liste de diffusion (où les mêmes questions reviennent, sans que la doc semble mise à jour en fonction des ces retours ?!). Je finis parfois par aller faire du reverse-engineering sur le code… Quant à la documentation destinée au concepteur (ne serait-ce que le schéma de la Base de données, dans un 1er temps, avec la description de chaque champ de chaque table) : je ne l’ai pas trouvée (mal cherché ?).

    PS pour M. Robert : ceci est une critique qui se veut constructive et dénuée d’agressivité. Elle reflète mon retour d’expérience d’utilisateur de PMB depuis un an. Je comprends que cet état de fait résulte très certainement de contraintes économiques et humaines qui me sont inconnues (les « raisons historiques » évoquées par Libre fan).

    • Merci de ce témoignage, Pimbi. Je suis contente de voir que mes intuitions étaient fondées. Le miracle, je trouve, c’est que PMB marche très bien et qu’il est bien mieux que les SIGB de Decalog (société au nom prétention qui fourgue ses vieux programmes SIGB à de petites médiathèques mais à un prix conséquent, pas de remise sur les vieux stocks).

      Je me demande si le code assez brouillon de PMB est une marque de manque de temps et de développeurs ou une façon, peut-être même inconsciente, de garder le contrôle du code libre. Qui a envie de modifier qqchose là-dedans? Ça doit faire peur.

      • Bonjour libre fan, je n’avais osé émettre l’hypothèse du « contrôle du code libre » pour éviter la polémique ;-)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *