Je suis globalement d'accord avec ce que tu racontes.
Cependant lorsque tu dis
Note que je ne dis pas qu'il faut toujours gérer car ça arriverai tout le temps (par exemple pour un prototype, un dev rapide, peu utilisé, ben ça coûte cher à gérer
C'est justement là où une gestion de type xmalloc est utile non ? Comme ça tu as au moins une idée d'où tu t'es planté, etc. D'ailleurs c'est peut-être là où une implémentation utilisant des macros peut s'avérer utile. Quelque chose du genre:
staticinlinevoidfatal(constchar*err){perror(err);exit(errno);}staticinlinevoid*xmalloc(size_tsize,constchar*filename,constintlineno){void*p=malloc(size);if(!p){fprintf(stderr,"%s, line %d:\t",filename,lineno);fatal("malloc");}returnp;}#define XMALLOC(size) xmalloc((size), __FILE__, __LINE__)
Enfin, de façon générale, la norme dit que malloc peut renvoyer NULL, et donc si on veut faire du code portable, il ne faut pas s'appuyer sur ce que fait Linux seulement. Même si on ne veut être « que » portable POSIX, ce n'est pas raisonnable. Ça ne veut pas dire forcément se faire chier avec une gestion complexe des erreurs, mais dans le cas de prototypes/dév rapide que tu évoques, le code ci-dessus me semble amplement suffisant (et tu peux l'inclure dans un header de type util.h et puis c'est marre), mais il reste utile à des fins de debug (note que je sais que tu n'as pas dit que c'était inutile, mais j'étends un peu ta réponse avec mon expérience :)).
Sauf qu'en fait non, malloc appelle brk pour les allocs mémoire de moins d'une page, mais il appellera mmap si ça dépasse la taille d'une page. Donc tout dépend du type d'allocation mémoire dont on cause.
J'ai l'impression que sous linux on est foutu, on ne sait tout simplement rien faire du tout pour récupérer une situation de pénurie.
Oui et non. Il existe des softs qui se proposent de « surcharger » les allocations mémoire (par exemple un ancien collègue qui écrivait une bibliothèque de threads pour du calcul haute performance). Mon collègue utilisait les fonctions de « surcharge » de malloc pour rajouter des comportements spécifiques au moment de l'allocation mémoire. Dans ce cas on tombe sur des trucs rigolos, du genre tout un tas de logiciels GNU qui allouent presque tout l'espace mémoire adressable dans le processus car ils tablent sur l'allocation optimiste de Linux (en l'occurrence, c'est arrivé avec sort(1)). Du coup dans l'allocateur « normal » de Linux, sort te trie correctement les chaînes de caractères sans segfault car seules les pages réellement utilisées sont allouées par le système. Mais avec l'allocateur de mon collègue, tout à coup on avait des abort() et segfaults parce qu'il s'assurait que la mémoire était réellement allouée en initialisant au moins un octet pour chaque page théoriquement allouée1.
Tout un tas de softs avec des objectifs de performance proposent leurs propres ajouts (si ce n'est leur propre allocateur) aux mécanismes de gestion de mémoire de l'OS (SGBD, environnement d'exécution multithreadés, etc.).
en partie pour garantir autant d'allocation de pages mémoires physiquement contiguës que possible. ↩
Je navigue à -42 → je me fiche a priori de la note si le fil de discussion m'intéresse. Par contre, lorsque je suis pressé, lorsque ça « commence mal », etc., oui, voir une note à -10, ça va m'aider à passer au fil/sous-fil suivant.
Ensuite, en ce qui concernent les gens qui se plaignent de leur note négative : à part les fâcheux coincés à -5 ou -10, justement, et qui ne sont franchement pas nombreux, je n'en vois pas beaucoup qui se plaignent. Le seul cas malheureux (et pathologique sur un site de sur le libre) c'est celui de PasBillPasGates, qui avait un score négatif pour des raisons idéologiques/religieuses, bien plus que pour des raisons de pertinence (ça ne veut pas dire qu'il n'est jamais de mauvaise foi, ou jamais agressif, etc., mais grosso modo je le trouve dans la moyenne+).
Les autres, y compris ceux qui bossent sur des technos propriétaires au moins en partie (Zenitram, Groumly, etc.), et qui en plus sont agressifs (au moins de temps en temps), ont des notes qui malgré tout ce qu'on peut leur reprocher, sont globalement positives.
Du coup, le système de notation sert principalement (pour moi) à identifier les fâcheux. J'aime bien l'idée avancée par quelqu'un d'autre de peut-être permettre d'associer plusieurs tags à quelque chose de « positif », et idem pour le « négatif », genre « pertinent / inutile » (œuf corse), mais aussi « insultant, ou « troll » (qui peut être pertinent d'un point de vue discussion, mais qui, clairement, argumente juste pour le plaisir d'argumenter et contredire, sans vraiment croire à ce qu'il raconte), et j'en oublie sans doute du côté « + » et du côté « - ». Ça ne changerait pas la façon de modifier le karma, mais ça permettrait p'tet d'identifier plus facilement un troll (qui sait très bien comment fonctionne le site) d'un nouveau (qui ne sait pas encore bien comment se comporter en termes de ton).
Et enfin, je suis encore et toujours pour la possibilité de plonker par personne. Si tu veux retirer le système de notes, il faut quelque chose pour contrebalancer. Un système de plonkage dispo nativement permettrait aussi aux admins de voir si une personne est régulièrement ignorée (ou ignorée en masse). Si on couple le plonk à une raison (« troll », « autre: il m'énerve », « spam », etc.), y'a p'tet même moyen d'aider au ménage sur le site et faire la différence entre des gens qui ne se supportent pas mais respectent les conditions d'utilisation du site, et ceux qui abusent du système.
Il y a deux choses : travailler avec des gens qui sont bons techniquement et avec qui tu t'entends bien (et sont parfois des amis); et recommander des amis. Le premier cas est facile : si tout le monde bosse comme il faut, y'a pas vraiment de tensions (exceptées celles des deadlines, etc., ce qui arrive partout). Le deuxième cas est plus compliqué.
Le bouche à oreille marche très bien, à condition d'être honnête. Que ce soit fait sur LinkedIn ou simplement dans des conversations, ça n'est pas très important.
Ami, collègue, ou étudiant, je dis toujours la même chose si on me demande d'écrire une recommandation : « Je ne mentirai pas. » Toutes mes recommandations sont « sincères », ce qui non seulement est bénéfique pour tout le monde (ma connaissance/mon ami(e), l'employeur, mais aussi moi-même), mais en plus ça fait plaisir au candidat de voir quelqu'un écrire quelque chose de positif à son égard. Et j'attends la même chose en retour.
J'ai déjà dit à quelqu'un dont j'étais le « mentor » que je lui écrirai une lettre de recommandation puisqu'il me demandait, mais que je ne cacherai pas sous le tapis ce qui ne va pas (en l'occurrence, le mec est excellent techniquement, mais il est vraiment difficile de travailler avec lui d'un point de vue social). Évidemment, je n'aurais pas été « brutal » dans ma façon de le dire, mais j'aurais indiqué clairement qu'il lui fallait travailler sur son côté social. Il l'a mal pris et m'a demandé d'oublier. Tant pis1.
Bref : le fait d'être pote n'est pas le problème. C'est le fait de recommander des gens pour un poste parce que ce sont des potes, indépendamment de leur niveau en technique, qui peut être problématique.
Il a été embauché dans un gros labo aux US en tant qu'ingé de recherches. Je connais bien les gens avec qui il travaille, et le résultat est ce que j'attendais : il est toujours excellent techniquement, mais il est assez difficile de travailler avec lui. De ce que me disent les amis qui travaillent dans la même équipe que lui, ça s'améliore tout doucement. ↩
Écrire avec un bon style (facilement lisible, pas trop pédant, mais pas trop simplificateur non plus, etc.), ça s'apprend, et je ne connais personne qui soit né avec (juste que certains écrivent depuis très longtemps/jeune). Il est plus facile pour moi d'écrire un article (ou un commentaire, ahem) de 10 000 signes à la volée, maintenant que j'ai écrit plusieurs dizaines d'articles scientifiques, fait des commentaires constructifs de bien plus, etc.
Plus tu écris, plus ton style va évoluer dans un certain sens. Si en plus tu tiens compte des commentaires et critiques (parfois dures, mais si elles sont constructive ça vaut le coup quand même), alors ton style va vraiment s'améliorer. Du coup, à supposer que tu ne sois pas trop « territorial », la tribune de rédaction peut être un très bon endroit pour apprendre à structurer tes écrits et même voir comment reformuler des passages peu clairs.
Néanmoins, C++ est multiparadigme (et donc, C++ n’est pas un langage « orienté objet », il est un langage intégrant parmi d’autres le paradigme objet),
Bon, je me suis demandé s'il fallait que je pinaille, JUSTEMENT à cause de ça. :) J'ai raccourci, mais si tu veux, de même que OCaml est connu pour être un langage fonctionnel, il est lui aussi multi-paradigme. C'est juste que le paradigme impératif et objet me semble quand même plus secondaire quand on discute de ce langage. Même chose pour C++ : oui, il permet la prog générique, procédurale, objet, etc. Mais superficiellement, C++ est quand même largement associé à la programmation objet.
EDIT: Tiens d'ailleurs, lorsque je dis que C++ est un langage orienté objet, je ne dis pas qu'il n'est que cela, ET TOC.
Ton problème, c’est que soit tu trolles de mauvaise foi, […]
En même temps, par définition, un troll de mauvaise foi. Ceci étant dit, je suis d'accord avec ce que tu dis sur le côté troll de Kantien (mais comme il disait, il trolle ouvertement, du coup je lui pardonne à moitié :-)). Cependant :
Si tu connaissais un peu le C++, tu verrais qu’il y a beaucoup de choses qui relèvent de la programmation fonctionnelle dès qu’on fait de la métaprogrammation. Il y a même une syntaxe presque aussi horrible que celle d’Haskell :) (dans un style différent, certes).
Le langage de templates (qui est Turing complet, d'ailleurs), est un langage fonctionnel (affectation unique, etc.). C++ lui-même, en tant que langage n'est pas fonctionnel, mais offre quelques mécanismes permettant d'écrire des programmes dans un style fonctionnel. C'est quand même différent d'un langage fonctionnel par nature.
Lorsque je dis que C++ est un langage orienté objet, c'est parce qu'il offre des mécanismes qui me permettent directement d'exprimer un programme selon les concepts de la POO : niveau d'encapsulation (privé, protégé, public, etc.), héritage, groupement des données et des messages (méthodes/fonctions) qui leur sont associés, etc.
De même, lorsque je dis qu'un langage est fonctionnel, je m'attends à ce que les fonctions soient des objets de première classe, mais aussi que je puisse naturellement compter sur une expression de mes programmes en termes de valeurs (« immutable ») et pas de variables ( « mutables », et qui offrent donc des effets de bord), d'être capable d'exprimer des fonctions imbriquées dans d'autres fonctions si j'en ai le besoin, etc. La notion de récursivité (du code, des types, etc.) est inhérente au paradigme fonctionnel. Ce n'est pas le cas en C++. Oui, on peut jouer avec const, boost::function (et maintenant les lambdas), et même avec de la méta-programmation pour contraindre le système et forcer un style fonctionnel, mais ça ne fait pas de C++ un langage fonctionnel. De même que ce n'est pas parce qu'on peut programmer dans un style objet en C que ça en fait un langage orienté objet.
J'en déduis donc que selon toi un langage fonctionnel digne de ce nom doit être faiblement typé. Ou au moins doit avoir un type racine qui peut contenir n'importe quoi. C++ ne sera donc jamais un langage fonctionnel digne de ce nom.
Je pense que tu as tort. D'une part, il existe un lambda-calcul typé, dont se servent les langages fonctionnels (et LISP, par exemple, est fortement typé, mais le typage est dynamique). D'autre part, je ne vois pas ce qui te fait dire que l'exemple donné par Kantien est faiblement typé. Simplement l'application de l'opération (+=) sera adaptée au type contenu dans un élément spécifique du tableau, mais le typage est statique et fort en OCaml.
Premièrement je suis d'accord pour dire que malgré toutes ses améliorations, C++ ne prend pas réellement de fonctions comme objets de première classe. Les lambdas et autres types d'inférences limités sont extrêmement bienvenus, mais on reste dans le domaine d'un langage impératif (avec désormais plus d'opportunités pour avoir un style fonctionnel). Je renvoie à l'article de John Carmack pour une exploration de style fonctionnel en C++. Ceci étant dit :
P.S: Bon, le lambda-calcul ça date de 1936, et on a du attendre C++11 pour en avoir un ersatz à lire tes exemples
Histoire de troller un chouïa : étant donné que Church et son thésard, un inconnu du nom de Alan… Alan… Alan T-quelque chose, sont les deux piliers qui ont permis de créer les fondations de l'informatique théorique telle qu'on la connaît, j'ai envie de dire que crâner à propos du lambda calcul « créé en 1936 »1, alors que les principes de la machine universelle de Turing, qui sont certes arrivés plus tard (ce qui est somme toute logique), ont eux été mis en œuvre dès les années 40, c'est quand même rigolo. :-)
Ensuite, juste pour dire, le bouquin de B. Pierce sur les types montre qu'il est parfaitement possible d'implémenter un système de typage fort à base de lambda-calcul (il propose un mini-Java comme exemple, et un mini-ML aussi).
Je pense que l'ajout de trucs types lambdas à Java et C++ vient surtout du fait que lorsque tu as un écosystème populaire, il faut d'abord composer avec ce que les utilisateurs veulent (et fabricants de compilateurs proposent). Jusqu'au début des années 90, les compilateurs de production étaient franchement médiocres en termes d'optimisation (à quelques exceptions près, en particulier pour les compilateurs Fortran à destination de machines vectorielles, genre les Cray-I, etc.). Du coup, avec un langage procédural genre C, on pouvait au moins donner une forme au code qui permettait d'optimiser l'utilisation des registres, et d'être proche de la machine. Pendant très longtemps, les langages de programmation fonctionnelle a été considérée comme inefficaces en termes de performances. Ça commencé à sérieusement changer lorsque les compilateurs ont commencé à proposer des optimisations très agressives, mais même ainsi, les algorithmes (géniaux) qui sont derrière l'inférence de type de ML, et ceux qui gèrent la curryfication par exemple, ont tendance à mener à de la compilation via continuation, ce qui peut être très bien ou terrible en fonction de l'implémentation (y'a un excellent bouquin d'A.Appel sur la compilation de ML avec continuations soit dit en passant). Bref.
Jusqu'à il y a peu, la programmation fonctionnelle était considérée comme un truc d'académicien2. L'un des rares langages procéduraux à avoir intégré des bouts de programmation fonctionnelle était Perl: il est possible de passer des blocs de code et de créer des lambdas, tout un tas de fonctions « built-in » (genre map, grep, etc.) sont directement tirées de CLISP et ses copines, … Mais c'était aussi parce que Perl était à la base optimisé pour le traitement de fichiers textuels, et que les entrées-sorties étaient ce qui était bloquant de toute manière. Donc niveau perf, l'utilisation de fonctions de haut-niveau avec un coût à l'exécution était OK.
Quand OCaml, Scala, Haskell, etc., on enfin émergé et commencé à prouver qu'ils pouvaient, eux aussi, proposer des performances raisonnables (pas forcément comparé à C/C++, mais au moins par rapport à Java), tout en proposant une grande puissance d'expression, on a vu Java et C# (par exemple) commencer à se doter d'aspects fonctionnels. Encore une fois, c'est entre autres parce que les développeurs/utilisateurs du langage ont vu ce que pouvaient faire les voisins et ont réclamé ces fonctionnalités.
D'ailleurs je pense que tu parles du lambda-calcul typé; si je me souviens bien, le lambda-calcul non-typé avait été proposé 5 ans auparavant mais ne « servait à rien », d'où le besoin de pousser plus loin. ↩
Il faut aussi dire que c'est un peu la faute des profs. Genre en France quand OCaml était enseigné y'a ~15-20 ans, la façon d'enseigner le truc était très mathématique. On faisait en pratique des maths avec un langage de matheux. Si les profs avaient proposé de faire de la prog en OCaml mais avec un aspect pragmatique (mais en gardant l'aspect fonctionnel) je pense que ça aurait dégoûté beaucoup moins de gens de l'informatique en DEUG. ↩
LLVM est un projet de recherche pour fournir une infrastructure de compilation modulaire (ils ont eu des sous de la national science foundation, l’équivalent US de l'agence nationale pour la recherche) pour favoriser la recherche et l’expérimentation en compilation. Clang a effectivement été créé ca cause des problèmes de licence et de l'architecture du front-end de GCC (qui lie (liait?) artificiellement le front-end et le back-end pour des raisons plus politiques que techniques). La complexité artificielle liée au maintien de clang-gcc comme front-end a (de ce que j'ai compris) plus contribué a la création de Clang que le front-end de Xcode (apres tout, Xcode n'avait pas forcément beaucoup de mal a utiliser le front-end de GCC avant ça : ils s'en servaient depuis des années…).
Maintenant, Apple a adopté LLVM a cause des problèmes de licence liées a la GPL 3 pour GCC (c'est pour ça que pendant la transition, les OS d'Apple étaient coincés avec GCC 4.2 ou 4.3) d'une part, et le fait que le comité de GCC refusait d'intégrer un moyen d'ajouter des passes d'optimisation depuis l'extérieur (ils ont depuis changé d'avis, entre autres grâce au succès et l'adoption de LLVM/Clang par de plus en plus de monde). L'intégration avec Xcode est une des raisons techniques, ainsi que l'avancement limité pour ObjC dans GCC, mais je ne suis franchement pas convaincu que ça a été la raison principale (la politique/le légal a tendance a avoir un poids plus important dans ces cas-la).
Pour en revenir a mon point initial : Zenitram et Groumly se disputaient a propos du "langage phare" d'Apple (qui change environ tous les 10-15 ans). Entre autres Zenitram ironisait sur le fait que malgré son langage phare, Objective C, et maintenant Swift, Apple continuait le support d'un compilateur pour C et C++. Je ne faisais que rappeler que Apple a en priorité supporté LLVM, qui contient un middle-end et un back-end. Ils ont ensuite rajouté Clang quand d'autres soucis techniques et légaux se sont rajoutés. Sauf que, a la base, Apple a utilisé LLVM pour optimiser ses codes OpenGL (écrits en C), avant de passer au codage du futur iOS, etc. D'autre part, OS X est toujours écrit en C (au moins la partie Darwin), ce qui nécessite un compilateur C. Enfin, Objective C est complètement compatible avec les binaires C sur le même système (par conception). Il se trouve que, tout comme GCC il y a 10-15 ans, Clang est en train de diversifier le nombre de langages qu'il gère--quelque part c'est logique : maintenant que l'infrastructure est la, autant l'utiliser.
J'ai lu tes commentaires bien après avoir écrit ma réponse (je suis arrivé bien après la bataille ;-)). Ton argumentation m'a convaincu (enfin dans sa majorité).
Ceci dit, de meme que string est un conteneur "special" avec des méthodes propres (mais qui conserve une grande partie des fonctions des conteneurs "normaux") je ne vois pas pourquoi vector, qui est très clairement une structure de données faite pour être indexée, ne pourrait pas avoir un jeu de fonctions qui, elles aussi, permettraient de manipuler les données en fonction des indices. Apres tout, c'est déjà ce que font operator[] et vector::at, non ?
Concernant le cas pratique d'utilisation, tu noteras que je n'ai pas dit que j’étais d'accord, mais bien que
Si c'est une operation récurrente, et considérée comme utile, […]
J'utilise C++ assez régulièrement, mais dans un contexte particulier qui fait que je n'utilise que des parties très particulières et restreintes du langage (un peu de templates, parfois avec meta-programmation; un peu de POO; et rarement des cas vraiment tordus - meme si ca arrive quand meme).
Bref. Non, je n'ai pas besoin de ce genre de feature dans mon cas d'utilisation (si j'avais fréquemment besoin de supprimer un element a l'indice i dans un vecteur dans le contexte de mon boulot, je me demanderais sans doute si je n'avais pas peut-être mal choisi ma structure de données).
Dans le cas qui nous occupe, un intervenant dit qu'il a besoin de cette operation (et visiblement pour lui c'est un besoin récurrent). Quelqu'un lui répond, et donne une solution qui est quand meme plus compliquée que ce que veut l'intervenant original (mais qui peut sans doute être écrite une fois pour toutes sous forme de fonction template, certes). Et surtout, jusqu'à ton post, personne n'a demandé la fréquence d'utilisation d'une telle fonction (et c'est une question très pertinente). Ma réponse n'était pas une validation du besoin, mais une façon de montrer encore une fois comment lorsque quelqu'un dit "je veux faire X simplement" on lui répond "T'as qu'a écrire f(Z,Y,W) et ca te donnera X". :-)
A propos du support de C++ par Apple : il faut le voir differemment. Apple supporte le developpement de LLVM, qui n'est pas un compilateur C++. Il se trouve que Clang a aussi obtenu des financements de la part d'Apple entre autres parce qu'ils avaient besoin de compiler de l'OpenGL, et Objective C etant aussi compile nativement vers C, etc.
Bref, le vrai projet soutenu par Apple, c'est LLVM. Clang/Clang++ sont quasiment finances par effet de bord (de ce que j'ai compris--n'hesitez pas a me corriger si je me trompe).
Techniquement avec la fonctionalite de Co-Array, Fortran 2015 (et meme 2008 je crois) est mieux arme pour faire de la programmation parallele (pas trop concurrente) avec un haut niveau d'abstraction. Ceci etant dit, meme si tu as raison de rappeler que F77 c'est vieux, c'est aussi (avec du F90) ce que j'ai vu le plus souvent utilise dans des labos ET dans des boites qui produisent des outils de simulation numerique (avec des solveurs iteratifs).
Le problème c'est que je n'ai jamais vu ces bonnes pratiques décrites de manière un minimum formelle
Pourtant, entre les bouquins de Myers et de Sutter/Alexandrescu, y'a de quoi faire niveau bonnes pratiques recommandees et acceptees assez largement.
et qu'il faut composer avec l'existant.
Ca oui, et tu n'as pas le controle sur l'existant. Le mieux que tu puisses faire, c'est de changer petit a petit le code pour le rendre plus sain a mesure que tu effectues des operations de maintenance dessus. Ca inclut aussi le fait de rajouter -std=c++14 (ou au moins -std=c++11) sur la ligne de compilation. Et donc que ta boite a un processus qui le permette.
Pour ton problème de suppression de case (vient de SO): vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());
Bon, je comprends ta defense de C++. En particulier, ses utilisateurs reguliers seront les premiers a rappeler que C++ est concu sur le principe de ne payer que ce qu'on utilise, et je trouve que ca inclut la complexite liee aux features,
Ceci etant dit, ta "solution" n'est pas valable. D'un cote on demande d'avoir dans la bibliotheque standard, une operation vector::erase_at(size_t idx) et de l'autre tu reponds qu'il "suffit" de faire des circonvolutions. Si c'est une operation recurrente, et consideree comme utile, il me semblerait pas anormal de l'inclure (avec les precautions habituelles : ce genre d'operation sur un vecteur a une complexite O(n) etc).
C'est faux, ils me pourissent la vie par effet de masse. La pression sociale est un truc qui te passe visiblement au dessus de la tete.
Je me demande vraiment où tu vis pour subir une pression sociale si importante. J'ai pas mal de connaissances qu'on pourrait qualifier de « bobos ». Seule une très large minorité est végétarienne/vegan/végétalienne (les deux derniers sont encore plus en minorité).
Et le problème c'est le prosélytisme.
Non ce n'est pas LE probleme, c'est UN des problemes.
J'avoue que je ne pige vraiment pas. Soyons clairs : je connais des végétariens gonflants et pontifiants, qui se posent en autorité morale et affichent une condescendance crasse. OK. En fait, ce sont surtout les vegans/végétaliens qui agissent ainsi parmi ceux que je connais.
Maintenant, j'ai une amie qui a longtemps mangé de la viande, et qui est devenue végétarienne par conviction politique — oui, nous parlons de la maltraitance animale dans les abattoirs1. Elle cuisine de la viande pour son fils et son mari, ses invités, etc.; ne fait aucun prosélytisme; n'entre qu'à reculons dans un débat sur ce mode alimentaire; etc. Elle a fait ce choix pour elle, et ne l'impose à personne. La plupart des végétariens que je connais sont comme ça (pas les vegans ni les végétaliens par contre, qui eux ont une attitude plus prosélyte). De même qu'un ami religieux et qui mange kasher dans la mesure du possible demande souvent dans les restaurants s'ils ont des options végétariennes — il ne veut pas empêcher les gens d'aller manger dans un resto pas kasher, mais il lui faut aussi une alternative (et il se trouve que les plats végétariens fonctionnent bien pour ce genre de compromis).
Bref.
À noter que d'une part, cette maltraitance est avérée, prouvée, etc. dans la plupart des machins qui produisent de la viande en quantité « industrielle ». Et que d'autre part, on peut vouloir manger de la viande en limitant au minimum la souffrance animale (qui est je pense inévitable). En d'autres termes : je suis prêt à payer plus cher ma viande si j'ai des garanties sur la façon dont les animaux ont été traités. Ça va sans doute réduire ma consommation globale, mais au final c'est p'tet pas plus mal (on pourra réutiliser les champs pour nourrir les hommes par exemple). ↩
Le côté « signalons aux modérateurs et laissons faire » est justement ce que je critique vers la fin (possibilité d'abus du signal, et de signalement malicieux). :-) C'est pour ça que j'aime l'idée d'une kill list. Les modérateurs n'auraient à se soucier que des contenus manifestement illégaux, et les utilisateurs pourraient filtrer le contenu par contributeur.
Concernant l'aspect « liberté d'expression » : j'aime pas la police de la pensée non plus. Mais il y a une marge entre signaler un commentaire « abusif » (insultant, raciste, etc.), et signaler un commentaire qui ne plaît pas. Vivant depuis plus de 6 ans dans un pays où la liberté d'expression est sacrée (quelque part malgré les lois en vigueur, qui existent, mais que personne n'ose appliquer), et voyant le résultat en ce moment, je t'avoue que je ne suis pas contre restreindre un minimum la liberté de parole des fâcheux.
Évidemment, il faut fournir un encadrement strict de tout ça, et rendre la chose suffisamment contraignante pour que ça ne puisse pas donner lieu à des « délations » systématiques. Un peu comme le signal d'arrêt d'urgence dans les transports en commun : si on te choppe à l'utiliser pour « rien », alors si on te choppe tu auras des soucis. Dans le cas d'un bouton « signaler un commentaire abusif », on pourrait imaginer qu'il faut obligatoirement renseigner un champ pour expliquer en quoi le commentaire est abusif, et l'info serait liée à l'utilisateur qui a fait le signalement. Bref, pas de signalement « anonyme ». Ça permettrait aussi d'ignorer automatiquement les signalements abusifs venant d'utilisateurs cinglés ou robotisés.
Après, je reste persuadé que la liste « individuelle » pour ignorer les contributeurs énervants/qui abusent de leur droit d'expression est plus efficace et moins invasive pour tout le monde1.
La méthode ne passe pas vraiment à l'échelle, cf. Twitter, mais LinuxFR n'est pas un si gros site que nous aurions besoin de nous en préoccuper. :) ↩
Premièrement je suis d'accord avec ce que tu dis. La différence étant bien sûr que la raison pour laquelle on va porter plainte pour les situations IRL (je pense) est qu'on a peur pour son intégrité physique. Mais en ligne, porter plainte pour harcèlement moral est plus dur, pour plusieurs raisons :
La plupart des gens pensent (tout comme dans la vraie vie en fait, mais en pire) que « non mais bah OK, suffit d'ignorer » (je te propose de demander ça aux femmes qui se reçoivent des remarques toutes les 10 minutes dans la rue, de la part de parfaits inconnus, et voir leur réaction). Comme c'est sur le net, l'anonymat (relatif) et le côté plus « abstrait » des conversations tend à rendre les choses « moins graves » dans l'esprit des gens
C'est déjà dur de porter plainte contre des fâcheux réguliers dans la vie réelle (souvent ça se finit en main courante et puis c'est tout); je te parle pas de porter plainte pour harcèlement quand on parle de discussions en ligne.
Sinon, si on a un peu de temps à perdre, on peut jouer avec ces gens …
C'est justement le problème, non ? Ils nous pompent déjà notre énergie avec leur comportement négatif (et le besoin qui nous démange de leur répondre). Et on ne parle pas de gens qui ont un score principalement positif avec quelques fois des messages négatifs hein. Non, en majorité, ils ont en plus un score négatif permanent.
Donc il faut des outils pour ignorer plus efficacement. Ça serait déjà un bon point de départ.
Ouais donc en gros c’est normal de se faire insulter??
C’est inévitable, de manière générale sur le web… Je dirais même, dans la vie… Il n’y a qu’en ne faisant rien et en ne disant rien que tu peux espérer ne voir personne t’insulter. Et encore… y’en aura bien un ou deux pour te traiter de feignant du coup :)
Il y a une différence entre se faire insulter une fois de temps en temps1, et recevoir des commentaires régulièrement, par la même personne, contenant des insultes (directs ou indirectes). Je sais que ça fait désuet de parler de Netiquette, mais c'est pas pour rien que le terme avait été proposé pour les newsgroups à l'époque.
Je vais faire un parallèle bizarre entre la liberté d'expression et les systèmes distribués.
Dans un système distribué, il y a la notion de processus byzantin. Beaucoup d'algorithmes expliquent que le système sera stable tant qu'il n'y aura pas plus que X processus byzantins (càd que l'information pourra continuer de circuler et être modifiée selon le protocole établi malgré les interférences).
Si on avait une liberté d'expression absolue, il serait tout à fait possible d'avoir un groupe de gens avec un jeu d'opinions largement minoritaires, qui inonderait le reste du site. Or, c'est clairement quelque chose que personne ne veut. Du coup, le système de notation permet déjà de limiter leurs actions (capacité à publier un journal de première/seconde page, etc.). Il faut aussi ajouter la modération pour raisons légales. Bon. Tout ça, c'est pour limiter le nombre de commentateurs « byzantins » et faire que LinuxFR reste un endroit convivial pour discuter.
La question est donc de savoir si c'est suffisant. Que faire lorsque quelqu'un « rentre dans les clous » des règles d'utilisation du site, mais s'acharne peut-être un peu trop sur certains utilisateurs — par exemple en répondant systématiquement ou très souvent aux mêmes utilisateurs, avec un ton condescendant, voire des insultes à peine voilées (ou pas du tout) ? Ou bien, si sur un sujet donné, il existe un fâcheux qui répond presque à tout le monde avec sa vision ultra-minoritaire et clivante, avec le même ton insultant/condescendant?
Il n'est pas dit que la note permanente à -10 soit suffisante. Mais en même temps, oui, chacun a un seuil de tolérance différent. Dire qu'il « suffit » d'ignorer n'est pas suffisant. Si c'était facile, tout le monde le ferait.
Le problème c’est que quand tu commences à vouloir « sacrifier les fouteurs de merde » ça devient compliqué de fixer une limite claire…
C'est là qu'un système de plonkage serait sans doute utile. Tu fais ta propre modération en dehors de ce qui est requis d'être fait par les modérateurs. En terme d'overhead, l'impact sur le système global devrait être réduit, et le code lui-même ne devrait pas être trop gros, même si je sous-estime sans doute le temps que ça mettrait à correctement l'implémenter (rajouter une table de plonkage, un moyen dans l'interface de LinuxFR pour rajouter un utilisateur à la liste, et une méthode de rendu qui saute certains commentaires si leur ID se trouve dans la table de plonkage).
Et encore, lorsque dans une discussion houleuse un certain pote me traite d'imbécile, c'est plus indicateur qu'il est à bout que lorsqu'il me traite de con. ↩
@ ariasuni : si je peux te donner un conseil, ignore ce type de personnage si tu ne peux les gérer (pour ta pathologie, je compatis, je suis moi-même cyclothymique mais en ce moment je suis dans une phase up).
Je vois deux problèmes à ça :
Un gros problème quand on dit à quelqu'un qu'il faut ignorer les gens qui répondent systématiquement (et négativement/en insultant) c'est que c'est un discours qui est dangereux en lui-même. Dans un autre contexte (bien plus grave), si quelqu'un se faisait siffler/aborder dans la rue tous les jours à chaque fois qu'il/elle sort, il y aurait matière à porter plainte pour harcèlement.
Ignorer les trolls récurrents qui « te » ciblent, c'est franchement pas évident. Surtout sur un site comme LinuxFR qui a tendance à pousser à l'argumentation et la discussion. Il faut reconfigurer son cerveau pour ça (et là on pourrait ressortir le xkcd sur « quelqu'un a tort sur Internet »).
Donc il faut un moyen de modération. Les modérateurs de LinuxFR ont déjà une grosse charge de travail pour s'assurer que les commentaires de font pas tomber le site dans l'illégalité. Bon.
Je pense que le meilleur outil serait une kill list (proposée aussi par d'autres dans ce sondage) pour plonker les fâcheux, car ça, ça permettrait d'effectivement ignorer quelqu'un qui abuse de son droit de parole, tout en laissant la modération par note indiquer aux ± nouveaux utilisateurs que telle personne est sans doute un gros troll.
Une insulte est méchante, mais de là à effacer les messages,
On peut rappeler à l’ordre déjà,
C'est déjà ce qui est souvent fait (avec une réponse d'un modérateur aux commentaires insultants/à la limite).
et ensuite bannir temporairement au bout de ~x fois. Y a peut-être d’autres trucs auxquels j’ai pas pensé.
Donc en gros ce que tu veux, c'est un bouton "signaler un abus" sur les messages, et ensuite laisser les modérateurs décider de la gravité du truc (avec potentiel ban à la clef si récidive). J'ai bien compris ? Perso je ne suis pas contre, mais je me demande quel boulot supplémentaire pour les modérateurs ça représenterait si on rendait le signalement « trop » facile (sans parler des imbéciles qui se serviraient de ce bouton pour faire chier le monde).
Bon précaution sans doute inutile mais voila : tout ce que je raconte contient implicitement la mention "je ne suis pas juriste". Tu le sais déjà, mais c'est pour les autres. :)
Une question théorique : si la même loi sur la protection de la réputation d'un auteur d'art libre est transposée pour le logiciel et accepté par 170 pays, et si un logiciel libre devient connu pour être utilisé majoritairement pour du porno, et si l'auteur attaque tous ses utilisateurs pour qu'ils cessent d'utiliser son logiciel libre parce que tu comprend ça nuit à sa réputation, penserais-tu que c'est légitime par rapport à l'idée qu'on se fait du logiciel libre ("pour tout usage")?
Alors, même si je sais que le logiciel est soumis au droit d'auteur en France, je ne sais pas si la notion de droit moral peut lui être appliquée en premier lieu. La raison étant, comme dit par plein de gens, que le logiciel est intrinsèquement utilitaire : le logiciel n'est pas une fin en soi, mais un moyen d'atteindre la fin.
Dans l'exemple que tu donnes, tu proposes une hypothèse où un logiciel libre (disons un système à base de noyau Linux) est connu pour majoritairement être utilise pour faire tourner des sites pornos. Je ne vois pas en quoi ca enfreindrait un quelconque droit moral. De même que si je crée une peinture et que je la vends a un pornographe sans savoir qu'il vend du porno, je ne peux pas ensuite demander a ce qu'il restitue l'oeuvre1. Par contre de ce que j'ai compris, l'auteur peut demander à ce qu'une oeuvre qu'il a créée ne soit pas exposée/diffusée. Dans le cas où l'auteur aurait reçu une avance ou de l'argent contre la production de l'oeuvre, il doit alors indemniser le commanditaire2.
Par contre, si un/des sites pornos (par exemple) affichaient fièrement "Powered by Linux", et donc qu'il y ait une volonté d'associer explicitement Linux et le porno, là p'tet qu'il y aurait moyen de porter plainte. En l'occurrence je ne suis pas certain que le logiciel puisse bénéficier du droit moral de la même manière que les autres œuvres de l'esprit, mais je suppose que c'est en partie pour cela que la marque "Linux" a été déposée : pour éviter que des petits plaisantins (1) Puisse la déposer eux-mêmes, et (2) Pour garder un certain contrôle sur la façon dont on associe/communique en parlant de Linux.
[…] peux-tu me dire quelle différence tu fais pour la réputation d'une personne suivant qu'elle code ou qu'elle dessine? (pourquoi ce critère, pourquoi la réputation est importe pour l'un et pas pur l'autre)
Je le dis dans un paragraphe précédent et dans d'autres posts de ce journal, mais il me semble que l'aspect utilitaire du logiciel contraste fortement avec l'aspect "inutile" des œuvres d'art[3]. Même dans une oeuvre qui emploierait un logiciel pour être réalisée le code du logiciel lui-même sert à réaliser l'oeuvre, il n'est pas l'oeuvre en lui-même (en ce sens, je pense que programmer/coder tient de l'artisanat et pas de l'art au sens "noble" du terme).
Pour ce qui est de la notion de dénaturer une oeuvre et de la notion de réputation, j'ai fini par googler beaucoup, et tomber sur quelques liens intéressants :
L'affaire Barbelivien/Montagne contre Flunch : malgré le fait que Barbelivien et Montagne avaient vendu leurs droits patrimoniaux, lorsque Flunch a détourné leur chanson "On va s'aimer" (pour en faire "On va fluncher") ils ont poursuivi Flunch en justice en invoquant le droit moral et la dénaturation de l'oeuvre originale. A noter que ca a été juge en défaveur des plaignants au début, puis la décision a été cassée et renvoyée devant la cour d'appel, qui confirme que Flunch avait le droit de faire ainsi, mais la décision est finalement donnée en faveur des plaignants lors du deuxième pourvoi en cassation.
Il y a d'autres liens qui détaillent un peu plus ce que le droit moral défend. En particulier, il y a le droit pour l'artiste de rester anonyme (ou au contraire qu'on lui reconnaisse la paternité d'une oeuvre), mais aussi le "droit au respect de l'oeuvre".
Jurispedia propose un article assez complet sur le droit moral mais grosso modo le lien précédent donne un bon résumé. A noter qu'il y a une section "abus de droit moral" qui est intéressante à lire. Un exemple d'abus est donnée par nomosparis, une société d'avocats.
Du coup je me suis demandée comment Creative Commons pouvait jongler avec la notion de droit moral (qui en fait existe partiellement aux USA, mais pas de la meme manière que la plupart des pays) tout en ayant des licences de type CC-BY. La réponse est (relativement) simple : CC v1 et v2 sont en pleine contradiction et ne prennent pas en compte le droit moral. CC 3.0 semble apporter des aménagements minimaux, et CC 4.0 est la premiere version qui essaie de réellement prendre en compte le droit moral tout en limitant les risques d'abus. Je suis tombé sur ce document ("Le droit moral et les licences Creative Commons") que je n'ai pas encore lu en integralité, qui donne une explication du droit moral et ses applications, ainsi que des pistes pour ajouter des termes permettant de prendre en compte le droit moral dans CC 3.0. Le rapport a l'air sérieux. Je cite ce passage de l'intro car je pense qu'il résume bien le problème lié à l'interprétation de ce qui constitue une atteinte au droit moral:
Pourtant, il s'avère que le droit moral est bien plus flexible que ce que ses détracteurs ne voudraient laisser entendre. Qui dit lien personnel entre l'œuvre et l'auteur, ne dit pas forcément lien exclusif. Le droit moral est fait pour protéger les intérêts moraux du créateur, pas pour freiner la diffusion des contenus culturels. L'intérêt moral du commoneur est de voir son œuvre partagée et réutilisée, pas d'en paralyser la diffusion au moyen de son droit moral.
Le but de cette note sera ainsi non seulement de démontrer que le droit moral est adapté
à l'environnement numérique, mais qu'il est également conciliable avec la Copyleft
Attitude. En effet, l'introduction de certaines clauses dans la licence 3.0 (2) permettra de
résoudre les problèmes qui se posent dans la licence 2.0 (1). Ces deux questions
constitueront le cœur des développements qui suivent.
[3] Je ne vais pas me lancer dans un débat philosophique sur l'utilité de l'art. Oui, d'un point de vue culturel, sociétal, etc., l'art est utile. Mais d'un point de vue "matérialiste" (c'est le mauvais terme, mais je ne sais pas bien comment l'exprimer), l'art n'a pas d'utilité "directe" et ne produit "rien" directement.
L'exemple typique est celui où un auteur a écrit un roman, et la version imprimée n'est finalement pas a son gout, soit parce qu'il ne veut plus que son livre paraisse, ou bien parce qu'il veut qu'une partie de son livre soit changé, mais il a dit "OK" trop tôt. ↩
Et désolé, j'ai des doutes sur le fait que l'auteur puisse empêcher une version porno facilement (si c'est bien fait, c'est à dire suffisamment clair que l'auteur original n'y est pour rien, le droit un moral a des limites).
C'est pour ça que j'ai mentionné les parodies porno de Tintin : le truc est clairement pas de l'art libre, mais il y a eu procès quand même (et le procès a été perdu), car le juge a décidé qu'il était très clair qu'il s'agissait d'une parodie et que ça ne pouvait pas être confondu avec le matériel original1. Le droit moral a très clairement des limites (et c'est tant mieux).
Et justement, je ne dis pas que David Revoy pourra facilement porter plainte, mais s'il estime que quelque chose ternit réellement sa réputation à cause d'une association mal placée avec une dérivation de son travail, alors il pourra toujours porter plainte en invoquant le droit moral. Pas dit qu'il gagne, mais il aura au moins un recours.
Il faut aussi noter que ce sont des ayants droits qui avaient porté plainte; si ça avait été RG, je ne sais pas si la décision de justice aurait été la même. ↩
Posté par lasher .
En réponse au journal Pepper et Carrot.
Évalué à 5.
Dernière modification le 19 septembre 2016 à 21:07.
Cf. ma citation de Wikipedia: aux US, le droit moral ne s'applique pas. En France (et dans la plupart des pays européens et d'Asie), si.
Si on ajoute le fameux 1er amendement de la constitution US, les gens de la fondation Apache n'intenteront sans doute jamais de procès.
Enfin, les logiciels issus de chez Apache sont des utilitaires, qui servent toutes les opinions. Le contenu est complètement décorrélé des moyens techniques qui permettent de l'afficher.
[^] # Re: undefined behaviour
Posté par lasher . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 3.
Je suis globalement d'accord avec ce que tu racontes.
Cependant lorsque tu dis
C'est justement là où une gestion de type
xmalloc
est utile non ? Comme ça tu as au moins une idée d'où tu t'es planté, etc. D'ailleurs c'est peut-être là où une implémentation utilisant des macros peut s'avérer utile. Quelque chose du genre:Enfin, de façon générale, la norme dit que malloc peut renvoyer
NULL
, et donc si on veut faire du code portable, il ne faut pas s'appuyer sur ce que fait Linux seulement. Même si on ne veut être « que » portable POSIX, ce n'est pas raisonnable. Ça ne veut pas dire forcément se faire chier avec une gestion complexe des erreurs, mais dans le cas de prototypes/dév rapide que tu évoques, le code ci-dessus me semble amplement suffisant (et tu peux l'inclure dans un header de typeutil.h
et puis c'est marre), mais il reste utile à des fins de debug (note que je sais que tu n'as pas dit que c'était inutile, mais j'étends un peu ta réponse avec mon expérience :)).[^] # Re: undefined behaviour
Posté par lasher . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 3.
Sauf qu'en fait non,
malloc
appellebrk
pour les allocs mémoire de moins d'une page, mais il appellerammap
si ça dépasse la taille d'une page. Donc tout dépend du type d'allocation mémoire dont on cause.Oui et non. Il existe des softs qui se proposent de « surcharger » les allocations mémoire (par exemple un ancien collègue qui écrivait une bibliothèque de threads pour du calcul haute performance). Mon collègue utilisait les fonctions de « surcharge » de malloc pour rajouter des comportements spécifiques au moment de l'allocation mémoire. Dans ce cas on tombe sur des trucs rigolos, du genre tout un tas de logiciels GNU qui allouent presque tout l'espace mémoire adressable dans le processus car ils tablent sur l'allocation optimiste de Linux (en l'occurrence, c'est arrivé avec
sort(1)
). Du coup dans l'allocateur « normal » de Linux,sort
te trie correctement les chaînes de caractères sans segfault car seules les pages réellement utilisées sont allouées par le système. Mais avec l'allocateur de mon collègue, tout à coup on avait desabort()
et segfaults parce qu'il s'assurait que la mémoire était réellement allouée en initialisant au moins un octet pour chaque page théoriquement allouée1.Tout un tas de softs avec des objectifs de performance proposent leurs propres ajouts (si ce n'est leur propre allocateur) aux mécanismes de gestion de mémoire de l'OS (SGBD, environnement d'exécution multithreadés, etc.).
en partie pour garantir autant d'allocation de pages mémoires physiquement contiguës que possible. ↩
[^] # Re: Supprimer les notes sur les commentaires
Posté par lasher . En réponse au sondage Comment vous inciter à contribuer plus souvent à LinuxFr.org ?. Évalué à 8.
Je navigue à -42 → je me fiche a priori de la note si le fil de discussion m'intéresse. Par contre, lorsque je suis pressé, lorsque ça « commence mal », etc., oui, voir une note à -10, ça va m'aider à passer au fil/sous-fil suivant.
Ensuite, en ce qui concernent les gens qui se plaignent de leur note négative : à part les fâcheux coincés à -5 ou -10, justement, et qui ne sont franchement pas nombreux, je n'en vois pas beaucoup qui se plaignent. Le seul cas malheureux (et pathologique sur un site de sur le libre) c'est celui de PasBillPasGates, qui avait un score négatif pour des raisons idéologiques/religieuses, bien plus que pour des raisons de pertinence (ça ne veut pas dire qu'il n'est jamais de mauvaise foi, ou jamais agressif, etc., mais grosso modo je le trouve dans la moyenne+).
Les autres, y compris ceux qui bossent sur des technos propriétaires au moins en partie (Zenitram, Groumly, etc.), et qui en plus sont agressifs (au moins de temps en temps), ont des notes qui malgré tout ce qu'on peut leur reprocher, sont globalement positives.
Du coup, le système de notation sert principalement (pour moi) à identifier les fâcheux. J'aime bien l'idée avancée par quelqu'un d'autre de peut-être permettre d'associer plusieurs tags à quelque chose de « positif », et idem pour le « négatif », genre « pertinent / inutile » (œuf corse), mais aussi « insultant, ou « troll » (qui peut être pertinent d'un point de vue discussion, mais qui, clairement, argumente juste pour le plaisir d'argumenter et contredire, sans vraiment croire à ce qu'il raconte), et j'en oublie sans doute du côté « + » et du côté « - ». Ça ne changerait pas la façon de modifier le karma, mais ça permettrait p'tet d'identifier plus facilement un troll (qui sait très bien comment fonctionne le site) d'un nouveau (qui ne sait pas encore bien comment se comporter en termes de ton).
Et enfin, je suis encore et toujours pour la possibilité de plonker par personne. Si tu veux retirer le système de notes, il faut quelque chose pour contrebalancer. Un système de plonkage dispo nativement permettrait aussi aux admins de voir si une personne est régulièrement ignorée (ou ignorée en masse). Si on couple le plonk à une raison (« troll », « autre: il m'énerve », « spam », etc.), y'a p'tet même moyen d'aider au ménage sur le site et faire la différence entre des gens qui ne se supportent pas mais respectent les conditions d'utilisation du site, et ceux qui abusent du système.
[^] # Re: quel salaire
Posté par lasher . En réponse au journal Dans la peau d’un entrepreneur du libre – Les choix techniques. Évalué à 2.
Il y a deux choses : travailler avec des gens qui sont bons techniquement et avec qui tu t'entends bien (et sont parfois des amis); et recommander des amis. Le premier cas est facile : si tout le monde bosse comme il faut, y'a pas vraiment de tensions (exceptées celles des deadlines, etc., ce qui arrive partout). Le deuxième cas est plus compliqué.
Le bouche à oreille marche très bien, à condition d'être honnête. Que ce soit fait sur LinkedIn ou simplement dans des conversations, ça n'est pas très important.
Ami, collègue, ou étudiant, je dis toujours la même chose si on me demande d'écrire une recommandation : « Je ne mentirai pas. » Toutes mes recommandations sont « sincères », ce qui non seulement est bénéfique pour tout le monde (ma connaissance/mon ami(e), l'employeur, mais aussi moi-même), mais en plus ça fait plaisir au candidat de voir quelqu'un écrire quelque chose de positif à son égard. Et j'attends la même chose en retour.
J'ai déjà dit à quelqu'un dont j'étais le « mentor » que je lui écrirai une lettre de recommandation puisqu'il me demandait, mais que je ne cacherai pas sous le tapis ce qui ne va pas (en l'occurrence, le mec est excellent techniquement, mais il est vraiment difficile de travailler avec lui d'un point de vue social). Évidemment, je n'aurais pas été « brutal » dans ma façon de le dire, mais j'aurais indiqué clairement qu'il lui fallait travailler sur son côté social. Il l'a mal pris et m'a demandé d'oublier. Tant pis1.
Bref : le fait d'être pote n'est pas le problème. C'est le fait de recommander des gens pour un poste parce que ce sont des potes, indépendamment de leur niveau en technique, qui peut être problématique.
Il a été embauché dans un gros labo aux US en tant qu'ingé de recherches. Je connais bien les gens avec qui il travaille, et le résultat est ce que j'attendais : il est toujours excellent techniquement, mais il est assez difficile de travailler avec lui. De ce que me disent les amis qui travaillent dans la même équipe que lui, ça s'améliore tout doucement. ↩
[^] # Re: Des tests de distros ?
Posté par lasher . En réponse au sondage Comment vous inciter à contribuer plus souvent à LinuxFr.org ?. Évalué à 9.
Écrire avec un bon style (facilement lisible, pas trop pédant, mais pas trop simplificateur non plus, etc.), ça s'apprend, et je ne connais personne qui soit né avec (juste que certains écrivent depuis très longtemps/jeune). Il est plus facile pour moi d'écrire un article (ou un commentaire, ahem) de 10 000 signes à la volée, maintenant que j'ai écrit plusieurs dizaines d'articles scientifiques, fait des commentaires constructifs de bien plus, etc.
Plus tu écris, plus ton style va évoluer dans un certain sens. Si en plus tu tiens compte des commentaires et critiques (parfois dures, mais si elles sont constructive ça vaut le coup quand même), alors ton style va vraiment s'améliorer. Du coup, à supposer que tu ne sois pas trop « territorial », la tribune de rédaction peut être un très bon endroit pour apprendre à structurer tes écrits et même voir comment reformuler des passages peu clairs.
[^] # Re: Jai: Language for game programmming
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 5. Dernière modification le 11 octobre 2016 à 22:21.
Bon, je me suis demandé s'il fallait que je pinaille, JUSTEMENT à cause de ça. :) J'ai raccourci, mais si tu veux, de même que OCaml est connu pour être un langage fonctionnel, il est lui aussi multi-paradigme. C'est juste que le paradigme impératif et objet me semble quand même plus secondaire quand on discute de ce langage. Même chose pour C++ : oui, il permet la prog générique, procédurale, objet, etc. Mais superficiellement, C++ est quand même largement associé à la programmation objet.
EDIT: Tiens d'ailleurs, lorsque je dis que C++ est un langage orienté objet, je ne dis pas qu'il n'est que cela, ET TOC.
(j'aime pas avoir tort, ça se voit ?)
[^] # Re: Jai: Language for game programmming
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 7. Dernière modification le 11 octobre 2016 à 18:28.
Le langage de templates (qui est Turing complet, d'ailleurs), est un langage fonctionnel (affectation unique, etc.). C++ lui-même, en tant que langage n'est pas fonctionnel, mais offre quelques mécanismes permettant d'écrire des programmes dans un style fonctionnel. C'est quand même différent d'un langage fonctionnel par nature.
Lorsque je dis que C++ est un langage orienté objet, c'est parce qu'il offre des mécanismes qui me permettent directement d'exprimer un programme selon les concepts de la POO : niveau d'encapsulation (privé, protégé, public, etc.), héritage, groupement des données et des messages (méthodes/fonctions) qui leur sont associés, etc.
De même, lorsque je dis qu'un langage est fonctionnel, je m'attends à ce que les fonctions soient des objets de première classe, mais aussi que je puisse naturellement compter sur une expression de mes programmes en termes de valeurs (« immutable ») et pas de variables ( « mutables », et qui offrent donc des effets de bord), d'être capable d'exprimer des fonctions imbriquées dans d'autres fonctions si j'en ai le besoin, etc. La notion de récursivité (du code, des types, etc.) est inhérente au paradigme fonctionnel. Ce n'est pas le cas en C++. Oui, on peut jouer avec
const
,boost::function
(et maintenant les lambdas), et même avec de la méta-programmation pour contraindre le système et forcer un style fonctionnel, mais ça ne fait pas de C++ un langage fonctionnel. De même que ce n'est pas parce qu'on peut programmer dans un style objet en C que ça en fait un langage orienté objet.[^] # Re: Jai: Language for game programmming
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 4.
Je pense que tu as tort. D'une part, il existe un lambda-calcul typé, dont se servent les langages fonctionnels (et LISP, par exemple, est fortement typé, mais le typage est dynamique). D'autre part, je ne vois pas ce qui te fait dire que l'exemple donné par Kantien est faiblement typé. Simplement l'application de l'opération
(+=)
sera adaptée au type contenu dans un élément spécifique du tableau, mais le typage est statique et fort en OCaml.[^] # Re: Jai: Language for game programmming
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 7.
Premièrement je suis d'accord pour dire que malgré toutes ses améliorations, C++ ne prend pas réellement de fonctions comme objets de première classe. Les lambdas et autres types d'inférences limités sont extrêmement bienvenus, mais on reste dans le domaine d'un langage impératif (avec désormais plus d'opportunités pour avoir un style fonctionnel). Je renvoie à l'article de John Carmack pour une exploration de style fonctionnel en C++. Ceci étant dit :
Histoire de troller un chouïa : étant donné que Church et son thésard, un inconnu du nom de Alan… Alan… Alan T-quelque chose, sont les deux piliers qui ont permis de créer les fondations de l'informatique théorique telle qu'on la connaît, j'ai envie de dire que crâner à propos du lambda calcul « créé en 1936 »1, alors que les principes de la machine universelle de Turing, qui sont certes arrivés plus tard (ce qui est somme toute logique), ont eux été mis en œuvre dès les années 40, c'est quand même rigolo. :-)
Ensuite, juste pour dire, le bouquin de B. Pierce sur les types montre qu'il est parfaitement possible d'implémenter un système de typage fort à base de lambda-calcul (il propose un mini-Java comme exemple, et un mini-ML aussi).
Je pense que l'ajout de trucs types lambdas à Java et C++ vient surtout du fait que lorsque tu as un écosystème populaire, il faut d'abord composer avec ce que les utilisateurs veulent (et fabricants de compilateurs proposent). Jusqu'au début des années 90, les compilateurs de production étaient franchement médiocres en termes d'optimisation (à quelques exceptions près, en particulier pour les compilateurs Fortran à destination de machines vectorielles, genre les Cray-I, etc.). Du coup, avec un langage procédural genre C, on pouvait au moins donner une forme au code qui permettait d'optimiser l'utilisation des registres, et d'être proche de la machine. Pendant très longtemps, les langages de programmation fonctionnelle a été considérée comme inefficaces en termes de performances. Ça commencé à sérieusement changer lorsque les compilateurs ont commencé à proposer des optimisations très agressives, mais même ainsi, les algorithmes (géniaux) qui sont derrière l'inférence de type de ML, et ceux qui gèrent la curryfication par exemple, ont tendance à mener à de la compilation via continuation, ce qui peut être très bien ou terrible en fonction de l'implémentation (y'a un excellent bouquin d'A.Appel sur la compilation de ML avec continuations soit dit en passant). Bref.
Jusqu'à il y a peu, la programmation fonctionnelle était considérée comme un truc d'académicien2. L'un des rares langages procéduraux à avoir intégré des bouts de programmation fonctionnelle était Perl: il est possible de passer des blocs de code et de créer des lambdas, tout un tas de fonctions « built-in » (genre
map
,grep
, etc.) sont directement tirées de CLISP et ses copines, … Mais c'était aussi parce que Perl était à la base optimisé pour le traitement de fichiers textuels, et que les entrées-sorties étaient ce qui était bloquant de toute manière. Donc niveau perf, l'utilisation de fonctions de haut-niveau avec un coût à l'exécution était OK.Quand OCaml, Scala, Haskell, etc., on enfin émergé et commencé à prouver qu'ils pouvaient, eux aussi, proposer des performances raisonnables (pas forcément comparé à C/C++, mais au moins par rapport à Java), tout en proposant une grande puissance d'expression, on a vu Java et C# (par exemple) commencer à se doter d'aspects fonctionnels. Encore une fois, c'est entre autres parce que les développeurs/utilisateurs du langage ont vu ce que pouvaient faire les voisins et ont réclamé ces fonctionnalités.
D'ailleurs je pense que tu parles du lambda-calcul typé; si je me souviens bien, le lambda-calcul non-typé avait été proposé 5 ans auparavant mais ne « servait à rien », d'où le besoin de pousser plus loin. ↩
Il faut aussi dire que c'est un peu la faute des profs. Genre en France quand OCaml était enseigné y'a ~15-20 ans, la façon d'enseigner le truc était très mathématique. On faisait en pratique des maths avec un langage de matheux. Si les profs avaient proposé de faire de la prog en OCaml mais avec un aspect pragmatique (mais en gardant l'aspect fonctionnel) je pense que ça aurait dégoûté beaucoup moins de gens de l'informatique en DEUG. ↩
[^] # Re: Donc pour résumer…
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 2.
D'ailleurs c'est le cas de la plupart des setters/getters, non ?
[^] # Re: Donc pour résumer…
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 8.
LLVM est un projet de recherche pour fournir une infrastructure de compilation modulaire (ils ont eu des sous de la national science foundation, l’équivalent US de l'agence nationale pour la recherche) pour favoriser la recherche et l’expérimentation en compilation. Clang a effectivement été créé ca cause des problèmes de licence et de l'architecture du front-end de GCC (qui lie (liait?) artificiellement le front-end et le back-end pour des raisons plus politiques que techniques). La complexité artificielle liée au maintien de clang-gcc comme front-end a (de ce que j'ai compris) plus contribué a la création de Clang que le front-end de Xcode (apres tout, Xcode n'avait pas forcément beaucoup de mal a utiliser le front-end de GCC avant ça : ils s'en servaient depuis des années…).
Maintenant, Apple a adopté LLVM a cause des problèmes de licence liées a la GPL 3 pour GCC (c'est pour ça que pendant la transition, les OS d'Apple étaient coincés avec GCC 4.2 ou 4.3) d'une part, et le fait que le comité de GCC refusait d'intégrer un moyen d'ajouter des passes d'optimisation depuis l'extérieur (ils ont depuis changé d'avis, entre autres grâce au succès et l'adoption de LLVM/Clang par de plus en plus de monde). L'intégration avec Xcode est une des raisons techniques, ainsi que l'avancement limité pour ObjC dans GCC, mais je ne suis franchement pas convaincu que ça a été la raison principale (la politique/le légal a tendance a avoir un poids plus important dans ces cas-la).
Pour en revenir a mon point initial : Zenitram et Groumly se disputaient a propos du "langage phare" d'Apple (qui change environ tous les 10-15 ans). Entre autres Zenitram ironisait sur le fait que malgré son langage phare, Objective C, et maintenant Swift, Apple continuait le support d'un compilateur pour C et C++. Je ne faisais que rappeler que Apple a en priorité supporté LLVM, qui contient un middle-end et un back-end. Ils ont ensuite rajouté Clang quand d'autres soucis techniques et légaux se sont rajoutés. Sauf que, a la base, Apple a utilisé LLVM pour optimiser ses codes OpenGL (écrits en C), avant de passer au codage du futur iOS, etc. D'autre part, OS X est toujours écrit en C (au moins la partie Darwin), ce qui nécessite un compilateur C. Enfin, Objective C est complètement compatible avec les binaires C sur le même système (par conception). Il se trouve que, tout comme GCC il y a 10-15 ans, Clang est en train de diversifier le nombre de langages qu'il gère--quelque part c'est logique : maintenant que l'infrastructure est la, autant l'utiliser.
[^] # Re: Donc pour résumer…
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 3.
J'ai lu tes commentaires bien après avoir écrit ma réponse (je suis arrivé bien après la bataille ;-)). Ton argumentation m'a convaincu (enfin dans sa majorité).
Ceci dit, de meme que
string
est un conteneur "special" avec des méthodes propres (mais qui conserve une grande partie des fonctions des conteneurs "normaux") je ne vois pas pourquoivector
, qui est très clairement une structure de données faite pour être indexée, ne pourrait pas avoir un jeu de fonctions qui, elles aussi, permettraient de manipuler les données en fonction des indices. Apres tout, c'est déjà ce que fontoperator[]
etvector::at
, non ?Concernant le cas pratique d'utilisation, tu noteras que je n'ai pas dit que j’étais d'accord, mais bien que
J'utilise C++ assez régulièrement, mais dans un contexte particulier qui fait que je n'utilise que des parties très particulières et restreintes du langage (un peu de templates, parfois avec meta-programmation; un peu de POO; et rarement des cas vraiment tordus - meme si ca arrive quand meme).
Bref. Non, je n'ai pas besoin de ce genre de feature dans mon cas d'utilisation (si j'avais fréquemment besoin de supprimer un element a l'indice i dans un vecteur dans le contexte de mon boulot, je me demanderais sans doute si je n'avais pas peut-être mal choisi ma structure de données).
Dans le cas qui nous occupe, un intervenant dit qu'il a besoin de cette operation (et visiblement pour lui c'est un besoin récurrent). Quelqu'un lui répond, et donne une solution qui est quand meme plus compliquée que ce que veut l'intervenant original (mais qui peut sans doute être écrite une fois pour toutes sous forme de fonction template, certes). Et surtout, jusqu'à ton post, personne n'a demandé la fréquence d'utilisation d'une telle fonction (et c'est une question très pertinente). Ma réponse n'était pas une validation du besoin, mais une façon de montrer encore une fois comment lorsque quelqu'un dit "je veux faire X simplement" on lui répond "T'as qu'a écrire f(Z,Y,W) et ca te donnera X". :-)
[^] # Re: Donc pour résumer…
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 5.
A propos du support de C++ par Apple : il faut le voir differemment. Apple supporte le developpement de LLVM, qui n'est pas un compilateur C++. Il se trouve que Clang a aussi obtenu des financements de la part d'Apple entre autres parce qu'ils avaient besoin de compiler de l'OpenGL, et Objective C etant aussi compile nativement vers C, etc.
Bref, le vrai projet soutenu par Apple, c'est LLVM. Clang/Clang++ sont quasiment finances par effet de bord (de ce que j'ai compris--n'hesitez pas a me corriger si je me trompe).
[^] # Re: Donc pour résumer…
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 5.
Techniquement avec la fonctionalite de Co-Array, Fortran 2015 (et meme 2008 je crois) est mieux arme pour faire de la programmation parallele (pas trop concurrente) avec un haut niveau d'abstraction. Ceci etant dit, meme si tu as raison de rappeler que F77 c'est vieux, c'est aussi (avec du F90) ce que j'ai vu le plus souvent utilise dans des labos ET dans des boites qui produisent des outils de simulation numerique (avec des solveurs iteratifs).
[^] # Re: Donc pour résumer…
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 2.
Pourtant, entre les bouquins de Myers et de Sutter/Alexandrescu, y'a de quoi faire niveau bonnes pratiques recommandees et acceptees assez largement.
Ca oui, et tu n'as pas le controle sur l'existant. Le mieux que tu puisses faire, c'est de changer petit a petit le code pour le rendre plus sain a mesure que tu effectues des operations de maintenance dessus. Ca inclut aussi le fait de rajouter
-std=c++14
(ou au moins-std=c++11
) sur la ligne de compilation. Et donc que ta boite a un processus qui le permette.[^] # Re: Donc pour résumer…
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 3.
Bon, je comprends ta defense de C++. En particulier, ses utilisateurs reguliers seront les premiers a rappeler que C++ est concu sur le principe de ne payer que ce qu'on utilise, et je trouve que ca inclut la complexite liee aux features,
Ceci etant dit, ta "solution" n'est pas valable. D'un cote on demande d'avoir dans la bibliotheque standard, une operation
vector::erase_at(size_t idx)
et de l'autre tu reponds qu'il "suffit" de faire des circonvolutions. Si c'est une operation recurrente, et consideree comme utile, il me semblerait pas anormal de l'inclure (avec les precautions habituelles : ce genre d'operation sur un vecteur a une complexite O(n) etc).[^] # Re: Modération laxiste
Posté par lasher . En réponse au sondage La modération a posteriori des contenus et commentaires problématiques sur LinuxFr.org. Évalué à 5.
Je me demande vraiment où tu vis pour subir une pression sociale si importante. J'ai pas mal de connaissances qu'on pourrait qualifier de « bobos ». Seule une très large minorité est végétarienne/vegan/végétalienne (les deux derniers sont encore plus en minorité).
J'avoue que je ne pige vraiment pas. Soyons clairs : je connais des végétariens gonflants et pontifiants, qui se posent en autorité morale et affichent une condescendance crasse. OK. En fait, ce sont surtout les vegans/végétaliens qui agissent ainsi parmi ceux que je connais.
Maintenant, j'ai une amie qui a longtemps mangé de la viande, et qui est devenue végétarienne par conviction politique — oui, nous parlons de la maltraitance animale dans les abattoirs1. Elle cuisine de la viande pour son fils et son mari, ses invités, etc.; ne fait aucun prosélytisme; n'entre qu'à reculons dans un débat sur ce mode alimentaire; etc. Elle a fait ce choix pour elle, et ne l'impose à personne. La plupart des végétariens que je connais sont comme ça (pas les vegans ni les végétaliens par contre, qui eux ont une attitude plus prosélyte). De même qu'un ami religieux et qui mange kasher dans la mesure du possible demande souvent dans les restaurants s'ils ont des options végétariennes — il ne veut pas empêcher les gens d'aller manger dans un resto pas kasher, mais il lui faut aussi une alternative (et il se trouve que les plats végétariens fonctionnent bien pour ce genre de compromis).
Bref.
À noter que d'une part, cette maltraitance est avérée, prouvée, etc. dans la plupart des machins qui produisent de la viande en quantité « industrielle ». Et que d'autre part, on peut vouloir manger de la viande en limitant au minimum la souffrance animale (qui est je pense inévitable). En d'autres termes : je suis prêt à payer plus cher ma viande si j'ai des garanties sur la façon dont les animaux ont été traités. Ça va sans doute réduire ma consommation globale, mais au final c'est p'tet pas plus mal (on pourra réutiliser les champs pour nourrir les hommes par exemple). ↩
[^] # Re: Modération laxiste
Posté par lasher . En réponse au sondage La modération a posteriori des contenus et commentaires problématiques sur LinuxFr.org. Évalué à 3.
Le côté « signalons aux modérateurs et laissons faire » est justement ce que je critique vers la fin (possibilité d'abus du signal, et de signalement malicieux). :-) C'est pour ça que j'aime l'idée d'une kill list. Les modérateurs n'auraient à se soucier que des contenus manifestement illégaux, et les utilisateurs pourraient filtrer le contenu par contributeur.
Concernant l'aspect « liberté d'expression » : j'aime pas la police de la pensée non plus. Mais il y a une marge entre signaler un commentaire « abusif » (insultant, raciste, etc.), et signaler un commentaire qui ne plaît pas. Vivant depuis plus de 6 ans dans un pays où la liberté d'expression est sacrée (quelque part malgré les lois en vigueur, qui existent, mais que personne n'ose appliquer), et voyant le résultat en ce moment, je t'avoue que je ne suis pas contre restreindre un minimum la liberté de parole des fâcheux.
Évidemment, il faut fournir un encadrement strict de tout ça, et rendre la chose suffisamment contraignante pour que ça ne puisse pas donner lieu à des « délations » systématiques. Un peu comme le signal d'arrêt d'urgence dans les transports en commun : si on te choppe à l'utiliser pour « rien », alors si on te choppe tu auras des soucis. Dans le cas d'un bouton « signaler un commentaire abusif », on pourrait imaginer qu'il faut obligatoirement renseigner un champ pour expliquer en quoi le commentaire est abusif, et l'info serait liée à l'utilisateur qui a fait le signalement. Bref, pas de signalement « anonyme ». Ça permettrait aussi d'ignorer automatiquement les signalements abusifs venant d'utilisateurs cinglés ou robotisés.
Après, je reste persuadé que la liste « individuelle » pour ignorer les contributeurs énervants/qui abusent de leur droit d'expression est plus efficace et moins invasive pour tout le monde1.
La méthode ne passe pas vraiment à l'échelle, cf. Twitter, mais LinuxFR n'est pas un si gros site que nous aurions besoin de nous en préoccuper. :) ↩
[^] # Re: Modération laxiste
Posté par lasher . En réponse au sondage La modération a posteriori des contenus et commentaires problématiques sur LinuxFr.org. Évalué à 5.
Je pense que je me suis mal exprimé.
Premièrement je suis d'accord avec ce que tu dis. La différence étant bien sûr que la raison pour laquelle on va porter plainte pour les situations IRL (je pense) est qu'on a peur pour son intégrité physique. Mais en ligne, porter plainte pour harcèlement moral est plus dur, pour plusieurs raisons :
C'est justement le problème, non ? Ils nous pompent déjà notre énergie avec leur comportement négatif (et le besoin qui nous démange de leur répondre). Et on ne parle pas de gens qui ont un score principalement positif avec quelques fois des messages négatifs hein. Non, en majorité, ils ont en plus un score négatif permanent.
Donc il faut des outils pour ignorer plus efficacement. Ça serait déjà un bon point de départ.
[^] # Re: Modération laxiste
Posté par lasher . En réponse au sondage La modération a posteriori des contenus et commentaires problématiques sur LinuxFr.org. Évalué à 2.
Il y a une différence entre se faire insulter une fois de temps en temps1, et recevoir des commentaires régulièrement, par la même personne, contenant des insultes (directs ou indirectes). Je sais que ça fait désuet de parler de Netiquette, mais c'est pas pour rien que le terme avait été proposé pour les newsgroups à l'époque.
Je vais faire un parallèle bizarre entre la liberté d'expression et les systèmes distribués.
Dans un système distribué, il y a la notion de processus byzantin. Beaucoup d'algorithmes expliquent que le système sera stable tant qu'il n'y aura pas plus que X processus byzantins (càd que l'information pourra continuer de circuler et être modifiée selon le protocole établi malgré les interférences).
Si on avait une liberté d'expression absolue, il serait tout à fait possible d'avoir un groupe de gens avec un jeu d'opinions largement minoritaires, qui inonderait le reste du site. Or, c'est clairement quelque chose que personne ne veut. Du coup, le système de notation permet déjà de limiter leurs actions (capacité à publier un journal de première/seconde page, etc.). Il faut aussi ajouter la modération pour raisons légales. Bon. Tout ça, c'est pour limiter le nombre de commentateurs « byzantins » et faire que LinuxFR reste un endroit convivial pour discuter.
La question est donc de savoir si c'est suffisant. Que faire lorsque quelqu'un « rentre dans les clous » des règles d'utilisation du site, mais s'acharne peut-être un peu trop sur certains utilisateurs — par exemple en répondant systématiquement ou très souvent aux mêmes utilisateurs, avec un ton condescendant, voire des insultes à peine voilées (ou pas du tout) ? Ou bien, si sur un sujet donné, il existe un fâcheux qui répond presque à tout le monde avec sa vision ultra-minoritaire et clivante, avec le même ton insultant/condescendant?
Il n'est pas dit que la note permanente à -10 soit suffisante. Mais en même temps, oui, chacun a un seuil de tolérance différent. Dire qu'il « suffit » d'ignorer n'est pas suffisant. Si c'était facile, tout le monde le ferait.
C'est là qu'un système de plonkage serait sans doute utile. Tu fais ta propre modération en dehors de ce qui est requis d'être fait par les modérateurs. En terme d'overhead, l'impact sur le système global devrait être réduit, et le code lui-même ne devrait pas être trop gros, même si je sous-estime sans doute le temps que ça mettrait à correctement l'implémenter (rajouter une table de plonkage, un moyen dans l'interface de LinuxFR pour rajouter un utilisateur à la liste, et une méthode de rendu qui saute certains commentaires si leur ID se trouve dans la table de plonkage).
Et encore, lorsque dans une discussion houleuse un certain pote me traite d'imbécile, c'est plus indicateur qu'il est à bout que lorsqu'il me traite de con. ↩
[^] # Re: Modération laxiste
Posté par lasher . En réponse au sondage La modération a posteriori des contenus et commentaires problématiques sur LinuxFr.org. Évalué à 3.
Je vois deux problèmes à ça :
Donc il faut un moyen de modération. Les modérateurs de LinuxFR ont déjà une grosse charge de travail pour s'assurer que les commentaires de font pas tomber le site dans l'illégalité. Bon.
Je pense que le meilleur outil serait une kill list (proposée aussi par d'autres dans ce sondage) pour plonker les fâcheux, car ça, ça permettrait d'effectivement ignorer quelqu'un qui abuse de son droit de parole, tout en laissant la modération par note indiquer aux ± nouveaux utilisateurs que telle personne est sans doute un gros troll.
[^] # Re: Modération laxiste
Posté par lasher . En réponse au sondage La modération a posteriori des contenus et commentaires problématiques sur LinuxFr.org. Évalué à 4.
C'est déjà ce qui est souvent fait (avec une réponse d'un modérateur aux commentaires insultants/à la limite).
Donc en gros ce que tu veux, c'est un bouton "signaler un abus" sur les messages, et ensuite laisser les modérateurs décider de la gravité du truc (avec potentiel ban à la clef si récidive). J'ai bien compris ? Perso je ne suis pas contre, mais je me demande quel boulot supplémentaire pour les modérateurs ça représenterait si on rendait le signalement « trop » facile (sans parler des imbéciles qui se serviraient de ce bouton pour faire chier le monde).
[^] # Re: Ce qui n'a d'ailleurs pas plu à tout le monde
Posté par lasher . En réponse au journal Pepper et Carrot. Évalué à 3.
Bon précaution sans doute inutile mais voila : tout ce que je raconte contient implicitement la mention "je ne suis pas juriste". Tu le sais déjà, mais c'est pour les autres. :)
Alors, même si je sais que le logiciel est soumis au droit d'auteur en France, je ne sais pas si la notion de droit moral peut lui être appliquée en premier lieu. La raison étant, comme dit par plein de gens, que le logiciel est intrinsèquement utilitaire : le logiciel n'est pas une fin en soi, mais un moyen d'atteindre la fin.
Dans l'exemple que tu donnes, tu proposes une hypothèse où un logiciel libre (disons un système à base de noyau Linux) est connu pour majoritairement être utilise pour faire tourner des sites pornos. Je ne vois pas en quoi ca enfreindrait un quelconque droit moral. De même que si je crée une peinture et que je la vends a un pornographe sans savoir qu'il vend du porno, je ne peux pas ensuite demander a ce qu'il restitue l'oeuvre1. Par contre de ce que j'ai compris, l'auteur peut demander à ce qu'une oeuvre qu'il a créée ne soit pas exposée/diffusée. Dans le cas où l'auteur aurait reçu une avance ou de l'argent contre la production de l'oeuvre, il doit alors indemniser le commanditaire2.
Par contre, si un/des sites pornos (par exemple) affichaient fièrement "Powered by Linux", et donc qu'il y ait une volonté d'associer explicitement Linux et le porno, là p'tet qu'il y aurait moyen de porter plainte. En l'occurrence je ne suis pas certain que le logiciel puisse bénéficier du droit moral de la même manière que les autres œuvres de l'esprit, mais je suppose que c'est en partie pour cela que la marque "Linux" a été déposée : pour éviter que des petits plaisantins (1) Puisse la déposer eux-mêmes, et (2) Pour garder un certain contrôle sur la façon dont on associe/communique en parlant de Linux.
Je le dis dans un paragraphe précédent et dans d'autres posts de ce journal, mais il me semble que l'aspect utilitaire du logiciel contraste fortement avec l'aspect "inutile" des œuvres d'art[3]. Même dans une oeuvre qui emploierait un logiciel pour être réalisée le code du logiciel lui-même sert à réaliser l'oeuvre, il n'est pas l'oeuvre en lui-même (en ce sens, je pense que programmer/coder tient de l'artisanat et pas de l'art au sens "noble" du terme).
Pour ce qui est de la notion de dénaturer une oeuvre et de la notion de réputation, j'ai fini par googler beaucoup, et tomber sur quelques liens intéressants :
Du coup je me suis demandée comment Creative Commons pouvait jongler avec la notion de droit moral (qui en fait existe partiellement aux USA, mais pas de la meme manière que la plupart des pays) tout en ayant des licences de type CC-BY. La réponse est (relativement) simple : CC v1 et v2 sont en pleine contradiction et ne prennent pas en compte le droit moral. CC 3.0 semble apporter des aménagements minimaux, et CC 4.0 est la premiere version qui essaie de réellement prendre en compte le droit moral tout en limitant les risques d'abus. Je suis tombé sur ce document ("Le droit moral et les licences Creative Commons") que je n'ai pas encore lu en integralité, qui donne une explication du droit moral et ses applications, ainsi que des pistes pour ajouter des termes permettant de prendre en compte le droit moral dans CC 3.0. Le rapport a l'air sérieux. Je cite ce passage de l'intro car je pense qu'il résume bien le problème lié à l'interprétation de ce qui constitue une atteinte au droit moral:
Il y a aussi le wiki contenant les drafts pour CC 4.0, qui adresse le problème du droit moral. Le lien mène à un fil de discussion sur la ML de CC 4.0, et qui reflete pas mal la conversation que nous avons en ce moment. Il y a des arguments intéressants des deux cotes (selon moi). Le fil est court (peut-etre 4-5 emails en tout).
[3] Je ne vais pas me lancer dans un débat philosophique sur l'utilité de l'art. Oui, d'un point de vue culturel, sociétal, etc., l'art est utile. Mais d'un point de vue "matérialiste" (c'est le mauvais terme, mais je ne sais pas bien comment l'exprimer), l'art n'a pas d'utilité "directe" et ne produit "rien" directement.
Enfin je ne crois pas. ↩
L'exemple typique est celui où un auteur a écrit un roman, et la version imprimée n'est finalement pas a son gout, soit parce qu'il ne veut plus que son livre paraisse, ou bien parce qu'il veut qu'une partie de son livre soit changé, mais il a dit "OK" trop tôt. ↩
[^] # Re: Ce qui n'a d'ailleurs pas plu à tout le monde
Posté par lasher . En réponse au journal Pepper et Carrot. Évalué à 2.
C'est pour ça que j'ai mentionné les parodies porno de Tintin : le truc est clairement pas de l'art libre, mais il y a eu procès quand même (et le procès a été perdu), car le juge a décidé qu'il était très clair qu'il s'agissait d'une parodie et que ça ne pouvait pas être confondu avec le matériel original1. Le droit moral a très clairement des limites (et c'est tant mieux).
Et justement, je ne dis pas que David Revoy pourra facilement porter plainte, mais s'il estime que quelque chose ternit réellement sa réputation à cause d'une association mal placée avec une dérivation de son travail, alors il pourra toujours porter plainte en invoquant le droit moral. Pas dit qu'il gagne, mais il aura au moins un recours.
Il faut aussi noter que ce sont des ayants droits qui avaient porté plainte; si ça avait été RG, je ne sais pas si la décision de justice aurait été la même. ↩
[^] # Re: Ce qui n'a d'ailleurs pas plu à tout le monde
Posté par lasher . En réponse au journal Pepper et Carrot. Évalué à 5. Dernière modification le 19 septembre 2016 à 21:07.
Cf. ma citation de Wikipedia: aux US, le droit moral ne s'applique pas. En France (et dans la plupart des pays européens et d'Asie), si.
Si on ajoute le fameux 1er amendement de la constitution US, les gens de la fondation Apache n'intenteront sans doute jamais de procès.
Enfin, les logiciels issus de chez Apache sont des utilitaires, qui servent toutes les opinions. Le contenu est complètement décorrélé des moyens techniques qui permettent de l'afficher.