Forum général.général trop d'abstraction tue l'abstraction

Posté par  .
Étiquettes : aucune
0
21
oct.
2006
Salut a tous les unixiens de tous bords (*BSD, GNU/LINUX, GNU/HURD, et j'en passe et des meilleurs ;)
Je suis tout nouveau sur ce magnifique portails d'information et en environnement unix-like, mais j'ai quand même une grosse question qui me brule le cervellé a chaque fois que j'y pense.

Alors voila la question (PS : je sais pas si c'est vraiment le bon endroit pour la posée, mais bon je me lance. PS 2 : par couche d'abstraction j'enttand tous ce qui sépare un programme final, du noyau) :

"Pourquoi, oui pourquoi y a t'il autant de couches d'abstractions dans les systémes unix-like actuelles et aussi pourquoi certaines voient le jour pour des abstractions minimes, au lieu d'aidé des projets déjà existants, qui aurrait bien besoin de "main d'oeuvre", pour pouvoir améliorrer ou implémenter certaine features ?"

C'est pas que je veuille spécialement empêcher, les développeurs d'implémenter de nouvelle solution peut-être meilleurs, mais quand même, la sa devient impeut trop hétérogéne, sa commence a nuire gravement à l'utilité et à la simplissité que devrrer apporté les couches d'abstractions en générale.

Je prend un exemple de la question que je me pose, pour que tout le monde éssai de comprenne ma question :
"alors voilà,
_ en 1 on a un noyau,
_ en 2 on a un drivers pour une carte graphique par exemple (met sa pourrer etre n'importe quoi d'autre, du matos koi;)
_ en 3 on va avoir un serveur X qui va utiliser le drivers pour communiquer entre moi et le noyaux ou un truc du genre
_ mais aprés, a quoi sa sert le reste, pourquoi y a plein de wm, qui apparraisent, avec chacun au moin 10 couche d'apraction pour a la fin faire un simple "hello world" .

Sa peut parraitre con comme question, mais réellement, je me pose cette question en temps que newbie, pourquoi tant d'abstractions et surtout d'hétérogénité dans les solutions d'abstractions souvent équivalentes ?
  • # Petite Précision par un exemple d'abstraction louche

    Posté par  . Évalué à 1.

    Alors voila un exemple qui me semble bien pour exprimer ma problématique :
    gstreamer | mplayer/mencoder | libxine => font les même choses, de façon peut-etre différentes, mais alors pourquoi ne pas prendre la meilleures des trois solution, normalisé le truc pour un plus grande homogénité du systéme, et implémenté le plus de fonctionnalité possible dans celui séléctionner.

    Sa permettrer : 1 _ aux programmeur de ce fixer sur une et une seule plateforme, et donc de mieux bosser à long terme.
    2_ aux utilisateur (bibi ;) de pas avoir a ce demander pendant 2 plomb celui qui faut prendre, pour à la fin ce rendre compte qui lui faudrat de toutes façon installer les 3 parceque chacun sait faire des petit truc que l'autre n'a pas encore.

    A quand un directX pour linux (gstreamer et bien en théorie, mais bon, c pas encore sa)

    2puis c quoi tous ces drivers bizarre a choisir (X11, OpenGL, Xgl..etc), vous trouvez sa simple-vous ?

    Je respect le boulots qui est fait, mais pour moi sa n'a pas de cence de voir apparaitre 10 projet pour faire sensiblement la même chose.
    Pour l'utilisateur, sa gache tout le plaisir ;)
    • [^] # Re: Petite Précision par un exemple d'abstraction louche

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

      Je suis tout à fait d'accord, sur mon système, j'ai été obligé d'installer firefox en plus d'internet explorer pour visiter certains sites (moteurs de rendu différents), d'installer vlc, pack de codec divx3, divx4, divx5, divx6, realplayer, quicktime alors que Windows media player pourrait suffir. Sans compter les jeux qui tantôt utilisent directX/direct3D et tantôt openGL, ou les applis utilisant la bibliothèque gtk ou des toolkits dédiés au lieu du style classique... Bref, le « problème » de plusieurs bibliothèques différentes pour faire la même chose ne se posent pas qu'aux unixiens de tout poil.

      À la question pourquoi, j'ai une réponse : certains développeurs ne sont pas contents des bibliothèques qui existent (<exemple type="foireux">genre libxine est lourde et c'est une horreur à intégrer dans un projet</exemple>) et donc ils préfèrent développer leur propre version (ça peut éventuellement être un fork) qui sera tellement mieux (<exemple type="foireux">gstreamer sera le couteau suisse de la vidéo</exemple>).

      Pour l'utilisateur, je ne vois pas où ça gache le plaisir, tu installes un lecteur vidéo, il installe tout seul la bibliothèque sur laquelle il repose et tu n'as pas à te poser plus de question. Je ne connais pas de trucs que vlc/mplayer/ffmpeg ne sait pas lire. je ne sais pas si xine à des lacunes. gstreamer est jeune mais a atteint un bon niveau.
    • [^] # Re: Petite Précision par un exemple d'abstraction louche

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

      Les raison sont innombrables :

      * Le projet GNU a volontairement souhaité la compatibilité avec les systèmes UNIX existants, donc il fallait en implémenter les standards. De plus, il fallait bien commencer a faire quelque chose, alors autant se reposer sur des standards éprouvés.

      * Il existe des divergences de point de vues selon les communautés, tantau niveau des licenses (copyleft ou non, compatibilité GPL ...) , qu'au niveau technique, mais tout ça communique ensemble : n'est-ce pas un magnifique exemple de coopération ? Par exemple, le principe de paquets/dépendance est amha particulièrement reboutant pour les débutants sur GNU/Linux, car ce système n'existe pas sur les plateformes proprio. les plus répandues, ca devient ensuite une fonctionnalité indispensable, une fois qu'on y a gouté.

      * Les développeurs travaillent sur des projets indépendants, et il n'existe pas de "gentil dictateur" qui dirige l'ensemble de la communauté. Je crois que NetBSD fonctionne un peu sur ce modèle, mais je ne connais que de nom. (non, mon grille-pain n'as pas besoin d'un OS)

      ...

      Adhérer à l'April, ça vous tente ?

    • [^] # Re: Petite Précision par un exemple d'abstraction louche

      Posté par  . Évalué à 2.

      Ta question pourrait se poser pour beaucoup de choses :

      - Pourquoi autant de systèmes d'exploitation (Windows, Linux, Mac, Solaris, Aix ....) et pas un seul et unique pour lequel tout driver/logiciel serait compatible ?

      - Pourquoi autant de fabriquants de PC (Dell, Toshiba, Ibm, HP, Nec ...) et pas un seul ?

      - Pourquoi autant de fabriquants de voiture, alors qu'un seul modèle pour tous comme la Traban pourrait faire l'affaire ?

      - etc, etc ...

      Et à toutes ces questions, une seule réponse : il n'y a pas solution unique, toute ont leur avantage et inconvénients. Et ainsi, chaque utilisateur à le choix, peut être l'embarras du choix, mais à plus de chance de trouver ce qui répond le mieux à ses besoins.

Suivre le flux des commentaires

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