IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

OpenSource - Nivellement par le bas ?


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 86
    Par défaut OpenSource - Nivellement par le bas ?
    [Note aux modérateurs: Ce post aurait sans doute eu sa place ailleurs, mais il semble que je ne puisse pas encore poster dans "Les Débats du Développement". Quoiqu'il en soit, n'hésitez pas à flinguer sans pitié si vous le jugez trop long ou sans d'intéret. Merci.]


    Bonjour à tous,


    j'aurais sans doute pu intituler ce post "Combustible polémique", mais mon but ici n'est pas de provoquer de réactions violentes ni de revendiquer de positions extrêmes. Je tiens d'ailleurs à préciser que je me considère comme un développeur sensible aux avantages des solutions OpenSource (quelqu'en soit la licence, GPL, BSD, Netscape, etc..). Par ailleurs, ce texte comportant quelques exemples issus de mon expérience personnelle, je vous prierais de bien vouloir les considérer comme de simples illustrations de mes propos, et de ne pas tomber dans le piège qui consisterait à croire que je cherche à imposer à la communauté de ce site mon opinion sur tel ou tel produit, librairie ou méthode de travail (ce qui serait ridicule de ma part).


    Il y a quelques mois, j'ai eu à développer une application reposant sur l'analyse de code HTML. Mon premier réflèxe, bien sur, a été de rechercher sur Google les différents projets OpenSource mettant en œuvre un parser HTML, dans l'espoir de pouvoir le réutiliser dans mon application. J'ai donc consulté les documentations de plusieurs produits, comme la libxml2, la libgtkhtml, le parser de Mozilla, et une multitude d'autres, plus ou moins aboutis.

    Après une sélection sommaire des quelques librairies semblant correspondre à ce que je recherchais, j'ai effectué une série de tests sur chacune d'elles, afin d'en comprendre l'utilisation, et d'en délimiter le périmètre fonctionnel. Au cours de ces tests, il m'est vite apparu, par exemple, que la libxml2 gérait correctement le HTML "propre" (genre XHTML), mais avait rapidement du mal avec le HTML du "monde réel" (souvent incorrect, du point de vue du W3C). Ce n'était bien sur qu'une demi-surprise, puisque cette librairie est avant tout un parser XML, étendue par la suite afin de pouvoir gérer "aussi" le HTML. De la même façon, la libgtkhtml m'imposait certaines contraintes, en particulier une forte dépendance vis-a-vis des structures de données Gnome, etc..

    Je me suis rapidement rendu compte que dans tous les cas, le travail de "colmatage" et d'intégration allait me prendre beaucoup de temps. D'autant plus qu'il était nécessaire, dans la perspective d'une évolution de l'application, que je puisse également parser (je n'ai pas dit "interpreter", mais au moins "tokeniser") les définitions CSS ou les fonctions JavaScript qui pourraient apparaitre au détour d'une page.

    J'ai donc pris une décision qui ferait sans doute dresser leurs cheveux sur les têtes des professionnels que vous êtes: développer mon propre parser HTML. Le système est basé sur une FSM (Finite State Machine, ou Machine à Etats), les transitions entre plusieurs tables d'états sont supportées via un simple système de stack, ce qui me permet d'avoir une state table dédiée au HTML, une autre pour les structures SGML, une pour les URI (ce qui n'est pas un luxe), une pour le JavaScript, et une pour les stylesheets.

    Bien sur, j'ai eu droit aux railleries de circonstance ("tant que tu y es, refais aussi l'OS, les drivers Ethernet et la stack TCP/IP qui vont avec", etc..). Il n'empêche qu'aujourd'hui, je dispose d'un ensemble de classes répondant parfaitement à mes objectifs fonctionnels initiaux, et aux contraintes que je m'étais fixées (en particulier au niveau de la vitesse de traitement et de la gestion des erreurs). Plusieurs personnes sont intervenues sur le code depuis (principalement afin de développer de nouvelles state tables pour le support XML et SOAP), et l'apprentissage s'est fait sans mal. Le code (d'ailleurs minuscule puisque les state tables sont.. des tables ) est correctement documenté, et maîtrisé de A à Z par au moins deux personnes.


    Cette expérience m'a poussé à m'interroger sur l'intéret de la réutilisation systématique du code fourni par la multitude de produits OpenSource, qu'on trouve par exemple sur SourceForge. Je sais qu'il s'agit d'un sujet sensible, mais le leitmotiv bien connu du "il ne faut pas réinventer la roue" est une évidence un peu trop facile; je dirais même qu'il faut parfois avoir une certaine dose de culot pour oser s'octroyer le droit de la proférer à tout va.

    La communauté OpenSource est un fantastique viver de développeurs; mais alors qu'aujourd'hui la plupart projets qui en sont issus supportent sans problème la comparaison avec leur pendant commercial (ou sont en passe de le faire, on peut citer l'exemple des browsers web, des composants XPCOM (Mozilla) vs. MSCOMM (Microsoft), des suites bureautiques et bien sur.. des OS eux-mêmes), on a parfois l'impression que la créativité qui les caractérisait traditionnellement est de moins en moins présente, et que leur dynamique de développement s'inscrit progressivement dans une logique d'inertie. Une grosse moyenne mobile, à l'échelle de la communauté toute entière. C'est sans doute ça qu'on appelle la maturité.


    Mais c'est encore au niveau individuel (le développeur, ou le petit groupe de développeurs) que ce phénomène est le plus visible. L'exemple du parser HTML (peut-être un peu long, veuillez m'en excuser) en est tout-à-fait représentatif.

    La plupart des intervenants sur ce forum sont sans doute des ingénieurs, soit par leurs études, soit par leur expérience qui dans un environement professionnel leur confère un rôle d'ingénieur. Ce rôle, justement, est d'identifier des problèmes, puis de proposer et de superviser la mise en place de solutions répondant à ces problèmes (généralement sous certaines contraintes techniques, de temps, du budget, etc..). Sans tomber dans les clichés folkloristes, on les suppose donc doués d'une certaine créativité, a priori dynamiques et ouverts d'esprit.

    Pour avoir passé pas mal d'années en SSII (mais heureusement, au moins autant dans des Start-Up ), je sais que beaucoup d'ingénieurs (souvent les plus jeunes, malheureusement) correspondent plus au prototype du "fonctionnaire", dans tout ce que ce terme peut avoir de péjoratif, qu'au profil que j'ai tenté d'ébaucher plus haut. Beaucoup d'entreprises technologiques sont demandeuses de talents, de gens qui osent proposer des solutions originales, parfois très simples, mais véritablement adaptées à des problèmes spécifiques, et se retrouvent avec de "jeunes actifs" en cravate PlayStation, qui ne savent qu'intégrer (souvent mal) des produits génériques (un peu de libgbidule par ici, un system() pour appeler la suite OpenBloatedTruc par là, etc..), le tout au nom de la réutilisation des composants logiciels. Quelle blague!


    Et l'OpenSource dans tout ça ? Il est malgré lui au cœur du problème. A produire, inciter à réutiliser et à mélanger entre eux, encore et encore, les mêmes composants génériques, de façon systématique, jusqu'au point où on ne se pose même plus la question de savoir si on a vraiment besoin d'embarquer la moitié d'un serveur web pour faire un "Hello world", on oublie que certains problèmes spécifiques demandent des réponses.. spécifiques. La biodiversité s'éteint, les performances aussi, et la passion avec.


    -pirus.

  2. #2
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    euh?
    j'ai l'impression que tu rejette la faute de l'incompetence de certaines personnes sur l'open source ... c'est pas bien .

    serieusement ... il y'as tout un tas de libs diverses open source qui font un tas de trucs ... apres faut etre capable de choisir la lib qui vas bien ... ou de developper la sienne.

    chaque bibliotheque as ete developpé avec une certaine idée de "généricité"; mais elles ont ete développé pour un besoin particulier (aye, je sais pas si je suis clair)
    quand on auras trouvé la bibliotheque qui fait TOUT, qui le fait bien, dans toutes les situations, et qui pese pas 500Mo, on auras trouvé le graal

    en attendant faut se retrousser les manches

  3. #3
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Je comprends tout à fais ton point de vue. Mais comme le dit Dark_Ebola c'est plus l'incompétence de certain que le status de l'open-source qui est mis en avant.
    L'open-source (du moins la licence GPL) a été définie pour 3 raison :
    - pouvoir utiliser un logiciel sans restriction
    - pouvoir modifier le logiciel pour enlever un bogue ou ajouter une fonctionnalité
    - pour redistribuer le logiciel librement (en garantissant au destinataire les même droit sur sa copie)

    Après intégrer ou non un composant libre dans un projet c'est comme tout aute intégration de composant. Ca ne sert à rien d'intégrer un composant inadapter. Il vaut mieux le créer de toute pièce dans certains cas.
    Mais en même temps, si il existe un composant libre qui correspond au besoin pourquoi s'en priver ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Par défaut
    Je suis d'accord avec les autres forumeurs (tiens je sais pas si ca ne va pas finir dans le dictionnaire ce terme ...) et je rajouterai même que l'opensource est en train de devenir un peu victime de son succès :

    En effet j'ai l'impression que pas mal de monde, au lieu de compléter et améliorer un projet existant avec les fonctionnalitées dont ils ont besoin, tendent à créer leur propre projet avec parfois pas mal de problèmes. Alors qu'en contribuant à un projet déjà existant, on bénéficie du regard des autres developpeurs sur son code et d'une entre-aide plus grande.

    Maintenant, il est vrai que dans certain cas, il vaut mieux travailler de son coter afin de ne pas totalement surchargé un projet existant.

    Je pense qu'il y aurait vraiment à recadrer l'esprit de l'opensource chez les novices (et pourtant, j'en suis un également, je n'est pas non plus 10 ans de dev derrière moi).

    Je suis par contre bien d'accord pour dire que le boulot de developpeur, principalement dans le genie logiciel ressemble de plus en plus à de l'assemblage, paramétrage de briques qu'à de l'algorithmique pure.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 86
    Par défaut
    je vous remercie tous pour vos commentaires (et pour avoir eu le courage de lire ce long post.. promis je vais eviter de recommencer !).

    la communaute OpenSource souffre encore manifestement d'une image (parfois justifiee) d'amateurisme. heureusement, elle se professionnalise de plus en plus: des societes de services comme IDEALX (pour ne citer qu'eux) se proposent comme partenaires aupres de grands comptes pour le developpement et l'integration de solutions basees sur des produits OpenSource (et en general, la qualite est au rendez-vous, si je me base sur les quelques "specimens" avec qui j'ai eu le plaisir de travailler.. et de boire des bieres ).

    mais effectivement, l'art du combat se perd (il s'agissait d'une reference a Sun Tzu, tous ceux qui ont pense a Top Gun peuvent sortir ).

    merci a tous,
    -pirus.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Par défaut
    FAudrait voir, on pourrais discuter sur le sujet, lancer un debat, ton post est peut être long mais loin d'être dénué de sens. Je trouve qu'il serait dommage qu'il tombe de suite dans les abimes du forum ...

  7. #7
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par pirus
    la communaute OpenSource souffre encore manifestement d'une image (parfois justifiee) d'amateurisme.
    Je ne suis pas sur. Il y a des projets Open Source de tres grande qualite (Linux, Mozilla et Firefox, Apache, OpenOffice [a partir de la v2.0!] pour ne citer que les plus evidents).

    Il ne faut pas non plus sacraliser le developpement 'professionnel'. Beaucoup de projets Closed Source connaissent le meme cycle de vie que les projets Open Source: on commence par un produit de qualite moyenne (Windows NT 4.0, par exemple) puis on l'ameliore (a coup de patches, s'il le faut) jusqu'a atteindre un produit de bonne voire tres bonne qualite (Windows XP, par exemple). Sur de tres gros projets, cela me parait imparable -- a moins de ne sortir une version que tous les 10 ans, au risque de se prendre un produit concurrent dans la gueule. Egalement, il y a des projets commerciaux Closed Source qui sont franchement mauvais, notamment dans les jeux videos. Il me serait facile de comparer un bon jeu Open Source a un mauvais jeu Closed Source, et tirer une conclusion inverse a la tienne...

Discussions similaires

  1. realiser un scrollpane qui commance par le bas
    Par bracket dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/04/2009, 17h16
  2. Aligner par le bas deux éléments en float.
    Par blueice dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 18/12/2007, 12h42
  3. Commencer un JTextArea par le bas
    Par xWolfi dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 28/08/2007, 19h11
  4. Comment aligner deux blocs par le bas ?
    Par veust80 dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 04/06/2007, 23h58
  5. Page WEB Coupée par le bas sous IE. Sous FF : tout va bien.
    Par Thomus38 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 21/06/2006, 09h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo