Je ne ferais confiance qu'à l'interprétation d'un (voir plusieurs) avocat(s) spécialisé(s) dans les licences informatique.
Si tu ne cites pas le nom de l'auteur tu as les droits donnés par
C'est une violation de la licence, encore une fois, je ne ferais confiance qu'à l'interprétation de personnes dont c'est la compétence.
Les termes juridiques, à quel point ils sont précis ou non, c'est pas si évident à interpréter.
On pourrait argumenter par exemple que "sans restrictions" n'est pas applicable car trop vague. On pourrait argumenter sur la définition de copie, on pourrait argumenter sur plein de choses, mais nous ne sommes à priori pas avocats (à moins que tu ne le sois ?).
Un peu facile de présenter son interprétation sur LinuxFR, mais es-tu prêt à la défendre auprès d'un tribunal et de gagner le procès s'il venait à être saisi ?
Tout ça pour dire qu'il existe aujourd'hui un réel flou juridique concernant ces technologies. Et c'est pas les développeurs ni des entreprises privées qui le résolveront. Ce seront des avocats/juristes/gouvernements à coup de nouvelles licences et de nouvelles lois.
Je ne suis pas un avocat/juriste, donc je ne saurais pas défendre une position ou l'autre devant un tribunal, si ce dernier devait être saisi.
Cependant, ayant bien potassé le sujet des réseaux neuronaux, je suis arrivé à quelques petites conclusions :
l'ingénieur informatique qui a décidé d'appeller un neurone "neurone" n'y connaissait pas grand chose en biologie
les réseaux neuronaux sont un outil statistique dont le fonctionnement diffère grandement du fonctionnement du cerveau humain
le résultat produit par l'apprentissage d'un réseau neuronal (le modèle) encode les informations "apprises" sous formes de poids/biais (de bonnes grosses matrices/tenseurs de flottant)
Bref, une "IA" (grosses guillemets), bien qu'impressionante, n'est pas un humain. En partant de ce principe :
Je ne suis pas un avocat/juriste mais:
sauf si c'est MIT/BSD, là bon faut être de mauvaise foi pour refuser l'exploitation de son code je trouve
Ces licences couvrent la redistribution et la modification du code. Elles ne couvrent pas son usage dans une analyse automatique. Un juge dira qu'il s'agit d'une forme de redistribution la ou un autre dira que non -> flou juridique à éclaircir.
un débutant qui va travailler chez Capgemini/Atos/AUTRE-SSII: tu ne vas pas lui reprocher plus tard de savoir écrire du code
Non mais s'il se sert des dépôts privés de la société, dont il a toujours une copie, comme d'un StackOverflow "allez hop, copier/coller!". C'est tout de suite plus flou.
le code généré n'est pas lié au code lu, seulement à l'apprentissage du langage et de sa logique
Le code lu est encodé dans le modèle et est utilisé pour produire la suggestion.
Insolvable?
Non, il suffit que les licences soient mise à jour par des personnes compétentes pour clarifier comment est couvert cet usage du code. Est-ce de la redistribution ou pas ?
Quelle est la licence du code produit par un modèle de machine learning qui a utilisé du code sous GPL, LGPL, MIT, BSD, … pour s'entraîner?
Les auteurs des projets utilisés ont ils donné leurs consentements ? (entendre par la, est-ce que les licenses utilisées autorisent ce genre de pratique)
Ah oui effectivement, cela pouvait porter à confusion.
Non je pensais à un ami qui a eu des problèmes de santé, et qui quand il a chercher a retrouver un travail avait un trou de 3 ans dans son CV. Cela lui a porté préjudice.
Et qu'importe la raison du "trou" dans le CV, c'est ta vie privée, l'employeur n'a pas à le savoir. Si t'as pas confiance dans les capacités du gars, le test technique et la période d'essai sont là pour ça.
Pour ce qui est du casier judiciaire, je pensais par exemple au métier de professeur ou certains autres postes de fonctionnaire. Si en plus tu as fait de la prison, en théorie tu as purgé ta peine, et d'après le système judiciaire (dans la théorie), tu es de nouveau un citoyen comme les autres, qui aspire aux mêmes droits et devoirs que les autres.
Dans la pratique, ton passé et tes origines, quel qu'ils soient, influent énormément sur comment tu es perçu par la société, et va jouer en ta faveur ou en ta défaveur pour des choses comme : un prêt bancaire, un bail de location, un job, etc…
Dans le résultat, cela ressemble beaucoup selon moi au crédit social.
Si un employeur te le demande en dehors des quelques cas prévus, fuis, car il est d'ors et déjà dans l'illégalité !
Malheureusement, la discrimination sur le genre, les origines sociales, la couleur de peau, et le passé de l'individu reste cependant monnaie courante encore aujourd'hui.
Imagine tu as pris une année sabbatique pour une raison X ou Y, la question suivante est déjà déplacée :
Comment expliquer vous ce trou dans votre CV ?
La réponse que l'on apporte a cette question peut déjà nous porter préjudice.
Le crédit social a beau ne pas être mis en place par l'état, il existe néanmoins à cause des préjugés (t'es du 62 ? t'es alcoolique alors) et de la discrimination en général.
De 1, je ne propose rien, je constate des faits sans proposer de solution, donc merci de ne pas me prêter des propos qui ne sont pas les miens.
De 2, il me semble que tu as complètement loupé le ton de l'humour de mon poste initial et de ma réponse.
Empiler les gens dans des cages à lapins sous prétexte qu'on ne pourrait pas contrôler l'expansion de la population
C'est marrant, parce que "contrôler l'expansion de la population" (autrement dit, contrôler les naissances, et pourquoi pas aller plus loin, tuer les trop vieux ?) cela peut partir en cacahuète dystopique totalitaire assez vite aussi.
La mise en œuvre de ce que tu proposes implique travail forcé, surveillance généralisée, crédit social, déportation, régime policier.
Tu as vu une proposition de mise en oeuvre dans ce que j'ai dit ? Tu peux me la montrer ? Car je n'ai littéralement rien proposé, j'ai juste constaté que "tiens la campagne c'est pas si écolo que ça" et que "tiens, ptet que une propriété de 10km2 c'est un peu abusé".
Quand bien même, imaginons que j'ai proposé de réguler ça. Comment on arrive à du "travail forcé", "surveillance généralisée", "crédit social", "déportation" et "régime policier" ?
Aussi, explique moi comment aujourd'hui :
tu n'es pas forcé de travail si tu désires payer un logement (location ou prêt immobilier, même combat)
tu n'es pas constamment surveillé quand tu utilises une infrastructure contrôlée par le gouvernement (routes, trains, internet, etc… tout ça doit se plier à des régulations de l'état)
ton casier judiciaire ne fait pas office de crédit social quand tu va chercher un emploi ou un prêt bancaire
tu ne va pas être déporté lorsque la monté des eaux va engloutir une bonne partie du littoral
Ah au cas ou tu ne comprennes pas, je suis encore dans le ton de l'humour et de l'exagération.
Pour résumer, on va dire que l'utopie c'est vivre ensemble sans problème, et la dystopie c'est réfléchir à comment mettre en place l'utopie.
Les besoins de chacun sont satisfait, ici on recherche une égalité des opportunités (et non une égalité des résultats), étant donné que nous ne sommes pas égaux face à la nature et les besoins des uns peuvent différer de ceux des autres.
vivre dans l'excès
Avoir un hélico dans la piscine de son yacht personnel serait un bon exemple d'excès. La ligne est difficile à tracer certes, mais pourtant quand d'un côté on a le petit étudiant parisien qui vit dans son 35cm2 vs le footballer qui vit dans une villa plus grande que la ville de Montcuq, il est facile de déterminer qui est dans l'excès.
besoins d'un être humain
Boire, manger, se réchauffer, dormir sous un toit, avoir accès à la culture, l'information, avoir la possibilité d'avoir une activité physique, une activité mentale, etc…
Bref, la différence entre "survivre" et "vivre". On aimerait bien la seconde option quand même :)
on admettra que les besoins de 15 milliards d'êtres humains sont 15 milliards de fois les besoins d'un seul être humain
De nombreux besoins peuvent être mutualisés, par exemple le coït peut se faire à plusieurs!
Les grandes villes permettent également de simplifier la distribution en compactant et centralisant l'infrastructure nécessaire. Et oui, un grand immeuble avec 15 appartements est plus écolo que 15 maisons dans la campagne, source? mon petit doigt me l'a dit, parait que acheminer l'eau, l'électricité, le gaz, etc… à 15 maisons de campagnes a une plus grosse empreinte que l'acheminer à un seul immeuble.
Au passage, merci d'avoir pris au sérieux un texte intitulé "Utopie", insinuant son irréalisabilité (mot compte triple).
Si les ressources étaient équitablement réparties, évitant certains de vivre dans l'excès pendant que d'autres vivent dans la pauvreté, mon pifomètre me dit que la terre pourrait subvenir aux besoins de plus de 15 milliards d'être humains.
J'ai abandonné cet éditeur pour retourner sur Sublime Text 3 après le second freeze total.
C'était avant même que VS Code ne pointe son nez (adieu Sublime Text 3, j'ai toujours aimé ta simplicité et ta sobriété, dire que tu m'as fait abandonner vim).
Bah non justement, en Rust les concepts ne sont pas masqués :
allocation dynamique sur la heap ? Box<T>
allocation dynamique avec refcounting pour pouvoir partager une même ressource ? Rc<T>
je veux partager la même data en lecture mais pas en écriture (copy on write) ? Cow<T>
je veux protéger l'accès concurrentiel à une donnée ? Mutex<T> souvent avec Arc<Mutex<T>>
je veux créer une structure qui est thread-safe ? Implémentation de Send et/ou Sync
…
Il n'y a rien de plus explicite, ces informations apparaissent dans le système de type qui va permettre au compilateur de s'assurer que les règles qui gouvernent ces concepts sont bien respectées.
la syntaxe est moche
C'est subjectif. Je trouve aussi que la syntaxe est lourde, mais c'est pas plus moche que des templates C++ qu'on observe en masse dans les librairies "header only" (beurk).
les temps de compilation tendent vers l'infini ;
Exagération obsolète.
Ca compile plus vite que du C++ (de mon expérience personnelle et anecdotique)
sous prétexte d'être plus "safe", on doit se prendre la tête avec 42 concepts qui polluent le code ;
C'est pas sous prétexte d'être plus safe. C'est sous prétexte de prendre aucune décision pour le développeur. On le laisse gérer lui même pour qu'il puisse faire des applications performantes, on le laisse choisir lui même les trade-offs.
Le Go est un langage safe aussi, mais les trade-offs ont été choisi par les développeurs du langage/compilateur. Et toi, pauvre petit développeur, tu dois faire avec.
c'est safe, mais dès l'exemple de base de wgpu, on se retrouve avec un bloc "unsafe".
Ca j'ai mis pas mal de temps à le comprendre. Mais en gros, le choix qui a été fait par les développeurs de Rust est le suivant :
Il vaut mieux rejeter un programme valide qu'accepter un programme potentiellement invalide.
Le unsafe permet au développeur d'indiquer au compilateur que, même si le compilateur ne sait pas le déterminer, le bloc de code est safe. C'est à utiliser avec parcimonie, mais le côté "non safe" (qui est plutôt "n'a pas réussi a déterminer la safety") ne fuit pas vers le reste du programme.
De plus, le hardware sur lequel tourne le code Rust (ton PC) est par nature "unsafe". Il y a donc naturellement des choses que l'on ne peut pas déterminer à l'avance comme étant "safe".
Au final, utiliser "unsafe" c'est déléguer à l'OS la garantie que l'opération est safe. Tout comme en Haskell on délèguerait la gestion d'une IO (impure) au runtime.
Plus j'en apprends sur ce langage, moins j'ai envie d'en faire
Et c'est dommage. Ce langage n'est pas parfait, loin de là. Beaucoup de fonctionnalités ne sont pas encore stabilisées (hello générateurs/code asynchrone/…). La syntaxe est dure à comprendre.
Mais plus j'apprend ce langage, plus mes hypothèses et opinions se cassent la figure, pour laisser place à la réalité.
Grâce à Rust, je me pose des questions sur mon code, mes données, que je ne me posais pas avant, et ce même dans d'autres langages.
Si j'ose dire, apprendre le Rust fait de moi un meilleur développeur C / C++.
pourquoi ne pas écrire le jeu sous forme de core libretro ?
Parce que c'était pas le sujet du "challenge".
Je suis parti de "je voudrais bien ouvrir une fenêtre de manière cross-platforme sans embarquer une DLL" -> winit
Pour continuer vers "j'aimerais bien une primitive sympa pour dessiner dedans" --> pixels
Ensuite, je me suis hurté au compilateur Rust, ce qui m'a motivé à écrire cet article, comme un rappel personnel que ce que j'ai appris depuis 20 ans est faux : la programmation c'est compliqué, les langages nous mentent en cachant cela.
Et même dans des langages bas niveau tel que le C, ou haut niveau tel que le C++ ou le Go, ces choses sont masquées.
Est juste une affirmation fausse: en C, si, il y a une gestion de la mémoire: malloc/calloc/realloc/free, c'est plus simple à utiliser que maintenir soit-même le tas et la pile du programme.
malloc/calloc/realloc/free (et alloca ne l'oublions pas), ce n'est pas de la gestion de la mémoire.
C'est à toi de calculer la taille suffisante pour stocker ta donnée au préalable. C'est à toi de t'assurer que le pointeur retourné par realloc est toujours le même qu'avant. C'est à toi de t'assurer de ne pas appeler free 2 fois sur le même pointeur.
L'implémentation des malloc qui appelle pour toi les syscall sbrk et brk et organisent la heap pour s'y retrouver reste quelque chose de très bas niveau, et peu différent de ce que tu ferais en Assembleur.
Maintenant, concernant le C++ et le Go, c'est mécanisme de gestion de mémoire sont bien masqués à l'utilisateur. En Go ce n'est pas toi qui appelle le Garbage Collector, ou qui alloue la mémoire pour tes objets. En C++ ce n'est pas toi qui appelle tel ou tel constructeur, ni les destructeurs. Ces choses sont présentes, mais pas exposés à l'utilisateur.
Je persiste et signe donc, C, C++, Go, et bien d'autres langages : ne sont pas explicite sur les concepts sous-jacents.
Pour moi, en C++ tu n'appelle pas manuellement les constructeurs (d'assignation, de copie, …) ou les destructeurs. Donc la durée de vie d'une variable au sein d'une scope est gérée pour toi. En C tu devras appeler ces fonctions à la main.
La STL fournit nombre d'abstractions qu'il est désormais recommandé d'utiliser, sauf si tu as un besoin spécifique bien sûr.
L'héritage, déjà rien que ça. Je recommande la lecture de ooc.pdf pour comprendre comment l'implémenter en C, et ainsi comprendre comment le C++ masque un autre concept bas niveau (organisation de la mémoire, édition des liens, etc…).
Ce qui fait qu'un langage peut être considéré comme haut niveau selon moi, c'est le nombre d'abstraction présente. Et C++ possède beaucoup d'abstraction, la ou le C n'en possède quasiment aucune.
Sauf que là depuis la 3.10, c'est la vocation de toute la team d'améliorer les perfs de Python pour revenir dans la course contre Javascript, Java, Go, etc…
Car ces dernières années, avec les ajouts de fonctionnalités, il a pas mal ralentit.
Alors oui, on a déjà eu quelques optimisations du bytecode en 3.9 et 3.10, mais la 3.11 ils ont décidé de prendre la pelle à merde et de creuser.
Et a chaque nouvelle rc de la 3.11, les benchs sont de plus en plus positifs. C'est surtout ça que tu entends depuis un certains temps, le progrès de la 3.11 sur ce sujet.
[^] # Re: Libre ou pas libre, telle n'est pas la question.
Posté par David Delassus (site web personnel) . En réponse au lien FauxPilot - Clone de GitHub Copilot libre et hors-ligne. Évalué à 3.
Je ne ferais confiance qu'à l'interprétation d'un (voir plusieurs) avocat(s) spécialisé(s) dans les licences informatique.
C'est une violation de la licence, encore une fois, je ne ferais confiance qu'à l'interprétation de personnes dont c'est la compétence.
Les termes juridiques, à quel point ils sont précis ou non, c'est pas si évident à interpréter.
On pourrait argumenter par exemple que "sans restrictions" n'est pas applicable car trop vague. On pourrait argumenter sur la définition de copie, on pourrait argumenter sur plein de choses, mais nous ne sommes à priori pas avocats (à moins que tu ne le sois ?).
Un peu facile de présenter son interprétation sur LinuxFR, mais es-tu prêt à la défendre auprès d'un tribunal et de gagner le procès s'il venait à être saisi ?
Tout ça pour dire qu'il existe aujourd'hui un réel flou juridique concernant ces technologies. Et c'est pas les développeurs ni des entreprises privées qui le résolveront. Ce seront des avocats/juristes/gouvernements à coup de nouvelles licences et de nouvelles lois.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Libre ou pas libre, telle n'est pas la question.
Posté par David Delassus (site web personnel) . En réponse au lien FauxPilot - Clone de GitHub Copilot libre et hors-ligne. Évalué à 3.
Je ne suis pas un avocat/juriste, donc je ne saurais pas défendre une position ou l'autre devant un tribunal, si ce dernier devait être saisi.
Cependant, ayant bien potassé le sujet des réseaux neuronaux, je suis arrivé à quelques petites conclusions :
Bref, une "IA" (grosses guillemets), bien qu'impressionante, n'est pas un humain. En partant de ce principe :
Je ne suis pas un avocat/juriste mais:
Ces licences couvrent la redistribution et la modification du code. Elles ne couvrent pas son usage dans une analyse automatique. Un juge dira qu'il s'agit d'une forme de redistribution la ou un autre dira que non -> flou juridique à éclaircir.
Non mais s'il se sert des dépôts privés de la société, dont il a toujours une copie, comme d'un StackOverflow "allez hop, copier/coller!". C'est tout de suite plus flou.
Le code lu est encodé dans le modèle et est utilisé pour produire la suggestion.
Non, il suffit que les licences soient mise à jour par des personnes compétentes pour clarifier comment est couvert cet usage du code. Est-ce de la redistribution ou pas ?
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Libre ou pas libre, telle n'est pas la question.
Posté par David Delassus (site web personnel) . En réponse au lien FauxPilot - Clone de GitHub Copilot libre et hors-ligne. Évalué à 4.
Quelle est la licence du code produit par un modèle de machine learning qui a utilisé du code sous GPL, LGPL, MIT, BSD, … pour s'entraîner?
Les auteurs des projets utilisés ont ils donné leurs consentements ? (entendre par la, est-ce que les licenses utilisées autorisent ce genre de pratique)
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
# Libre ou pas libre, telle n'est pas la question.
Posté par David Delassus (site web personnel) . En réponse au lien FauxPilot - Clone de GitHub Copilot libre et hors-ligne. Évalué à 2. Dernière modification le 04 août 2022 à 03:25.
Que ce soit open source ou pas, l'éthique et le flou juridique derrière ce genre de projet reste le même.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Utopie
Posté par David Delassus (site web personnel) . En réponse au journal Jour du Dépassement. Évalué à 4.
Ah oui effectivement, cela pouvait porter à confusion.
Non je pensais à un ami qui a eu des problèmes de santé, et qui quand il a chercher a retrouver un travail avait un trou de 3 ans dans son CV. Cela lui a porté préjudice.
Et qu'importe la raison du "trou" dans le CV, c'est ta vie privée, l'employeur n'a pas à le savoir. Si t'as pas confiance dans les capacités du gars, le test technique et la période d'essai sont là pour ça.
Pour ce qui est du casier judiciaire, je pensais par exemple au métier de professeur ou certains autres postes de fonctionnaire. Si en plus tu as fait de la prison, en théorie tu as purgé ta peine, et d'après le système judiciaire (dans la théorie), tu es de nouveau un citoyen comme les autres, qui aspire aux mêmes droits et devoirs que les autres.
Dans la pratique, ton passé et tes origines, quel qu'ils soient, influent énormément sur comment tu es perçu par la société, et va jouer en ta faveur ou en ta défaveur pour des choses comme : un prêt bancaire, un bail de location, un job, etc…
Dans le résultat, cela ressemble beaucoup selon moi au crédit social.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Utopie
Posté par David Delassus (site web personnel) . En réponse au journal Jour du Dépassement. Évalué à 2.
Je n'ai jamais insinué le contraire
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: c'est bien les commentaires
Posté par David Delassus (site web personnel) . En réponse au journal Crontab. Évalué à 6.
Avec ou sans seconde intercalaire ?
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Utopie
Posté par David Delassus (site web personnel) . En réponse au journal Jour du Dépassement. Évalué à 0.
Merci pour ces précisions.
Malheureusement, la discrimination sur le genre, les origines sociales, la couleur de peau, et le passé de l'individu reste cependant monnaie courante encore aujourd'hui.
Imagine tu as pris une année sabbatique pour une raison X ou Y, la question suivante est déjà déplacée :
La réponse que l'on apporte a cette question peut déjà nous porter préjudice.
Le crédit social a beau ne pas être mis en place par l'état, il existe néanmoins à cause des préjugés (t'es du 62 ? t'es alcoolique alors) et de la discrimination en général.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Trop tard
Posté par David Delassus (site web personnel) . En réponse au journal Jour du Dépassement. Évalué à 4.
C'est ta faute :
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Utopie
Posté par David Delassus (site web personnel) . En réponse au journal Jour du Dépassement. Évalué à 0.
Chapeau blanc, blanc chapeau :)
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Utopie
Posté par David Delassus (site web personnel) . En réponse au journal Jour du Dépassement. Évalué à 3. Dernière modification le 29 juillet 2022 à 08:25.
De 1, je ne propose rien, je constate des faits sans proposer de solution, donc merci de ne pas me prêter des propos qui ne sont pas les miens.
De 2, il me semble que tu as complètement loupé le ton de l'humour de mon poste initial et de ma réponse.
C'est marrant, parce que "contrôler l'expansion de la population" (autrement dit, contrôler les naissances, et pourquoi pas aller plus loin, tuer les trop vieux ?) cela peut partir en cacahuète dystopique totalitaire assez vite aussi.
Tu as vu une proposition de mise en oeuvre dans ce que j'ai dit ? Tu peux me la montrer ? Car je n'ai littéralement rien proposé, j'ai juste constaté que "tiens la campagne c'est pas si écolo que ça" et que "tiens, ptet que une propriété de 10km2 c'est un peu abusé".
Quand bien même, imaginons que j'ai proposé de réguler ça. Comment on arrive à du "travail forcé", "surveillance généralisée", "crédit social", "déportation" et "régime policier" ?
Aussi, explique moi comment aujourd'hui :
Ah au cas ou tu ne comprennes pas, je suis encore dans le ton de l'humour et de l'exagération.
Pour résumer, on va dire que l'utopie c'est vivre ensemble sans problème, et la dystopie c'est réfléchir à comment mettre en place l'utopie.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Utopie
Posté par David Delassus (site web personnel) . En réponse au journal Jour du Dépassement. Évalué à 5. Dernière modification le 28 juillet 2022 à 22:05.
Les besoins de chacun sont satisfait, ici on recherche une égalité des opportunités (et non une égalité des résultats), étant donné que nous ne sommes pas égaux face à la nature et les besoins des uns peuvent différer de ceux des autres.
Avoir un hélico dans la piscine de son yacht personnel serait un bon exemple d'excès. La ligne est difficile à tracer certes, mais pourtant quand d'un côté on a le petit étudiant parisien qui vit dans son 35cm2 vs le footballer qui vit dans une villa plus grande que la ville de Montcuq, il est facile de déterminer qui est dans l'excès.
Boire, manger, se réchauffer, dormir sous un toit, avoir accès à la culture, l'information, avoir la possibilité d'avoir une activité physique, une activité mentale, etc…
Bref, la différence entre "survivre" et "vivre". On aimerait bien la seconde option quand même :)
De nombreux besoins peuvent être mutualisés, par exemple le coït peut se faire à plusieurs!
Les grandes villes permettent également de simplifier la distribution en compactant et centralisant l'infrastructure nécessaire. Et oui, un grand immeuble avec 15 appartements est plus écolo que 15 maisons dans la campagne, source? mon petit doigt me l'a dit, parait que acheminer l'eau, l'électricité, le gaz, etc… à 15 maisons de campagnes a une plus grosse empreinte que l'acheminer à un seul immeuble.
Au passage, merci d'avoir pris au sérieux un texte intitulé "Utopie", insinuant son irréalisabilité (mot compte triple).
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
# Utopie
Posté par David Delassus (site web personnel) . En réponse au journal Jour du Dépassement. Évalué à 10.
Si les ressources étaient équitablement réparties, évitant certains de vivre dans l'excès pendant que d'autres vivent dans la pauvreté, mon pifomètre me dit que la terre pourrait subvenir aux besoins de plus de 15 milliards d'être humains.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
# Bah et Letlang alors ?
Posté par David Delassus (site web personnel) . En réponse au lien AirScript - comme Lua, mais en Rust, et différent. Évalué à 2.
Je voulais m'amuser un peu, et c'est aussi un terrain d'entraînement pour la gestion des "scopes" qui m'aidera bien pour Letlang dans le futur :)
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
# Les vacances c'est fini
Posté par David Delassus (site web personnel) . En réponse au lien [Letlang] Implémentation de TicTacToe. Évalué à 2.
Maintenant, reste plus qu'à implémenter les fonctionnalités manquantes pour compiler ce bout de code :
|>
let
avec "destructuring"print
etreadline
Une fois fait, on est d'accord que c'est turing-complete? :)
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Atom était encore en vie?
Posté par David Delassus (site web personnel) . En réponse au journal Adieu Atom :(. Évalué à 4.
VS Code est rapide et consomme bien moins de RAM que Atom, et c'est aussi du Electron.
Comme quoi, c'est tout à fait possible de faire les choses bien.
8-16GB ça a l'air d'être le standard quand tu achètes un PC portable.
Ca serait bien que Electron (ou Tauri) soit mutualisé (je pense a urxvtd + urxvtc qui mutualise les terminaux dans un seul process).
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
# Atom était encore en vie?
Posté par David Delassus (site web personnel) . En réponse au journal Adieu Atom :(. Évalué à 5.
J'ai abandonné cet éditeur pour retourner sur Sublime Text 3 après le second freeze total.
C'était avant même que VS Code ne pointe son nez (adieu Sublime Text 3, j'ai toujours aimé ta simplicité et ta sobriété, dire que tu m'as fait abandonner vim).
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: libretro core?
Posté par David Delassus (site web personnel) . En réponse au journal Écrire un jeu en Rust presque de zéro. Évalué à 2. Dernière modification le 08 juin 2022 à 14:00.
Ah j'avais mal compris pardon :p
C'est parce qu'en vérité, rien n'est simple :p
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: J'ai appris plein de trucs et suis tenté par ECS
Posté par David Delassus (site web personnel) . En réponse au journal Écrire un jeu en Rust presque de zéro. Évalué à 3.
Ca fait plaisir de faire des choses utiles :) Merci.
Et surement plein d'autres encore.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: libretro core?
Posté par David Delassus (site web personnel) . En réponse au journal Écrire un jeu en Rust presque de zéro. Évalué à 7.
Bah non justement, en Rust les concepts ne sont pas masqués :
Box<T>
Rc<T>
Cow<T>
Mutex<T>
souvent avecArc<Mutex<T>>
Send
et/ouSync
Il n'y a rien de plus explicite, ces informations apparaissent dans le système de type qui va permettre au compilateur de s'assurer que les règles qui gouvernent ces concepts sont bien respectées.
C'est subjectif. Je trouve aussi que la syntaxe est lourde, mais c'est pas plus moche que des templates C++ qu'on observe en masse dans les librairies "header only" (beurk).
Exagération obsolète.
C'est pas sous prétexte d'être plus safe. C'est sous prétexte de prendre aucune décision pour le développeur. On le laisse gérer lui même pour qu'il puisse faire des applications performantes, on le laisse choisir lui même les trade-offs.
Le Go est un langage safe aussi, mais les trade-offs ont été choisi par les développeurs du langage/compilateur. Et toi, pauvre petit développeur, tu dois faire avec.
Ca j'ai mis pas mal de temps à le comprendre. Mais en gros, le choix qui a été fait par les développeurs de Rust est le suivant :
Il vaut mieux rejeter un programme valide qu'accepter un programme potentiellement invalide.
Le
unsafe
permet au développeur d'indiquer au compilateur que, même si le compilateur ne sait pas le déterminer, le bloc de code est safe. C'est à utiliser avec parcimonie, mais le côté "non safe" (qui est plutôt "n'a pas réussi a déterminer la safety") ne fuit pas vers le reste du programme.De plus, le hardware sur lequel tourne le code Rust (ton PC) est par nature "unsafe". Il y a donc naturellement des choses que l'on ne peut pas déterminer à l'avance comme étant "safe".
Au final, utiliser "unsafe" c'est déléguer à l'OS la garantie que l'opération est safe. Tout comme en Haskell on délèguerait la gestion d'une IO (impure) au runtime.
Et c'est dommage. Ce langage n'est pas parfait, loin de là. Beaucoup de fonctionnalités ne sont pas encore stabilisées (hello générateurs/code asynchrone/…). La syntaxe est dure à comprendre.
Mais plus j'apprend ce langage, plus mes hypothèses et opinions se cassent la figure, pour laisser place à la réalité.
Grâce à Rust, je me pose des questions sur mon code, mes données, que je ne me posais pas avant, et ce même dans d'autres langages.
Si j'ose dire, apprendre le Rust fait de moi un meilleur développeur C / C++.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: C++, haut niveau ?
Posté par David Delassus (site web personnel) . En réponse au journal Écrire un jeu en Rust presque de zéro. Évalué à 3. Dernière modification le 07 juin 2022 à 21:35.
D'après les sources de la glibc :
C'est toujours sbrk qui est utilisé.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: libretro core?
Posté par David Delassus (site web personnel) . En réponse au journal Écrire un jeu en Rust presque de zéro. Évalué à 3.
Parce que c'était pas le sujet du "challenge".
Je suis parti de "je voudrais bien ouvrir une fenêtre de manière cross-platforme sans embarquer une DLL" -> winit
Pour continuer vers "j'aimerais bien une primitive sympa pour dessiner dedans" --> pixels
Ensuite, je me suis hurté au compilateur Rust, ce qui m'a motivé à écrire cet article, comme un rappel personnel que ce que j'ai appris depuis 20 ans est faux : la programmation c'est compliqué, les langages nous mentent en cachant cela.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: C++, haut niveau ?
Posté par David Delassus (site web personnel) . En réponse au journal Écrire un jeu en Rust presque de zéro. Évalué à 3.
malloc/calloc/realloc/free (et alloca ne l'oublions pas), ce n'est pas de la gestion de la mémoire.
C'est à toi de calculer la taille suffisante pour stocker ta donnée au préalable. C'est à toi de t'assurer que le pointeur retourné par realloc est toujours le même qu'avant. C'est à toi de t'assurer de ne pas appeler free 2 fois sur le même pointeur.
L'implémentation des malloc qui appelle pour toi les syscall
sbrk
etbrk
et organisent la heap pour s'y retrouver reste quelque chose de très bas niveau, et peu différent de ce que tu ferais en Assembleur.Maintenant, concernant le C++ et le Go, c'est mécanisme de gestion de mémoire sont bien masqués à l'utilisateur. En Go ce n'est pas toi qui appelle le Garbage Collector, ou qui alloue la mémoire pour tes objets. En C++ ce n'est pas toi qui appelle tel ou tel constructeur, ni les destructeurs. Ces choses sont présentes, mais pas exposés à l'utilisateur.
Je persiste et signe donc, C, C++, Go, et bien d'autres langages : ne sont pas explicite sur les concepts sous-jacents.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: C++, haut niveau ?
Posté par David Delassus (site web personnel) . En réponse au journal Écrire un jeu en Rust presque de zéro. Évalué à 3.
Ce qui suit n'est que mon avis.
Pour moi, en C++ tu n'appelle pas manuellement les constructeurs (d'assignation, de copie, …) ou les destructeurs. Donc la durée de vie d'une variable au sein d'une scope est gérée pour toi. En C tu devras appeler ces fonctions à la main.
La STL fournit nombre d'abstractions qu'il est désormais recommandé d'utiliser, sauf si tu as un besoin spécifique bien sûr.
L'héritage, déjà rien que ça. Je recommande la lecture de ooc.pdf pour comprendre comment l'implémenter en C, et ainsi comprendre comment le C++ masque un autre concept bas niveau (organisation de la mémoire, édition des liens, etc…).
Ce qui fait qu'un langage peut être considéré comme haut niveau selon moi, c'est le nombre d'abstraction présente. Et C++ possède beaucoup d'abstraction, la ou le C n'en possède quasiment aucune.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: encore ?
Posté par David Delassus (site web personnel) . En réponse au lien Python 3.11, plus rapide pour de vrai de vrai. Évalué à 8.
Sauf que là depuis la 3.10, c'est la vocation de toute la team d'améliorer les perfs de Python pour revenir dans la course contre Javascript, Java, Go, etc…
Car ces dernières années, avec les ajouts de fonctionnalités, il a pas mal ralentit.
Alors oui, on a déjà eu quelques optimisations du bytecode en 3.9 et 3.10, mais la 3.11 ils ont décidé de prendre la pelle à merde et de creuser.
Et a chaque nouvelle rc de la 3.11, les benchs sont de plus en plus positifs. C'est surtout ça que tu entends depuis un certains temps, le progrès de la 3.11 sur ce sujet.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg