Category: Développement

Nextcloud accuse Google de saboter son application de fichiers Android

2025-05-13
Nextcloud accuse Google de saboter son application de fichiers Android

L'éditeur de logiciel européen Nextcloud accuse Google de saboter délibérément son application de fichiers Android, qui compte plus de 800 000 utilisateurs. Le problème réside dans l'autorisation « Accès à tous les fichiers », nécessaire à la fonctionnalité de synchronisation des fichiers de l'application. Bien que Google propose des alternatives axées sur la confidentialité, Nextcloud affirme qu'elles sont insuffisantes. Google a révoqué cette autorisation en 2024, rendant l'application inutilisable sur le Play Store. Nextcloud estime qu'il s'agit d'un exemple de comportement anticoncurrentiel des grandes entreprises technologiques, citant la lenteur des processus réglementaires et le manque de recours pour les petites entreprises. L'application reste fonctionnelle sur F-Droid.

Développement Anticoncurrentiel

Le parcours de Dgraph Labs vers des audits de sécurité continus : plus de 2 000 problèmes de sécurité résolus

2025-05-13
Le parcours de Dgraph Labs vers des audits de sécurité continus : plus de 2 000 problèmes de sécurité résolus

Dgraph Labs a mis en place un système d'audit de sécurité continu à l'aide de GitHub Actions et de divers ensembles d'outils, résolvant plus de 2 000 problèmes de sécurité en seulement trois mois, améliorant ainsi considérablement la conformité SOC2. Le système couvre le code, les artefacts binaires et les images Docker, en utilisant Trivy et Snyk pour l'analyse et l'onglet Sécurité de GitHub pour le suivi et la résolution des problèmes. Des linters sont utilisés pour l'analyse statique du code et DependaBot pour les corrections automatisées. Cela a considérablement amélioré la visibilité et la résolution plus rapide des problèmes de sécurité, servant d'exemple pour l'amélioration continue de la sécurité.

Odin : Un langage inspiré de C qui adopte les meilleures pratiques modernes

2025-05-13
Odin : Un langage inspiré de C qui adopte les meilleures pratiques modernes

L'auteur, s'appuyant sur son expérience de développement d'un moteur de jeu en C, met en lumière l'intégration d'un certain nombre de meilleures pratiques C dans Odin. Cela inclut les allocateurs personnalisés (avec un support intégré dans les bibliothèques principales d'Odin), les allocateurs temporaires pour la gestion de mémoire par image, les allocateurs de suivi pour la détection des fuites, l'initialisation à zéro, les initialiseurs désignés et la programmation optimisée pour le cache grâce à la prise en charge de SoA. Odin réussit cela tout en conservant la simplicité de C, en ajoutant des fonctionnalités modernes telles que les génériques et la surcharge. L'auteur souligne que, bien que les fonctionnalités d'Odin soient très bénéfiques pour ceux qui ont une expérience similaire en C, il est également accessible à ceux qui ne sont pas familiers avec ces concepts, suggérant son livre comme ressource introductive.

Développement

Pipelines ML hors ligne vs. en ligne : la clé pour la mise à l’échelle de l’IA

2025-05-13
Pipelines ML hors ligne vs. en ligne : la clé pour la mise à l’échelle de l’IA

Cet article met en évidence la différence cruciale entre les pipelines d’apprentissage automatique hors ligne et en ligne dans la construction de systèmes d’IA évolutifs. Les pipelines hors ligne gèrent le traitement par lots, comme la collecte de données, l’ETL et l’entraînement des modèles, tandis que les pipelines en ligne fournissent des prédictions en temps réel ou quasi réel aux utilisateurs. L’article souligne l’importance de séparer ces pipelines et utilise un pipeline de fonctionnalités pour l’ajustement fin d’un SLM de résumé comme exemple. Il explique comment construire un processus de génération de jeux de données reproductible, traçable et évolutif à l’aide de frameworks MLOps tels que ZenML. Ce processus extrait des données de MongoDB, les traite en plusieurs étapes et les publie finalement sur Hugging Face. Comprendre cette séparation est crucial pour construire des systèmes d’IA robustes en production.

Cinq tactiques de persuasion pour les responsables d'ingénierie

2025-05-13
Cinq tactiques de persuasion pour les responsables d'ingénierie

Cet article explore cinq techniques de persuasion couramment utilisées par les responsables d'ingénierie, illustrées par des exemples concrets. La première est la méthode « Nemawashi », qui implique une communication préventive avec les parties prenantes pour obtenir un soutien et minimiser les conflits. Ensuite, il y a la « tarification par leurre », qui présente des options stratégiquement pour guider le choix souhaité. Puis, la « psychologie inverse » utilise des suggestions contre-intuitives pour susciter une réponse souhaitée. Ensuite, il y a « Laissez-moi décider cela pour vous (LMDTFY) », où une décision est prise avec la possibilité d'un veto, favorisant l'autonomie. Enfin, la « sérendipité orchestrée » consiste à créer des coïncidences pour faciliter la communication. Ces tactiques peuvent améliorer considérablement l'efficacité d'un responsable d'ingénierie dans l'approbation des projets, l'acquisition de ressources et la collaboration d'équipe.

Développement Techniques de persuasion

Contribuer à Firefox : Code source, compilations et support

2025-05-13
Contribuer à Firefox : Code source, compilations et support

Vous souhaitez contribuer au développement de Firefox ? Mozilla fournit une documentation complète sur la structure du répertoire du code source (https://firefox-source-docs.mozilla.org/contributing/directory_structure.html) et une référence rapide pour les contributions (https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html), vous guidant dans la compilation de Firefox et la création de correctifs. Besoin d'aide ? Rejoignez le canal `Introduction` de Matrix (https://chat.mozilla.org/#/room/#introduction:mozilla.org) pour obtenir du support. Vous pouvez également télécharger les compilations nocturnes pour les tests (https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/ ou https://www.mozilla.org/firefox/channel/desktop/#nightly), mais sachez qu'elles peuvent contenir des bogues.

Développement

arXivLabs : Collaboration communautaire pour de nouvelles fonctionnalités arXiv

2025-05-13
arXivLabs : Collaboration communautaire pour de nouvelles fonctionnalités arXiv

arXivLabs est un cadre permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv directement sur le site web. Les participants doivent adhérer aux valeurs d'arXiv : ouverture, communauté, excellence et confidentialité des données utilisateur. Vous avez une idée pour améliorer la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Shader Minifier : L’arme secrète derrière les animations de demoscene petites et impressionnantes

2025-05-13
Shader Minifier : L’arme secrète derrière les animations de demoscene petites et impressionnantes

Shader Minifier est un outil qui minifie le code GLSL, permettant aux artistes de la demoscene de créer des animations informatiques complexes dans des tailles de fichiers incroyablement petites. Cet article de blog détaille son évolution, de la simple suppression des espaces et des commentaires à des optimisations avancées telles que l’analyse statique et l’intégration de fonctions. L’auteur raconte comment Shader Minifier a réduit un shader de 47 KB à 5,2 KB après compression, améliorant considérablement l’efficacité du développement. Le principe central consiste à utiliser des algorithmes de compression en réutilisant les noms de variables et en optimisant les fonctions pour réduire la taille du code et augmenter les taux de compression. Bien qu’il ait déjà réussi, l’auteur explore des améliorations supplémentaires pour relever les défis des animations encore plus grandes de 64 KB.

Développement compression de code

Une politique de transience : la philosophie d’utilisation de l’ordinateur d’un programmeur

2025-05-13

Cet article détaille les habitudes inhabituelles d’utilisation de l’ordinateur d’un programmeur, centrées sur une « politique de transience ». Cette philosophie dicte que toutes les données doivent être soit délibérément permanentes et organisées, soit strictement temporaires, évitant la permanence accidentelle. Des exemples incluent la désactivation de l’historique persistant du shell, le nettoyage régulier du bureau de l’interface graphique et la fermeture fréquente du navigateur. L’auteur explique les avantages, tels que l’augmentation de l’efficacité, une meilleure organisation et la réduction des données inutiles. Des pratiques connexes, telles que la gestion des enregistrements d’entreprise et la configuration automatisée du système d’exploitation, sont discutées, ainsi que des exceptions à la politique, telles que les e-mails et l’historique du navigateur, qui sont conservés de façon permanente en raison de leur utilité imprévisible.

Plongeon au cœur de BEAM : les fondations d'Elixir

2025-05-12
Plongeon au cœur de BEAM : les fondations d'Elixir

Ceci est le premier chapitre de la série « Elixir, 7 étapes pour démarrer votre voyage », qui explore les fondements de la puissance et de la fiabilité d'Elixir : la machine virtuelle Erlang (BEAM). L'article explore l'histoire d'Erlang, ses objectifs de conception et son rôle crucial dans Elixir. Créé au milieu des années 1980, Erlang, initialement pour les télécommunications, est maintenant un langage polyvalent connu pour ses systèmes distribués, tolérants aux pannes, massivement concurrents et temps réel souple. BEAM gère l'exécution du code Erlang, les processus concurrents et atteint la tolérance aux pannes grâce à l'échange de messages asynchrones. Elixir, s'exécutant sur BEAM, hérite de ces atouts tout en ajoutant une syntaxe plus propre et une bibliothèque robuste. Un exemple de code simple montre l'interaction entre Erlang et Elixir. Le prochain chapitre promet une plongée profonde dans les processus et la concurrence d'Erlang.

Développement

Construisez votre propre assistant vocal local : Le retour de l'avantage

2025-05-12
Construisez votre propre assistant vocal local : Le retour de l'avantage

Fatigué de dépendre des grands modèles de langage (LLM) dans le cloud ? Ce tutoriel en 5 parties vous apprend à construire votre propre assistant vocal local qui comprend le langage naturel, exécute les fonctions de votre application et respecte votre vie privée. Apprenez à affiner LLaMA 3.1 avec LoRA, à créer un ensemble de données d'appel de fonction, à exécuter l'inférence localement et à intégrer l'E/S vocale. L'auteur souligne l'importance des principes MLOps pour l'IA locale, en fournissant un guide pratique pour construire un assistant vocal local robuste et durable.

Développement

arXivLabs : Projets expérimentaux avec des collaborateurs de la communauté

2025-05-12
arXivLabs : Projets expérimentaux avec des collaborateurs de la communauté

arXivLabs est un framework qui permet aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv directement sur notre site web. Les individus et les organisations qui travaillent avec arXivLabs ont adopté et accepté nos valeurs d'ouverture, de communauté, d'excellence et de confidentialité des données des utilisateurs. arXiv est engagé envers ces valeurs et ne travaille qu'avec des partenaires qui les respectent. Vous avez une idée de projet qui apportera de la valeur à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Construisez une base SOC 2 solide : solution tout-en-un

2025-05-12
Construisez une base SOC 2 solide : solution tout-en-un

Fatigué de lutter contre la conformité SOC 2 ? Cet outil fournit des listes de contrôle SOC 2 claires et exploitables pour comprendre les exigences et suivre facilement les progrès. Générez instantanément des politiques fondamentales conformes à SOC 2 pour démarrer votre documentation. Centralisez les téléchargements de preuves et liez les fichiers directement aux contrôles, simplifiant ainsi la préparation de l’audit. Collaborez efficacement grâce à l’attribution des tâches à l’équipe, au suivi de l’état et à la gestion des demandes de preuves, le tout sur une seule plateforme. Les mises à jour futures incluent la collecte automatisée de preuves, la surveillance continue des contrôles et les intégrations de fournisseurs.

Développement

Mergeable : Une meilleure boîte de réception pour les pull requests GitHub

2025-05-12
Mergeable : Une meilleure boîte de réception pour les pull requests GitHub

Mergeable est une application navigateur conçue pour améliorer la gestion des pull requests GitHub. Elle permet aux utilisateurs d'organiser les PR en sections à l'aide de requêtes de recherche flexibles, stocke toutes les données localement dans le navigateur, prend en charge les raccourcis clavier pour une navigation rapide et se connecte à plusieurs instances GitHub (y compris GitHub Enterprise). Plus important encore, elle met en évidence les PR en attente de votre action, le tout sans nécessiter l'installation d'aucune application GitHub. Essayez l'instance publique à l'adresse https://app.usemergeable.dev ou hébergez-la vous-même à l'aide de la documentation à l'adresse https://www.usemergeable.dev.

Développement

5 étapes pour la simulation N-corps : un tutoriel Python

2025-05-12

Cette série de tutoriels apprend aux débutants à écrire du code de simulation de gravité N-corps rapide et propre en Python, inspiré du cours "CFD Python : 12 étapes vers Navier-Stokes". Chaque étape fournit des explications détaillées et du code complet, encourageant les lecteurs à réécrire le code pour une meilleure compréhension. Même avec des connaissances de base en Python et en calcul, les débutants peuvent suivre. Une fois terminé, vous pourrez créer votre propre simulation N-corps et explorer des projets connexes.

Développement Simulation N-corps

arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

2025-05-12
arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

arXivLabs est un cadre permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv directement sur notre site web. Les individus et les organisations qui travaillent avec arXivLabs ont adopté et accepté nos valeurs d'ouverture, de communauté, d'excellence et de confidentialité des données des utilisateurs. arXiv s'engage envers ces valeurs et ne travaille qu'avec des partenaires qui les respectent. Vous avez une idée de projet qui apportera de la valeur à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Représentation mémoire efficace avec les GADTs en OCaml

2025-05-12
Représentation mémoire efficace avec les GADTs en OCaml

Cet article explore l'utilisation des Types de Données Algébriques Généralisés (GADTs) en OCaml pour optimiser la représentation mémoire. L'auteur explique d'abord les limitations du polymorphisme d'OCaml, notamment l'inefficacité spatiale de List.iter lorsqu'il gère différents types de données en raison de la représentation mémoire uniforme. Des tentatives de création d'un type `Compact_array` à l'aide de variantes ordinaires et d'objets échouent en raison de problèmes d'inférence de type et d'allocation mémoire. Enfin, en utilisant les GADTs, l'auteur crée avec succès une représentation mémoire flexible et efficace pour les tableaux de différents types de données, montrant l'utilité des GADTs au-delà de l'écriture de compilateurs, notamment dans les applications hautes performances exigeant un contrôle précis de la mémoire.

Développement optimisation mémoire

Nix : des chaînes d’approvisionnement logicielles démonstrablement sécurisées

2025-05-12
Nix : des chaînes d’approvisionnement logicielles démonstrablement sécurisées

Répondre aux réglementations strictes en matière de sécurité des chaînes d’approvisionnement logicielles implique souvent des environnements isolés coûteux et des vérifications approfondies. Cet article présente Nix, un puissant gestionnaire de paquets, comme solution. Nix permet une intégrité vérifiable de la chaîne d’approvisionnement sans sacrifier la vitesse de développement. Il suit l’origine et l’intégrité exactes du logiciel, produisant des paquets sources hors ligne auditable. Un exemple d’image NixOS amorçable montre comment Nix extrait des dérivations à sortie fixe (FOD) vérifiables de l’arbre de dépendances, permettant des reconstrutions hors ligne pour garantir une traçabilité et une intégrité totales. Cela transforme la conformité d’un obstacle en une étape de vérification post-développement gérable, réduisant considérablement les coûts et améliorant l’efficacité du développement.

Développement Vérifiabilité

Vaincre la surcharge d'informations sur HN : des actualités technologiques personnalisées grâce à l'IA

2025-05-12
Vaincre la surcharge d'informations sur HN : des actualités technologiques personnalisées grâce à l'IA

L'auteur, utilisateur de Hacker News depuis longtemps, luttait contre la surcharge d'informations. Pour y remédier, il a créé deux outils : Tobie, un bot Telegram qui fournit des articles HN personnalisés en fonction des mots clés et des seuils de votes ; et HaNe, une extension Chrome qui offre des liens archivés pour les articles payants, un accès rapide aux fils de discussion HN et des résumés de commentaires par IA. Ces outils ont considérablement amélioré son efficacité de lecture, réduit son temps d'écran et atténué son anxiété informationnelle.

Développement

Embeddings : L'avenir de la rédaction technique ?

2025-05-12

Cet article explore comment la technologie des embeddings pourrait révolutionner la rédaction technique. Contrairement aux modèles de génération de texte, la technologie des embeddings compare la similarité sémantique des textes en les convertissant en vecteurs de haute dimensionalité (embeddings). L'article explique comment les embeddings sont générés, leur coût et les différences entre les différents modèles, en utilisant le modèle Voyage-3 comme exemple pour illustrer ses avantages dans la gestion de grands textes. L'auteur utilise l'analogie des coordonnées d'une carte pour expliquer comment les embeddings sont représentés dans l'espace de haute dimensionalité et, en utilisant Word2vec comme exemple, démontre la capacité de la technologie des embeddings à capturer les relations sémantiques. Enfin, l'article présente l'application de la technologie des embeddings dans la recommandation de pages connexes sur les sites web de documentation et analyse son énorme potentiel dans la rédaction technique.

StarGuard : scores de confiance pour les dépôts GitHub

2025-05-12
StarGuard : scores de confiance pour les dépôts GitHub

StarGuard est un outil en ligne de commande conçu pour détecter les campagnes d'étoiles factices, le détournement de dépendances, les drapeaux d'alerte de licence et d'autres indicateurs de risque open-source sur GitHub. En analysant les étoiles, les dépendances, les licences, les mainteneurs et le code, il génère un score de confiance, permettant aux CTO, aux équipes de sécurité et aux investisseurs de capital-risque d'évaluer rapidement les risques open-source. StarGuard produit des rapports au format JSON, Markdown et texte brut, ainsi que des graphiques d'historique des étoiles et des badges shields.io.

Développement sécurité open-source

Espaces de noms Ruby : un regard critique sur une implémentation proposée

2025-05-12

Cet article de blog remet en question une implémentation proposée des espaces de noms dans Ruby. L’auteur soutient que la proposition vise à résoudre des problèmes tels que les conflits de noms de bibliothèques, les modules partagés globalement et les multiples versions de gems, mais ces problèmes ne sont pas fréquemment rencontrés en pratique. La complexité introduite par la proposition, telle que la déduplication, pourrait surpasser ses avantages. L’auteur préfère une approche plus légère, comme la restriction de l’accès aux constantes et la fourniture d’un mécanisme semblable à BasicObject pour améliorer la maintenabilité et la modularité du code.

Développement Espaces de noms Modularité

Échec du comité de conduite du code de LLVM : une histoire de contribution open source

2025-05-12

Un contributeur open source a soumis un rapport de bug au projet LLVM et a subi un traitement injuste. Malgré la fourniture de preuves exhaustives, le comité de conduite du code a statué contre le contributeur tout en ignorant les violations claires d'autres contributeurs. Cela soulève des questions sur l'application des codes de conduite dans les communautés open source et des préoccupations concernant l'équité et la responsabilité. L'incident s'est même étendu au projet Mesa, soulignant davantage le besoin de mécanismes améliorés de résolution des conflits dans les communautés open source.

CoMaps : Une fourche communautaire d’Organic Maps prend son envol

2025-05-12
CoMaps : Une fourche communautaire d’Organic Maps prend son envol

La fourche communautaire d’Organic Maps, CoMaps, progresse rapidement. Construit sur les principes de transparence, de prise de décision communautaire, à but non lucratif, open source et axé sur la confidentialité, le projet se concentre sur l’établissement de ses fondations et de sa technologie. La première version est en cours de développement. Un vote communautaire pour le nom final du projet se terminera le 20 mai sur Codeberg. CoMaps accueille les contributions en matière de développement, de gouvernance, de communication et de dons. Les négociations avec les actionnaires d’Organic Maps sont au point mort ; Viktor souhaite conserver le contrôle total, laissant l’avenir d’Organic Maps incertain.

kdlfmt : un formatteur de code KDL robuste

2025-05-12
kdlfmt : un formatteur de code KDL robuste

kdlfmt est un outil en ligne de commande basé sur Rust pour formater les documents KDL (Key-Data-List). L'installation est flexible, prenant en charge Cargo, Homebrew, npm et les binaires précompilés. Il offre la commande `format` pour le formatage, `check` pour la validation et `completions` pour la complétion automatique du shell. Les fichiers `.kdlfmtignore` permettent l'exclusion, et les options permettent de spécifier la version de KDL et le niveau de journalisation. Que ce soit par entrée de pipeline ou en traitant des fichiers, kdlfmt formate efficacement le code KDL pour une meilleure lisibilité et cohérence.

Développement

Maîtriser la compilation Dart : Plongez au cœur de `dart compile`

2025-05-12
Maîtriser la compilation Dart : Plongez au cœur de `dart compile`

Ce guide fournit une vue d'ensemble complète de la commande Dart `dart compile`, permettant la compilation de programmes Dart vers diverses plates-formes cibles. Il détaille l'utilisation de sous-commandes telles que `exe` (exécutables autonomes), `aot-snapshot` (modules AOT), `jit-snapshot` (modules JIT), `kernel` (modules portables), `js` (JavaScript) et `wasm` (WebAssembly), en expliquant leurs fonctionnalités et caractéristiques. Le guide couvre la compilation croisée, la signature de code et les techniques d'optimisation pour la compilation web en production, offrant une compréhension complète de la compilation Dart.

Développement

Mise à jour majeure d'Armbian : Intégration d'OpenMediaVault et plus encore

2025-05-12
Mise à jour majeure d'Armbian : Intégration d'OpenMediaVault et plus encore

La mise à jour d'Armbian de cette semaine apporte des améliorations significatives sur tous les fronts. Le point culminant est l'intégration d'OpenMediaVault, permettant aux utilisateurs de transformer facilement des ordinateurs monocarte compatibles en dispositifs de stockage en réseau (NAS). D'autres améliorations incluent la suppression d'une invite de point d'accès sans fil redondante, la mise à jour des chargeurs de démarrage sur Orange Pi 5 Max et PocketBeagle2, et l'optimisation des performances et de la stabilité sur la plateforme Rockchip64. Armbian continue également d'améliorer son infrastructure, de nettoyer le code inutilisé et de préparer les futures initiatives de test.

Développement Ordinateurs monocarte

Warehouse de PyPI : Suite de tests 81% plus rapide grâce à des optimisations simples

2025-05-12
Warehouse de PyPI : Suite de tests 81% plus rapide grâce à des optimisations simples

Trail of Bits a considérablement amélioré les performances de la suite de tests de Warehouse de PyPI, réduisant le temps d'exécution de 163 secondes à 30 secondes tout en augmentant le nombre de tests de 3 900 à plus de 4 700. Cette amélioration de 81 % a été obtenue grâce à plusieurs optimisations clés : la parallélisation de l'exécution des tests avec pytest-xdist, l'utilisation de sys.monitoring de Python 3.12 pour une instrumentation de couverture efficace, l'optimisation de la découverte des tests et l'élimination des importations inutiles. Ces techniques sont facilement applicables à de nombreux projets Python luttant contre des suites de tests lentes, offrant des gains de performance significatifs à un coût minimal.

Développement Optimisation des tests

Ingénierie inverse du Centre de sécurité Windows depuis un Airbnb à Séoul

2025-05-12

Un développeur, en vacances dans un Airbnb à Séoul avec seulement un MacBook, a surmonté de nombreux obstacles pour faire de l'ingénierie inverse du Centre de sécurité Windows et créer defendnot, un outil pour désactiver Windows Defender sans dépendre d'autres logiciels antivirus. Le post détaille les défis rencontrés, notamment le débogage multiplateforme, la latence élevée et une plongée profonde dans les jetons Windows et les mécanismes de sécurité. Le développeur a terminé le projet avec succès, mais a déploré l'expérience incroyablement frustrante.

Classements des langages de programmation : Python, Rust et JavaScript en tête

2025-05-12

Les classements des langages de programmation de mai sont disponibles ! Python conserve sa place de leader grâce à sa facilité d’utilisation et à son adoption généralisée, tandis que Rust continue de progresser grâce à ses performances et à ses fonctionnalités de sécurité. JavaScript reste une force dominante dans le développement web. Les actualités notables de ce mois incluent un atelier C++ sur le développement embarqué sûr et efficace, la sortie stable de Kotlin Compose Multiplatform et la sortie de Python 3.14.0 beta 1. Les classements varient légèrement selon les différents indices (PyPL, TIOBE, GitHub Pushes), mais Python, JavaScript et les langages de la famille C occupent systématiquement les premières places, reflétant leur influence dans divers domaines.

Développement classements
1 2 90 91 92 94 96 97 98 214 215