Journal Faire du closed-sources sous licence GPL

Posté par  (site web personnel) .
Étiquettes : aucune
1
26
mar.
2004
Oui, le titre est particulièrement racoleur - on se croirait presque sur TF1 - mais je tiens vraiment pousser un coup de gueule !
Voilà, hier soir je télécharge la verison 0.2 de Y-windows en disant naïvement : C'est un projet assez jeune, je vais aller jeter un coup d'oeil aux source. Que nenni, après avoir ouvert quatre ou cinq fichiers, je comprends ma douleur : pas ou si peu de commentaires, pas un fichier d'explication sur l'architecture... Bon, à ce moment là je me dis C'est un projet assez jeune, ils ont voulu publier rapidement quelque-chose, faut les comprendre. Moyennement convaincu par ma propre explication, je suis allé faire un tour sur Sourceforge pour jeter un oeil à deux projets du top ten, et donc assurément plus mûrs : Gaim et ScummVM. Et bien mes amis le résultat des mes investigations n'est guère plus brillant : des milliers de lignes et toujours (presque) pas de commentaire.
Et bien moi, ça me donne pas tellement envie de contribuer ! Quand on fait du logiciel libre, on donne les moyens aux utilisateurs qui le désirent de comprendre son code source : on commente ses fichiers, on écrit des docs techniques pour les développeurs et qaund c'est nécessaire ou approprié, on développe des SDK pour faciliter la créations de plug-ins. Il ne faudrait pas croire que publier son logiciel sous une licence libre se résume ajouter une simple entête au début des fichiers. C'est d'ailleurs le plus paradoxal, puisque la plupart du temps, le plus gros bloc de commentaires des fichiers contient... les infos sur la licence utilisée.
Bref, le développement de logiciels, et de logiciels libre en particulier, ne se résume pas à "pisser du code", pour ça il y a International Obfuscated C Code Contest ! Par expérience je sais que quand un projet n'a pas de docs à 500 lignes de code, il sera beaucoup plus difficile de l'écrire quand il y en aura 5000. En général les développeurs n'aiment pas écrire de la documentations, et il est difficile de commenter efficacement son propre code ; mais je pense que c'est un passage nécessaire pour péréniser le logiciel libre.
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  . Évalué à 3.

    Concernant Gaim il y a ca: http://gaim.sourceforge.net/api/,(...) c'est peut-être ce que tu recherchais !
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  (site web personnel) . Évalué à 7.

    Je suis plus ou moins d'accord.
    1/ Tu mets ton logiciel sous la licence que tu veux, meme si ton code est pourri. S'il est si pourri que ca, t'auras pas de contributeurs, contrairement a gaim (j'ai pas regardé ScummVM, peux pas dire). Le code de gaim est pour moi assez clair pour ne pas avoir tant que ca besoin d'explications.

    2/ Si tu ecrit donc proprement, les commentaires peuvent etre reduits a leur strict minimum. Quand bien meme il n'y en n'aurait pas, ca evitera que n'importe qui qui n'a rien capté au bouzin puisse se permettre des commentaires inutiles ou des patchs affreux.

    3/ Quand on fait du logiciel libre, on donne les moyens aux utilisateurs qui le désirent de comprendre son code source : non, on fait CE QU'ON VEUX (on a bien parlé de liberté si je ne m'abuse), et libre a l'utilisateur d'utiliser, ou au contributeur de contribuer.

    (c) moi
    • [^] # Re: Faire du closed-sources sous licence GPL

      Posté par  (Mastodon) . Évalué à 1.

      Tu mets ton logiciel sous la licence que tu veux, meme si ton code est pourri.
      Ouais, regarde multideskos par exemple.
    • [^] # Re: Faire du closed-sources sous licence GPL

      Posté par  (site web personnel) . Évalué à 2.

      on fait CE QU'ON VEUX

      Oui, en tant qu'auteur, tu es libre de faire ce que tu veux. Mais si tu mets un logiciel sous licence GPL, tu t'engages vis-à-vis des utilisateurs à leur offrir les quatre libertés suivantes (bon, c'est rabaché souvent, mais un peu de rappel ne fait pas de mal ;-) ) :
      - liberté d'utiliser
      - liberté de modifier
      - liberté d'étudier
      - liberté de diffuser

      Et la licence GPL est bien limitée avec ses seules propriétés juridiques pour garantir cette troisième liberté.

      Tu fais ce que tu veux, mais si tu ne t'efforce pas à faire en sorte que les utilisateurs puissent comprendre le fonctionnement de ton logiciel, alors ton logiciel n'est pas libre au sens GNU.
      • [^] # Re: Faire du closed-sources sous licence GPL

        Posté par  . Évalué à 1.

        ben voyons.

        et s'il n'est pas codé dans ton-langage-favori-à-toi-que-tu-aimes-tous-les-autres-sentent-le-mazout, tu vas râler aussi, je suppose.
        • [^] # Re: Faire du closed-sources sous licence GPL

          Posté par  (site web personnel) . Évalué à 1.

          Le premier critère de sélection d'un langage reste technique : est-il bien adapté à ce que je veux faire ?

          Une fois cette première sélection effectuée, en effet, je pense qu'il est préférable de prendre le langage le plus répandu.

          Note au passage que les GNU coding standards préconisent justement l'utilisation du langage C simplement parce que c'est le plus répandu et que plus de personnes seront amenées à le comprendre.

          et s'il n'est pas codé dans ton-langage-favori-à-toi-que-tu-aimes-tous-les-autres-sentent-le-mazout, tu vas râler aussi, je suppose.
          Dans tous les cas, tu ne manques pas d'imagination ; je ne vois pas à partir de quoi tu arrives à m'attribuer ces propos. Je vois que tu as de bonnes qualités pour troller.
          • [^] # Re: Faire du closed-sources sous licence GPL

            Posté par  (site web personnel) . Évalué à 1.

            Le premier critère de sélection d'un langage reste technique : est-il bien adapté à ce que je veux faire ?

            Bien sur que non ! Tu utilises le langage que tu maitrises ! Si tu en maitrises plusieurs tu as le choix, sinon...

            "La première sécurité est la liberté"

  • # Re: Faire du closed-sources sous licence GPL

    Posté par  . Évalué à 10.

    Yep, c'est comme les gens qui ecrivent des journaux sans espace et sans passer de ligne.

    C'est tellement opaque et illisible !
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  . Évalué à 2.

    Les commentaires dans les fonctions ou méthodes sont elles nécessaires ? Je m'explique: si le code est aéré, le nom des variables explicites ainsi que le noms des fonctions, l'intêret des commentaires est très limité (sauf si on souhaite faire de la paraphrase).
    Par contre, il est clair qu'une entete pour les fonctions dans le header peut aidé. Mais par pour toute, car bon la fonction du type:
    BOOL copierFichier (char *nomFichierSource,char *nomFichierDest) à l'air assez clair :)

    D'ailleurs, un bouquin assez sympa:"The Pragmatic Programmer: From Journeyman to Master" de Andrew Hunt, David Thomas
    • [^] # Re: Faire du closed-sources sous licence GPL

      Posté par  . Évalué à 2.

      Les commentaires sont plus que nécessaires dès que le code grossit et surtout se complexifie.
      Pour une fonction "copierFichier" c'est clair qu'on s'en tape un peu.
      Mais pour une fonction plus complexe son nom et ses noms de variables sont très loin de suffire à expliquer son fonctionnement !!
      Pour moi le minimum c'est quand même d'expliquer ce que tu fais et pourquoi tu le fais comme ça.
      • [^] # Re: Faire du closed-sources sous licence GPL

        Posté par  . Évalué à 2.

        Pour moi le minimum c'est quand même d'expliquer ce que tu fais et pourquoi tu le fais comme ça.
        La description du pourquoi et du comment devrait se trouver avec le prototype ou définition de la fonction et nom dans la fonction elle-meme. Dans le code en lui même, il ne devrait avoir que des commentaires éclairant sur des choses non évidentes à la lecture. Mais les mecs qui mettent des trucs du genre:

        if (traitement.res == ECHEC) {
        // cas où le traitement à échouer
        }

        pourrait s'abstenir.

        Mais chacun fait comme il veut, perso je préfère parcourir les headers et lire la description de la fonction que me taper la fonction elle même.
        • [^] # Re: Faire du closed-sources sous licence GPL

          Posté par  . Évalué à 2.

          Ou alors a la microsoft

          /*
          * Attention prise d'un verrou sur XXX
          * (je sais plus quoi)
          */

          lock();

          Y'a 4 lignes de commentaire a chaque lock/unlock c'est rigolo :-)
        • [^] # Re: Faire du closed-sources sous licence GPL

          Posté par  . Évalué à 3.

          Mais chacun fait comme il veut, perso je préfère parcourir les headers et lire la description de la fonction que me taper la fonction elle même
          Je ne parlais pas de ce que fait la fonction / méthode mais de la manière dont tu l'implémentes.
          Par exemple :

          // Cette méthode va cherche ça ici et fait ça là
          blala {
          ...
          // là je fais ça parce que sinon y'a un effet de bord sur trucmuche et que blablabla
          ...
          }

          Dans le code en lui même, il ne devrait avoir que des commentaires éclairant sur des choses non évidentes à la lecture.
          Bon en fait je crois qu'on est d'accord sur le fond :-)
    • [^] # Re: Faire du closed-sources sous licence GPL

      Posté par  (site web personnel) . Évalué à 1.

      Je ne peux que te soutenir, pratiquant moi même un code avec un minimum de commentaire. C'est l'une des habitudes d'extreme programming, la simplicité du code est une pratique qui rend les commentaires caduques.
      Et si un code à besoin de commentaires, c'est qu'il doit être clarifié

      Cédric
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  (site web personnel) . Évalué à 1.

    Alors est-ce que quelqu'un connait une réference sur l'art et la manière de commenter son code ? un peu à la sauce de la programmation structurée mais pour les commentaires.
    Ca va aussi plus loint, souvent les variables sont déclarées n'importe comment, les entiers après les sructures ...
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  (site web personnel, Mastodon) . Évalué à 7.

    Alan Cox disait (et dit encore), un bon code source bien écrit n'a pas besoin (ou très peu) d'être commenté.....


    M.
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  . Évalué à 6.

    1) Envoi un patch ;-)
    2) Les devs font ce qu'ils veulent
    3) Tu peut contacter les devs en leur demandant _gentiments_ de rajouter de la doc ou de te conseiller comment aborder le soft ...

    Sinon c'est vrai que trop souvent la doc est inexistante (et des fois c'est super-frustrant quand tu veut rajouter juste un petit truc pour toi ...). Maintenant si les devs ne recherchent pas dautres contributeurs, il font un peu ce qu'ils veulent, mais qu'ils viennent pas gueuler aprés.

    Par contre ton post est vraiment minable je trouve, tu veut obliger des gars qui font gentiment un soft à rajouter tout pour que TU puisse venir donner (peut-etre) ta petite contribution, si TU a le temps et si TU les trouvent dignent de recevoir ton aide? (reli un peu ton post, tu n'a pas l'impression de 'peter un peu haut'?) en particulier:

    >Quand on fait du logiciel libre, on donne les moyens aux utilisateurs qui le désirent de comprendre son code source : on commente ses fichiers, on écrit des docs techniques pour les développeurs et qaund c'est nécessaire ou approprié, on développe des SDK pour faciliter la créations de plug-ins.

    Le 'on' te laisse aboyer dans ton coin ...
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  (site web personnel) . Évalué à 2.

    Quand on fait du logiciel libre, on donne les moyens aux utilisateurs qui le désirent de comprendre son code source

    On fait ce qui nous plaît (tm) surtout.
    Si tu cherches un projet moins "mal foutu" auquel contribuer, jette un oeil au kernel. Les sources sont super clairs et bien documentés, et y'a encore des bugs dans le 2.6.4. Y'a des bouts assez chiants à comprendre, malgré tout. Le lisibilité du code n'est pas qu'une histoire de commentaires.

    Sinon installe un truc comme ctags ou etags, ça change la vie pour découvrir comment ça marche un bloc de sources.
    • [^] # Re: Faire du closed-sources sous licence GPL

      Posté par  . Évalué à 0.

      J'ai constaté que les devels de linux 2.6 avait relu leur K&R pour trouver un element syntaxique tres pratique :

      /* */

      Oui mesdames messieurs il y'a quelques commentaires utiles (non non pas l'historique du fichier au debut) dans linux depuis quelques temps !

      Bon plus serieusement le noyau linux est pour moi l'exemple type du truc pas documenté et pas clair. Si tu enleves les docs exterieurs (understanding linux kernel, LKI et les autres) c'est plutot une horreur de te pencher sur la chose.

      Si tu veux du code noyau documenté, tres clair sur la facon d'utiliser les differents sous systèmes du noyau penche toi du coté de FreeBSD amha. Mais la doc de linux je la cherche encore moi :-)

      Autrement on peut aussi citer sourcenavigator. C'est tres moche mais j'aime bien.
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  . Évalué à 1.

    mouaif. Tient, y'a aethera de the kompany qui est en GPL, ou qu'il est le code source ? surtout celui pour windows, il me serait bien utile. Faut que j'implante un trucs qui oblige les utilisateur à s'identifier à chaque lecture de mail.

    Si.

    Donc si quelqu'un connait un bon client mail sous windows, gérant l'imap et bien sur open source, je suis prenneur.


    Mitsuaki
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  (site web personnel) . Évalué à 2.

    J'avais fait un rapide tour de quelques trucs dont je me servais et que je voulais améliorer pour mes besoins persos ya quelques semaines/mois, et en gros mes impressions c'etait ca:
    • Gaim
      Peu de commentaires, mais comme marqué plus haut ya de la doc, et c'est bien écrit. Par exemple, c'est facile de faire un plugin en se basant sur les existants
    • Xchat
      Peu de commentaires, du code crade a certains endroits (sentiment partagé par son auteur :), mais facile a lire. J'ai peu rajouter une tonne de petits trucs dont javais besoin tres facilement
    • Apache
      Plein de doc, notamment expliquant le fonctionnement global. Code bien partagé, facile a re-utiliser, etc. Bon, evidemment, c'est le genre de projet pour lequel la doc pour programmeurs a interet a etre abondante :)
    • Frozen Bubble
      Euh, comment dire. Vaut mieux pas regarder. Le peu que j'ai vu des outils mdk c'etait assez horrible aussi, mais c'est ptet juste moi. (Je voulais betement changer 2/3 trucs concernant les fontes, j'ai eu bcp de mal...)
    • Openbox 3
      Un régal. code clair, commenté juste comme je les aime, Meme quelqu'un qui n'a jamais touché a un window manager -ct mon cas- s'y retrouve.
    • Eterm
      Plutot pas mal commenté, mais il ya beaucoup de code dans chaque fichier, c'est tres pénible. Pas regardé si yavait un truc de documentation quelque part par contre.
    • [^] # Re: Faire du closed-sources sous licence GPL

      Posté par  . Évalué à 1.

      Tetrinetx : une horreur
      fonction de plus de 1000 lignes, presque pas de commentaire (sauf un avertisement qu'il ne faut pas se plaindre du code degeux) et en prime un systeme de compilation original : on inclue tout les *.c dans un fichier...

      [pub]
      Le clux GNU/Linux de l'ensimag l'a modifié pour rajouter le support des stats.
      http://linux.ensimag.fr/tetrinet/index.php(...)
      [/pub]
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  (site web personnel) . Évalué à 1.

    Les vrais programmeurs ne commentent jamais leur programme. Comme un programme est difficile à écrire, il doit être difficile à lire et encore plus difficile à modifier.
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    Pas de doc sur YWindows ?

    Là je crois que tu n'as pas beaucoup cherché...

    http://linuxfr.org/2004/03/06/15657.html(...)

    Regarde le pdf. il explique je pense suffisement en détails comment il implémente son truc pour comprendre les sources (quoi, j'ai pas vu les sources, mais ce pdf est un bon début)
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  . Évalué à 3.

    Un logiciel libre n'est pas forcement un bon logiciel, ni un logiciel facile à comprendre.

    Bref, si tu as raison de pointer du doigt des attitudes néfastes, cela n'est pas lié au libre ou pas-libre.
  • # Re: Faire du closed-sources sous licence GPL

    Posté par  (site web personnel) . Évalué à 1.

    Ouais, sans compter ceux qui écrivent des grossièretés dans leurs commentaires : http://developers.videolan.org/cgi-bin/cvsweb/vlc/modules/access/mm(...) (faire une recherche sur MEMORY).
    Imaginez un décideur qui tombe là dessus ! Ça donne une mauvaise image du logiciel libre...
    Il serait temps d'imposer une démarche qualité au logiciel libre et de la faire valider ISO 9002.
    • [^] # Re: Faire du closed-sources sous licence GPL

      Posté par  . Évalué à 1.

      dans le même genre, Linus Torvalds a déjà signalé qu'il refuse les patchs visant simplement à enlever des grossièretés dans les commentaires du noyau (ceux du calibre "putain de matériel" et "chipset de merde").

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.