Nous sommes le Ven 27 Juin, 2025 10:18
Supprimer les cookies

Page 2 sur 2Précédent 1, 2Linux is a f**king mess.

Fil continu d'informations sur tout ce qui touche au libre, aux nouveautés et aux mises à jour majeures de logiciels libres. Merci de présenter toute news qui pointe vers un lien et de ne pas abuser des citations.

Jeu 26 Juil, 2007 10:54

Athanor1 a écrit:Et après tu reviens nous dire ce que tu en penses ?


Salut,

Bon maintenant que la colère est passée. passons à la solution de l'histoire. Là où je voulais en venir.

Les exemples que je prenais étaient pourtant parlant. D'un côté firefox/thunderbird arrivent tout prêts avec leur propre environnement graphique basé sur xul. Et hop, voilà comment on distribue un produit facile d'utilisation et prêt à l'emploi pour tout le monde.

Et comment les autres doivent se débrouiller ? Ben avec l'environnement fourni avec la distrib (le plus souvent basé sur gtk).

La question porte bien sur cette différence de conception et d'approche. Un programme que je télécharge à l'instar de firefox et qui démarre du premier coup sans rien m'exiger, potentiellement et à un premier niveau je dirai que c'est un meilleur programme que celui qui demande de bien vérifier que j'ai la bonne version de gtk par exemple.

Deuxième question, corollaire de la première, quelle est la meilleure façon de distribuer un programme : avec un environnement inclu dedans ou faisant appel à un environnement graphique commun comme gtk ? Et troisième corollaire découlant du second, j'insiste merci de ne pas exiger toujours la dernière version installée c'est agaçant. A croire que le mode de conception change à chaque version. Et là c'était la référence à opera (moins simple à trouver) qui propose un téléchargement par type de distribibution et par son numéro ou année.

Bref, je ne suis pas un spécialiste et certainement que mon analyse comporte des erreurs mais la question m'interpelle.
1 : funsun --> 2 : f1s1 --> 3 : (fs)1 --> 4 : ?
fun sun

Messages : 297
Géo : périgueux

Jeu 26 Juil, 2007 20:22

bonjour

GNU/Linux is not Windows !
Ca parait evident, pourtant quand je lis certains commentaires j'ai l'impression que certains ont vraiment du mal à l'assimiler... ;)

Dans le monde windows, Billou fournit un OS, et tous ceux qui veulent faire un programme l'ecrivent pour qu'il soit compatible avec cet OS, et accessoirement ils fournissent l'installateur avec.

Dans le monde GNU, il existe d'abord des programmes, et ensuite seulement certaines personnes sélectionnent les programmes disponibles (et leur version) pour en faire un système d'exploitation.

Et comme en plus GNU/Linux est un monde où les standards sont rois (je ne comprend pas trop le reproche sur le manque de standardisation dans linux), il n'y a pas besoin d'écrire plusieurs version d'un même programme pour les différentes distributions.

C'est vrai que ces standards se situent au niveau du code source et de la compilation. C'est donc la que le concept de distribution, totalement absent du monde windows, intervient : le développeur de programme fournit un soft "universel" (quoi qu'un peut repoussant dans son mode d'installation) et c'est le développeur de la distrib qui se charge de transformer le soft (compiler et packager avec gestion des dépendances) pour en faire un produit tres facile à installer (je pourrais dire "activer") dans l'ensemble "distribution".
Apres, les développeurs qui se sentent obligés de fournir eux memes des paquets compilé pour les différentes distribs, c'est soit qu'ils font du soft closed-source, soit que leur soft n'est pas suffisament pertinent pour etre intégré dans les distribs et qu'ils ont du mal à l'accepter....

Pour moi, le grand nombre de distributions disponibles n'est pas un problème. Certes, cela pourrait traduire le fait que certains ferait (peut etre) mieux de contribuer à une grosse distrib plutot que de s'épuiser à faire vivoter une distrib confidentielle, mais ce n'est pas la diversité en soi qui est en cause.



Passons maintenant au problème des dépendances :

fun sun soulève trois questions :

1) un programme qui s'installe sans dépendances est-il meilleur qu'un programme qui a des dépendances ? Pour moi, la réponse est non ! Certes, si on installe un seul programme sur sa machine, c'est plus facile si les libs sont incluses dedans. Mais dès qu'on a plusieurs programmes, il vaut que le code soit splitté au maximum. De sorte que plusieurs programmes puissent utiliser des libs communes, installées une seule fois sur la machine. Imaginons que la moitiés des applis pour linux (celles utilisant gtk) soit livrées avec des libs statiques (c'est à dire gtk intégré dans chacun des soft) : ca va rapidement prendre pas mal de place (et comme dirait Guy Roux, la place sur un ordi il faut pas la gâcher...). Dans le cas de firefox/thunderbird, la lib graphique est xul. Donc on a une version de xul dans firefox, une dans thunderbird. Comme j'aime bien ces programmes, j'ai donc 2 fois xul sur mon ordi. (parce que ce n'est pas parce que j'avais déjà firefox que la version de thunderbird installée était moins grosse).

2) (bon, c'est totalement la suite du 1, mais faut bien aérer un peu le texte...) Je continue donc : la meilleure facon de distribuer (et meme de concevoir) un programme est de faire appel a des libs partagées. Imaginons qu'on ait 15 programmes sur sa machine qui utilise Gtk et qu'on découvre une faille de sécurité dans Gtk. Si chaque appli integre une version de Gtk, il faut les mettres les 15 à jour (d'abord au niveau des développeurs, ensuite sur sa machine). Si en plus ces applis n'ont pas été installé par le gestionnaire de paquet (parce que c'est bien ca le but d'avoir des soft qu'on télécharge "pret à l'emploi", c'est d'installer la dernière version "à la main"), alors il faut faire soit meme les mises à jour une par une....
Avec la philosophie libs partagées + gestionnaire de paquet, il n'y a qu'un soft à mettre à jour et en plus ca se fait tout seul.

3) la version des libs requises. Disons que tu n'utilises pas directement Gtk, mais des produits plus proche de l'utilisateur, comme Gimp par exemple. En tant qu'utilisateur, tu aimes bien avoir les dernières versions d'un programmes (de Gimp, donc). Pourquoi ? Parce qu'il y a de nouvelles fonctionalités, parce qu'il est plus rapide, parce que des bugs/failles de sécurité ont été résolu, etc... Mais Gtk est un programme au meme titre que Gimp, donc chaque version apporte de nouvelles fonctionnalités, est plus rapide, corrige des bugs, etc.... Pourquoi voudrais-tu que les développeurs de Gimp se passent des améliorations de Gtk ?
Maintenant, un peu de théorie : qu'est-ce qu'une lib ? (et je ne te garantis pas un réponse exacte ;) ) C'est donc un programme, avec une interface et plein de code compliqué à l'intérieur d'une boite noire. Tu lis demandes quelque chose, ca fait un calcul et ca retourne un résultat. Sauf qu'ici, l'interface c'est des fonctions disponibles.
Par exemple, peut etre qu'une des fonctions offertes par Gtk est "affiche rectangle", qui prend comme paramètre les coordonnées du coin supérieur gauche, la longueur horizontale et la longueur verticale, et qui retourne comme résultat un rectangle tracé sur l'écran. Mais pour l'instant, on ne sait pas comment il s'y prend (et on a pas besoin de savoir). Si d'une version à l'autre de Gtk, le code qui trace les rectangles est modifié (amélioration, correction de bug), un programme qui utilise la fonction "affiche rectangle" peut utiliser indiférement l'une ou l'autre des versions. Si maintenant, les développeurs de Gtk décide d'introduire une fonction "affiche carré", pourquoi un développeur d'appli basé sur Gtk se priverait d'utiliser cette nouvelle fonction ? Sauf que maintenant, si cette appli qui utilise "affiche carré" se retrouve en face de la vieille version de Gtk dans laquelle cette fonction n'existait pas, ca va coincer... d'où une dépendance Gtk>5.6.1 (au pif) où 5.6.1 est justement la version où "affiche carré" est apparue.
Détail au passage : as-tu déjà compilé un module pour le noyau ? Si tu le fais, on te demande les kernel-headers (pas les sources, justes les headers). En fait, les headers contiennent juste la listes des fonctions qui sont disponible à l' "interface" du noyau, pour que le module qui les utilises puissent les connaitres à la compilation. Parce que si tu essayes de compiler un soft qui utilise une fonction que le compilateur ne connais, ca va méchamment planter....

Tout ca pour dire que ceux qui reproche au monde GNU/Linux l'existence des dépendances n'ont pas vraiment assimilé tout leur intéret par rapport au monde windows...

a+
lugburz
lugburz

Messages : 253

Ven 27 Juil, 2007 09:59

lugburz a écrit:Détail au passage : as-tu déjà compilé un module pour le noyau ? Si tu le fais, on te demande les kernel-headers (pas les sources, justes les headers). En fait, les headers contiennent juste la listes des fonctions qui sont disponible à l' "interface" du noyau, pour que le module qui les utilises puissent les connaitre à la compilation. Parce que si tu essayes de compiler un soft qui utilise une fonction que le compilateur ne connais, ca va méchamment planter....

Tout ca pour dire que ceux qui reproche au monde GNU/Linux l'existence des dépendances n'ont pas vraiment assimilé tout leur intérêt par rapport au monde windows...

a+
lugburz


Salut,

Non, je n'ai jamais compilé de module pour le noyau. C'est un truc qui me dépasse. Et je te remercie pour tes éclaircissements. Pour l'histoire des dépendances, j'essaye de comprendre....

un programme qui s'installe sans dépendances est-il meilleur qu'un programme qui a des dépendances ? Pour moi, la réponse est non ! Certes, si on installe un seul programme sur sa machine, c'est plus facile si les libs sont incluses dedans. Mais dès qu'on a plusieurs programmes, il vaut que le code soit splitté au maximum. De sorte que plusieurs programmes puissent utiliser des libs communes, installées une seule fois sur la machine. Imaginons que la moitiés des applis pour linux (celles utilisant gtk) soit livrées avec des libs statiques (c'est à dire gtk intégré dans chacun des soft) : ca va rapidement prendre pas mal de place (et comme dirait Guy Roux, la place sur un ordi il faut pas la gâcher...).

Dans le cas de firefox/thunderbird, la lib graphique est xul. Donc on a une version de xul dans firefox, une dans thunderbird. Comme j'aime bien ces programmes, j'ai donc 2 fois xul sur mon ordi. (parce que ce n'est pas parce que j'avais déjà firefox que la version de thunderbird installée était moins grosse).


Toutefois on ne peut pas reprocher à l'utilisateur, dans ce cas, de ne pas comprendre le fonctionnement de linux vis à vis des librairies/dépendances parce que avec une telle conception ce principe est passé outre.
1 : funsun --> 2 : f1s1 --> 3 : (fs)1 --> 4 : ?
fun sun

Messages : 297
Géo : périgueux

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit