GNU LibreJS est une extension des navigateurs Firefox et dérivés qui permet de n'exécuter que le code javascript libre intégré aux pages web que l'on visite. Une fois cette extension installée, seuls les javascripts explicitement marqués comme libres dans le code source des pages web sont chargés par le navigateur.
LibreJS apporte un minimum d'intelligence dans le blocage, il ne bloque pas notamment les scripts considérés comme triviaux, c'est-à-dire qui ne contiennent ni requêtes Ajax, ni appels dynamiques à scripts externes, ni constructions difficiles à analyser sans interpréter le programme (par exemple : utilisation de la fonction eval, appel à des méthodes via la notation crochets, etc.). La version 4.7 apporte une évolution majeure : LibreJS detecte maintenat 256 différentes versions de bibliothèques libres populaires comme jQuery, MooTools et Prototype : il compare les hash SHA1 des fichiers upstream avec ceux proposés par le site web, et ne bloque pas les copies verbatim de ceux-ci.
L'objectif de cette extension est de répondre au « piège javascript » dénoncé par Richard Stallman :
JavaScript (dont le nom officiel est ECMAscript, mais peu de gens utilisent ce nom) était autrefois utilisé pour faire des effets frivoles, certes jolis mais non essentiels à la navigation et aux fonctionnalités d'affichage. Il était acceptable de les considérer comme de pures extensions du langage de balises HTML, plutôt que comme de vrais logiciels ; ils ne représentaient pas un problème significatif.
Beaucoup de sites utilisent encore JavaScript de cette façon, mais certains l'utilisent pour des programmes conséquents réalisant des travaux importants. Par exemple, Google Docs télécharge sur votre machine un programme JavaScript qui pèse un demi megaoctet, dans une forme compactée que nous pourrions appeler Obscurscript car il n'y a aucun commentaire et très peu d'espaces, et les noms de méthodes ne font qu'une lettre. Le code source d'un programme est la forme préférée pour le modifier ; le code compacté n'est pas du code source, et le vrai code source n'est pas disponible pour l'utilisateur.
[…]
Un fort mouvement s'est développé qui appelle les sites web à ne communiquer qu'avec des formats et des protocoles libres (certains disent « ouverts ») ; c'est-à-dire, dont la documentation est publiée et que chacun est libre de mettre en œuvre. Avec la présence de programmes dans les pages web, ce critère est nécessaire mais pas suffisant. JavaScript lui-même, en tant que format, est libre : utiliser JavaScript dans un site web n'est pas nécessairement mauvais. Cependant, comme nous l'avons vu plus haut, ce n'est pas nécessairement bon. Quand le site transmet un programme à l'utilisateur, il n'est pas suffisant que le programme soit écrit dans un langage documenté et libre d'entraves ; ce programme doit être également libre. « Ne transmettre que des programmes libres aux utilisateurs », cette règle doit faire partie des critères définissant un comportement correct des sites web.
La convention proposée par le projet GNU pour identifier les javascripts libres est simple. La licence libre doit être déclarée en commentaire entre des lignes commençant par "@licstart" et "@licend", et les éventuelles références au code source doivent être précédées par un commentaire commençant par "@source". Des détails et exemples sont donnés dans le guide Setting Your JavaScript Free.
Aller plus loin
- GNU LibreJS (170 clics)
- Le piège javascript (205 clics)
- Setting Your JavaScript Free (66 clics)
- GNU LibreJS Manual (22 clics)
# à quand l'extension, pour détecter les sites hébergés sur des serveurs non libres ....
Posté par mum1989 . Évalué à 7.
La prochaine étape ? …
[^] # Re: à quand l'extension, pour détecter les sites hébergés sur des serveurs non libres ....
Posté par Couz . Évalué à 10.
On les repèrerait grâce à leur uptime ?
[^] # Re: à quand l'extension, pour détecter les sites hébergés sur des serveurs non libres ....
Posté par Fabimaru (site web personnel) . Évalué à 6.
Faudrait déjà passer le routeur du FAI non-libre.
[^] # Re: à quand l'extension, pour détecter les sites hébergés sur des serveurs non libres ....
Posté par Denis Dordoigne . Évalué à 4.
RMS évoque le sujet dans le second lien :
Membre de l'april, et vous ? https://april.org/adherer -- Infini, l'internet libre et non commercial : https://infini.fr
[^] # Re: à quand l'extension, pour détecter les sites hébergés sur des serveurs non libres ....
Posté par Maclag . Évalué à 8.
La prochaine étape sera la détection automatique des licences des scripts par parsing du code, et si ça va pas, en analysant les mots-clés pour retrouver le projet sur le web, en extraire la licence, analyser la licence, et utiliser un algorithme d'intelligence artificielle pour vérifier si elle est Libre au cas où elle ne serait pas dans la base.
Un addon très prometteur, même s'il pèse 14Go et que la page d'accueil de linuxfr s'affiche en 3min.
-------------->[ ]
# Plus léger ?
Posté par Renault (site web personnel) . Évalué à 5.
J'ai voulu testé l'extension et rien que pour linuxfr.org, ça fait ramer un peu le système car il m'affiche un bandeau à droite qui est je trouve assez inutile et avec des effets kikoos dont on pourrait se passer.
Je n'ai pas trouvé de moyen de le configurer dans le doc ni dans Firefox lui même, il y a-t-il moyen de changer ce comportement ?
[^] # Re: Plus léger ?
Posté par lrbabe . Évalué à 0.
C'est certain que si on veut un navigateur léger, c'est le genre d'addon à éviter.
[^] # Re: Plus léger ?
Posté par Buf (Mastodon) . Évalué à 7.
Si on veut un web utilisable, c'est à éviter aussi…
Franchement, il y a des gens qui ont réellement envie d'utiliser ce truc ? Il me semble qu'on atteint des sommets dans le ridicule là…
[^] # Re: Plus léger ?
Posté par Zylabon . Évalué à 7.
Si tu trouve ridicule le fait de pas vouloir exécuter du code non libre sur sa machine, t'es sur un site de charlots.
Please do not feed the trolls
[^] # Re: Plus léger ?
Posté par mdlh . Évalué à 4.
Personnellement, j'interprète son commentaire différemment. Il critique le moyen (ce filtre ignoble) et pas nécessairement le but. Et pour pas mal de personnes, un script peut être non-libre, mais si il est interopérable (genre pas d'obligations d'utiliser un navigateur particulier), c'est déjà très bien. Mais bon, un sondage pourrait aider à établir le réalité
[^] # Re: Plus léger ?
Posté par Buf (Mastodon) . Évalué à 3.
Oui, c'est exactement ça.
Même si le but est légitime, c'est la façon dont c'est fait qui est absolument stupide, parce que ça va bloquer indifféremment :
En clair, à part ralentir le browser et détruire le fonctionnement de pratiquement tout site qui utilise js, cette extension ne sert à rien.
[^] # Re: Plus léger ?
Posté par Maz (site web personnel) . Évalué à 4.
Et pour ceux qui ne veulent pas exécuter du JS non libre, tu proposes quoi à la place ?
Au moins, ils proposent une solution.
[^] # Re: Plus léger ?
Posté par Laurent J (site web personnel, Mastodon) . Évalué à 0.
C'est de l'idéologie d'extremiste. Ces personnes là sont donc des extremistes (ridicules pour ce cas là je trouve). Et si ils veulent utiliser cette extension, ils sont en contradiction avec leur idéologie, car il leur faut utiliser Firefox (ou dérivé).
En effet, dans Firefox (ou dérivé), il y a probablement du code dont la licence (libre), n'est pas compatible avec la GPL. Taper about:license pour voir la loooonnnngue liste de licences correspondant au code inclus dans Firefox/Iceweasel. Je n'ai pas vérifié toutes ces licences, mais il y en a probablement qui ne sont pas compatibles avec l'idéologie des ayatollahs du libre.
Attention d'ailleurs, ces personnes là vont probablement avoir une crise cardiaque, quand ils apprendront que le matériel sur lequel tourne leurs softs libre, n'est pas libre, que leur bios n'est pas libre etc…
Bref, faut parfois arrêter les conneries, et avoir un minimum de pragmatisme.
à la limite, que l'extension indique si il y a du code libre ou pas sur un site, pourquoi pas, mais que ça bloque le code non libre, c'est du très grand n'importe quoi.
[^] # Re: Plus léger ?
Posté par Nicolas Boulay (site web personnel) . Évalué à 10.
Il faut arrêter de redécouvrir l'eau chaude. Le "libre", version Stallman, est extrémiste. Pour lui, tout code devrait être libre. Même debian n'avait pas ses faveurs à cause des firmewares non libre inclus dans des drivers. Sans son extrémisme, pas d'outils gnu, pas de libc, pas de gcc ! Linux ne s'est pas fait tout seul.
Mais il est apprécié pour cela : avoir une ligne claire qui ne varie pas depuis 20 ans. Il n'y a pas de compromission, de position politique pour faire des alliances de circonstances ou un quelconque profit.
Toutes les licences de firefox sont bien évidement compatible GPL. Il n'y strictement aucune violation, contrairement à ce que tu as l'air de croire. Les licences en question ressemblent beaucoup aux licences BSD.
"La première sécurité est la liberté"
[^] # Re: Plus léger ?
Posté par Franck Routier (Mastodon) . Évalué à 2.
s/extremiste/cohérent/g
[^] # Re: Plus léger ?
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
Il est extrême dans sa cohérence tout de même :)
"La première sécurité est la liberté"
[^] # Re: Plus léger ?
Posté par benoar . Évalué à 10.
Perso, c'est ce genre d'amalgame que je trouve très dommageable pour le libre. Si, le code de Firefox (et de Iceweasel, à fortiori, si tu veux que le nom soit libre aussi) respecte les 4 libertés. En faisant ce genre d'amalgame, tu participes à l'affaiblissement du libre en disant qu'il n'est pas très important de faire la différence avec du propriétaire/privateur.
Amalgame, encore.
Ça veut dire quoi exactement dans ce cas ? Il existe du code libre, et du code non-libre. Cette extension permet de faire la différence. Effectivement, je pense qu'en pratique, ça n'est pas super évident de naviguer avec, mais elle a au moins le mérite de nous faire réaliser à quel point on abandonne assez rapidement ses idéaux sur le web.
[^] # Re: Plus léger ?
Posté par Buf (Mastodon) . Évalué à 1. Dernière modification le 06 juin 2012 à 11:53.
Et ce qui est encore pire, c'est quand ça bloque du code parfaitement libre (exemple au hasard : linuxfr.org)
Cette extension, ça revient à exiger de la part de tous les développeurs web de mettre un sceau "FSF approved" sur tout ce qu'ils codent.
[^] # Re: Plus léger ?
Posté par gnuzer (site web personnel) . Évalué à 2.
C'est vrai pour Firefox, mais Iceweasel est justement un Firefox légèrement modifié pour être parfaitement compatible avec les DFSG. Quant aux ayatollahs du libre, ils n'utilisent pas Firefox sur leur FSF-approved distro mais GNU IceCat.
[^] # Re: Plus léger ?
Posté par Nicolas Boulay (site web personnel) . Évalué à 3.
En l'occurence, ce n'est pas une histoire de licence de code, mais de l'utilisation d'une marque. Pour éviter que des gens recompilent n'importe quoi et mettent le nom Firefox dessus, la mofo demande de vérifier les patchs. Cela se comprends dans l’écosystème typique de Windows, ou il y a aurait un tas de clone avec des malware dedans. Mais cela ne marche plus avec le fonctionnement typique des distributions.
"La première sécurité est la liberté"
[^] # Re: Plus léger ?
Posté par dafp . Évalué à 2.
Icecat ? tu connais pas ?
GNU propose enormement de contre-privateur. Je les admire énormément, et je m'efforce de jours en jours à suivre ce mouvement.
Il est très dur d'utiliser aujourd'hui un ordinateur 100% libre, et la faute à qui ?
Je suis le mouvement.
[^] # Re: Plus léger ?
Posté par Buf (Mastodon) . Évalué à -3.
Je propose de désactiver complètement Javascript. Ou mieux, de ne pas du tout utiliser le web (c'est souvent servi par du logiciel pas libre).
[^] # Re: Plus léger ?
Posté par isildur37 . Évalué à -3.
Ils désactivent le JS? Franchement, là, on atteint le sommet du ridicule. 99,99% du code JS ne fournit ni licence ni CLUF (donc, en théorie, sous copyright). Et le code est souvent offusqué sur les sites commerciaux. A ce moment là, pourquoi ne pas bloquer simplement le site? Pourquoi ne pas bloquer également le HTML, qui ne doit pas souvent contenir la mention de la licence?
Pour rappel, la GPL c'est un fichier plat à coté du code, point.
Enfin, le code JS est souvent codé pour ajouter un poil de dynamisme ou pallier à une carence du html. Codé à l'arrache et de manière dégueulasse. Dont la problématique de la licence est la dernière des préoccupations, selon la philosophie "t'as pas de JS? débrouille toi seul". Consultez vos pages habituelles avec lynx, vous verrez ce que ca donne. C'est la plupart du temps absolument illisible.
[^] # Re: Plus léger ?
Posté par gnuzer (site web personnel) . Évalué à 3.
s/le code/l'utilisateur
En passant, c'est justement ce code-là qu'il serait plus pertinent de vouloir bloquer. Offusquer du code, ça témoigne rarement d'une bonne intention.
Alors là je t'arrête, la page web HTML contient très souvent une mention « © Copyright "machin" All rights reserved » , en tout cas sur les sites US. Dans la plupart des pays d'Europe en revanche, le contenu est automatiquement propriétaire s'il est publié sans licence, même sans la mention Copyright.
Ça dépend des pages. Les sites bien conçus sont parfaitement lisibles. Pour le reste, il y a Weboob. (Tiens au fait : est-ce que weboob a besoin d'exécuter le javascript des sites pour fonctionner ou est-ce qu'il se débrouille autrement ?)
[^] # Re: Plus léger ?
Posté par Buf (Mastodon) . Évalué à 2.
Pour Javascript, dans pratiquement 100% des cas, c'est fait pour des questions de performances.
[^] # Re: Plus léger ?
Posté par gnuzer (site web personnel) . Évalué à 4.
Oui. Si on décidait un jour de remplacer le code HTML par du binaire (ou autre truc difficilement lisible) pour des questions de perfs, même les moins libristes crieraient au scandale.
Le web a été conçu comme lisible, voire "hackable" (pour reprendre les mots de Tristan Nitot). On peut vouloir avoir de meilleures performances, mais il faut respecter cette condition.
Si un développeur obfusque son code js, ça veut dire que la condition "mon code doit être lisible" est moins importante pour lui que la condition "mon site doit être rapide". On ne peut pas dire que ça part d'une bonne intention.
C'est pareil pour tout logiciel propriétaire : certains développeurs pensent que "avoir un minimum de contrôle sur son logiciel" (pour gagner des sous, par exemple) est une condition plus importante que "les utilisateurs doivent être libres et égaux devant mon code". Ça ne veut pas forcément dire que les devs de logiciels propriétaires font du code malveillant, mais on ne peut pas dire que leur intention est bonne de par la façon dont ils considèrent les droits des utilisateurs.
[^] # Re: Plus léger ?
Posté par Buf (Mastodon) . Évalué à 3.
La performance est quelque chose d'important pour tous les visiteurs, avoir du code lisible n'est utile qu'à une minorité. Clairement, pour moi, les perfs sont prioritaires, donc je n'hésite pas à minifier mon Javascript (les CSS également). Et si je veux permettre aux gens de jouer avec mon code, je fournis un lien vers le code source lisible et commenté.
Au passage, c'est exactement ce qui est fait ici même, voici un bout du Javascript de linuxfr.org (j'ai ajouté les retours à la ligne) :
[^] # Re: Plusléger?
Posté par Juke (site web personnel) . Évalué à -3.
Pourtant quand tu publie un site web, un des buts est qu'il soit lisible par une majorité (Sinon les devs web ne se casseraient pas les rouleaux à etre compatible avec differents navigateurs)
[^] # Re: Plusléger?
Posté par Buf (Mastodon) . Évalué à 2.
Euh… je dois être stupide, mais je vois absolument pas le rapport entre ta réponse et mon commentaire…
[^] # Re: Plus léger ?
Posté par ckyl . Évalué à 10.
Ce que j'envoie à un client c'est fait pour être exécuté par une machine, tout comme un binaire. Mon code lui est lisible et maintenable. Bref on peut voir ca comme une compilation js vers js. Si l'utilisateur veut le code il va le chercher.
Ton argument est du même acabit que dire qu'un compilo ne devrait pas trop optimiser le code, par ce qu'autrement ca devient plus difficile à comprendre quand tu pars du binaire…
[^] # Re: Plus léger ?
Posté par gnuzer (site web personnel) . Évalué à 1.
Bien vu. Mais ça correspond à deux visions différentes du web en fait : l'une qui voudrait que ce qui est fourni soit considéré comme du contenu, et que tout le code soit lisible et facile d'accès, et l'autre qui voudrait que ce qui est fourni soit considéré comme du logiciel, en faisant le maximum pour améliorer les perfs.
Bref, ça ressemble moins au débat libre vs propriétaire qu'au débat Lennart vs certains standards UNIX.
[^] # Re: Plus léger ?
Posté par Pierre Jarillon (site web personnel) . Évalué à 4.
Il me semble qu'il existe un bon compromis entre lisibilité et rapidité : minimiser le code et ajouter un commentaire indiquant où trouver le code original ainsi que le logiciel utilisé pour le réduire.
[^] # Re: Plus léger ?
Posté par CrEv (site web personnel) . Évalué à 2.
Au contraire !
Quel est l'intention d'un dev web ? Nan mais pour de vrai, quel est le but de ce qu'il code ? Simplement écrire un programme / site / cketuveu qui réponde au besoin de l'internaute. C'est ça l'intention. Nono qui écrit le js de la toolbar de linuxfr sont but est d'offrir des fonctionnalités à l'utilisateur. L'intention elle est là.
Et que ce soit rapide fait partie des fonctionnalités, que ce soit rapide fait partie des souhaits des utilisateurs (il n'y a qu'à ce souvenir des premières versions avec le moteur templeet).
Donc faire un code fonctionnel mais également rapide part réellement d'une bonne intention et est plus important que d'avoir un code commenté visible dans un navigateur.
Sur le côté "mon code doit être lisible". Qui doit lire le code ? Attends, je recommence : qui doit lire le code ?
Le moteur js du navigateur. C'est lui le client du code. Un code minifié ou pas, on s'en fiche là tout de suite, celui qui doit avoir un code compréhensible c'est le moteur js et un code minifié y répond.
Ensuite, la question "mon code doit être lisible par l'internaute". Si on reprend l'exemple de la toolbar linuxfr, le code est lisible, il suffit d'aller chercher les sources sur github et tu l'as le code.
Et si on te fourni la sourcemap de correspondance entre le code minifié et le code source tu dois même pouvoir débuger et lire le code minifié.
D'ailleurs, je réagis en général complètement à l'inverse de vous. Lorsque je vois un code js sur un site qui est encore bien formatté, commenté (souvent de manière très ridicule et donnant énormément d'informations sur le fonctionnement interne du serveur) je me marre et me dit que le gars qui a pondu ça n'a vraiment rien compris au dev web.
[^] # Re: Plus léger ?
Posté par benoar . Évalué à 2.
Sources ?
Minifier le JS, ça sert juste à raccourcir un peu le temps de chargement. Mais en fait, ça ne change quasiment rien si on le gzip, ou si on gère bien son cache (vu que tout le monde utilise les même libs, il n'y a qu'à faire pointer au bon endroit pour n'avoir à le charger qu'une fois pour tous les sites webs qui l'utilisent !)
Je dirais que l'argument de la performance est fallacieux car même si ça joue un tout petit peu, le bénéfice de l'obfuscation dans le sens de rendre la compréhension du code difficile est très apprécié par beaucoup de ses partisans.
[^] # Re: Plus léger ?
Posté par CrEv (site web personnel) . Évalué à 10.
Et les tiennes justement elles sont où ?
Ha ben j'aimerais bien voir ça…
Sauf que c'est pas la réalité des choses ça. Et même si c'était le cas, certains ont inventés les CDN…
Sauf que d'ailleurs (en général) personne ne parle d'obfuscation en javascript. Mais on parle bien de minification, de compression. Mais bon, c'est tellement facile de voir le mal et de dire que c'est rien que des méchants.
Si je vais une application / site web libre, tu peux être assuré d'une chose c'est que la version destinée à être exécutée et publiée sera minifiée, compilée et gzippée. Sauf que ça ne changera rien du tout au caractère libre de la chose. Et en aucun cas le but sera de masquer le code à l'utilisateur.
Allez, prenons un exemple réel, le dernier site (grand public, je parle pas d'un petit site à la con - c'est la partie localisation d'agences d'un site, je ne parle pas du site en entier) que j'ai monté pour un client :
Et donc maintenant tu veux me faire croire que ça joue un tout petit peu ? Ca charge 2x plus vite. Ca utilise 4x moins de bande passante (loin d'être négligeable sur un serveur d'une appli grand publique donc avec beaucoup de trafic). Mais non, ça ne change rien et l'obfuscation et là pour emmerder ceux qui voudraient lire le contenu du js.
Mouai, ben maintenant ça serait pas mal que tu sortes tes sources pour dire que ça sert à rien car clairement j'y crois pas.
[^] # Re: Plus léger ?
Posté par benoar . Évalué à 5.
Très bien, j'apprécie que tu prennes le temps de citer un exemple réel.
Effectivement, c'est lent.
Par contre :
C'est mieux, mais comme tu dis, il y a un facteur 46 en taille avec le test précédent, et pourtant le temps de chargement n'est pas diminué du tout du même ordre de grandeur. De plus, comme tu précises, tu es en local, donc tu dois avoir de bons débits. J'en conclue donc que de toutes façons, la taille n'a rien changé, c'est juste de concaténer qui a aidé.
Effectivement, la concaténation peut être une optimisation très intéressante ; mais ça n'est pas ce dont je parlais : moi, j'aurais bien aimé voir le résultat du temps de chargement avec la version « simplement concaténée et gzipée ». Je suppose que tu ne gagnes presque rien entre ta version compilée et celle-ci. Si tu pouvais faire le test, ça pourrait être intéressant, même si c'est encore te demander un peu de temps.
[^] # Re: Plus léger ?
Posté par CrEv (site web personnel) . Évalué à 7.
Pour pas mal de raisons je ne peux pas refaire le test sur cette version exactement (en tout cas pas comme ça, et j'ai pas le temps de le faire).
Explication du temps : c'est l'intégration de mon script dans une page existante, il y a donc des composants que je ne maitrise pas. Par contre, on a quand même un gain de 1.7s. Et ça c'est très loin d'être négligeable.
J'ai lu par exemple que amazon gagne environ 1% de revenu en réduisant le temps de chargement de 100ms. Gagner plus d'une seconde peut donc nécessiter des efforts important.
Par contre, le gain de 10 en taille est d'autant plus significatif lorsqu'on est pas en locale, donc la concaténation peut ne pas suffire.
Comme je l'ai dit, j'ai pas les chiffres pour l'application dont je parle au dessus.
Par contre, j'en ai d'autres, que j'avais justement utilisé comme bench :
Donc on voit bien les deux axes d'amélioration : gzip (même si en local ce n'est pas le primordial) et compilation
Bon, par contre j'ai pas, dans ce cas, la comparaison par rapport à une version non concaténée.
J'espère que ça répond un peu plus à tes questions.
Il est vraiment intéressant d'appréhender un peu les gains qu'on peut avoir, surtout que beaucoup beaucoup de sites pourraient être améliorés et donc les performances et le ressenti pourrait être bien augmenté.
[^] # Re: Plus léger ?
Posté par benoar . Évalué à 2.
OK, merci pour ce test. Même si, quand on regarde en détail, il n'est pas super cohérent avec ton autre bench : version compilée « seulement » deux fois moins lourde, contre 8 fois moins précédemment ; versions gzippée qui ne réduit pas beaucoup (c'est du code beaucoup plus « complexe » dans ce bench, peut-être ?) ; grosse différence inexpliquée de la version gzippée compilée. Mais c'est intéressant de voir que la version compilée fait effectivement gagner un certain temps.
Oui, merci.
[^] # Re: Plus léger ?
Posté par CrEv (site web personnel) . Évalué à 3.
Les différences sont normales, ou plutôt peuvent s'expliquer : le premier exemple que j'ai indiqué utilise vraiment et de manière très propre la library closure alors que le deuxième bench est plus ancien et sur du code "de bench" moins propre et n'utilisant pas tout ce qui est à dispo (oui c'est dommage pour un bench).
Il faut bien comprendre que les outils Google donnent leur plein potentiel lorsqu'ils sont tous utilisés ensemble.
Et l'utilisation de la library closure permet, lorsque associée au compilateur, d'avoir des gains vraiment important. L'utilisation du compilateur seul est bonne mais on peut mieux faire.
Par exemple, jamais avec la lib closure on ne fait utiliser
document.getElementById
. Tout simplement car c'est un appel natif donc on ne peut pas le renommer. On utilise doncgoog.dom.getElement
. Et à la compilation c'est transformé en quelque chose de beaucoup plus court, commec
. Si on répète ça souvent et pour un peu tous les cas, on obtient des différences significatives.Après ça va plus loin, certains comportement de la lib ou du compilateur sont là dans le but de créer des portions similaires afin de pouvoir mieux être compressées par gzip (qui utilise un dictionnaire).
Je peux pas faire une étude vraiment précise mais les meilleurs gains sont vraiment lorsqu'on utilise la totalité des éléments. Et par contre, dernier point de variation, la suppression du code mort peut expliquer de nombreuses différences. Si dans les deux codes j'utilise une lib, mais dans un cas j'en exploite 20% et dans l'autre 80% le résultat sera totalement différent. Dans le premier cas la compilation supprime 80% du code, dans l'autre seulement 20.
[^] # Re: Plusléger?
Posté par moules . Évalué à 2.
On 06/Jun - 13:01, gnuzer wrote:
> Tiens au fait : est-ce que weboob a besoin d'exécuter le javascript des sites pour fonctionner ou est-ce qu'il se débrouille autrement ?
L'interaction avec un serveur web ne se résume qu'à des effectuer des requêtes HTTP et à parser les résultats pour en extraire les informations. Il est souvent utile de simuler des comportements effectués par du code javascript (définition de cookies, calcul de valeurs à envoyer dans une requête, etc.), mais il n'est pas nécessaire d'exécuter du javascript tel quel.
Cela dit, parfois, il y a des sites écrits par des singes (typiquement celui de la BNP Paribas) qui font des choses tellement obscures qu'avant de vouloir m'acharner sur leurs auteurs à coups de pic à glace je serais tenté de vouloir exécuter tout leur javascript.
[^] # Re:Plusléger?
Posté par Juke (site web personnel) . Évalué à 3.
Bon ap !
[^] # Re: Plus léger ?
Posté par rakoo (site web personnel) . Évalué à 5.
Tu veux dire, comme ce que fait un logiciel de controle parental ?
Tu sais, ce plugin est quelque chose que l'utilisateur installe sur sa machine. Rien ni personne ne l'oblige a l'installer et a l'utiliser. C'est un plugin qui fait une chose : bloquer ce que l'utilisateur ne veut pas executer. Il fait ce que l'utilisateur veut qu'il fasse.
Si l'utilisateur ne veut pas voir un site pour quelque raison que ce soit, copyright/licence ou autre, il n'y a rien qui peut l'obliger a le voir quand même.
D'ailleurs, que fait adblock ? Il bloque du contenu qui vient du site, filtre selon certains critères. Est-ce que la publicité est plus légitime a bloquer que du code/contenu non libre ? Je ne crois pas.
Houla. Tu vas un peu vite en besogne.
La GPL c'est aussi (et surtout) la philosophie de fournir les instructions qui permettent d'obtenir le même binaire que celui qu'on t'a donne. Bien que ça soit non-ecrit, si tu ne le fais pas, tu vas te prendre des cailloux dans la tronche.
[^] # Re: Plus léger ?
Posté par rakoo (site web personnel) . Évalué à 1.
Ou alors, c'est le début d'une normalisation pour écrire du code JS libre, tout comme le blabla de la GPL est une normalisation pour écrire du code libre sous GPL. Ça prend de la place sur le disque dur, ça prend de la place pour les transferts, ça fait suer les développeurs qui doivent mettre les bon fichiers au bon endroit… Mais c'est la norme. Et si tu ne la respectes pas, c'est toi qui est en tort, même si tu dis partout "Ce code est sous GPL".
Le vrai problème, en effet, c'est que ça fait plus de trafic réseau. Mais on pourrait imaginer un répertoire
/var/js
, qui contient tous les bouts de code JS libres, et qui sont charges du disque directement du disque(vu que LibreJS fait une verif par hash, ça doit être faisable).Ou alors, peut-être qu'un jour, avec un peu de chance, on pourra dire
bandwidth is cheap
tout comme on peut dire aujourd'huistorage is cheap
=][^] # Re: Plus léger ?
Posté par gnuzer (site web personnel) . Évalué à 1.
Où as-tu vu que la WTFPL n'est pas reconnue par cette extension ? Parce qu'à ma connaissance, la FSF reconnaît la WTFPL comme valide, libre et compatible GPL (l'OSI ne la reconnaît pas par contre).
[^] # Re: Plus léger ?
Posté par Buf (Mastodon) . Évalué à 3.
Documentation de l'extension : 6.1 Detected Free Licenses
[^] # Re: Plus léger ?
Posté par Littleboy . Évalué à 1.
T'as un PC/micro-onde/frigo/tele/voiture/clavier sans-fil/lecteur dvd/montre digitale/reveil/etc.
Mon dieu, du code non libre s'execute sur des appareils en ta possession. Etre impur, au
goulagcentre de rehabilitation pour une vie harmonieuse![^] # Re: Plus léger ?
Posté par zebra3 . Évalué à 0.
Bah déjà, on évite Firefox et on prend du webkit-based.
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
# Sorte d'anti-virus donc
Posté par papap . Évalué à 1.
Ca peut servir donc d'anti-virus en fait puisque certains sites sont infectés par du code javascript qui n'est autre qu'un virus.
[^] # Re: Sorte d'anti-virus donc
Posté par gnuzer (site web personnel) . Évalué à 5.
On peut très bien faire du code javascript libre malveillant : https://en.wikipedia.org/wiki/Evercookie
PS : Dommage que le site de la GNAA n'existe plus, l'occasion était belle…
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.