Jump to content

Wikifunctions:A propos

From Wikifunctions
This page is a translated version of the page Wikifunctions:About and the translation is 100% complete.
Le premier but de Wikifunctions (Wikifonctions) est de soutenir les projets Wikimedia, mais il soutiendra des buts allant bien au delà, comme le fait aussi Wikidata. Ceci est une description de Wikifunctions allant donc au delà de Wikipédia.
Déclaration de mission
Un projet de Wikimédia pour que chacun puisse créer et maintenir collaborativement une bibliothèque de fonctions de code pour soutenir les projets de Wikimédia et au delà, que chacun pourra appeler et réutiliser dans les langues naturelles du monde et dans divers langages de programmation.

La vision pour Wikifunctions :

  1. Imaginez un système de programmation qui grandit et est maintenu collaborativement, auquel chacun peut contribuer et que chacun peut partager.
  2. Imaginez un système de programmation qui est réellement accessible, un qui est ouvert non seulement aux locuteurs en anglais mais aux milliards de personnes qui n’auront pas à apprendre l’anglais d’abord pour apprendre à programmer.
  3. Imaginez un système de programmation qui est réellement équipé vers un monde d’abord mobile et où l’exécution du code et le flux de données deviennent gérés et distribués intelligemment.
  4. Imaginez un système de programmation où vous écrivez le code une seule fois et il peut être exécuté partout par chacun – même avec des programmes écrits dans des langages de programmation différents.
  5. Imaginez un système de programmation qui nous permet de franchir le prochain grand saut dans la représentation de la connaissance.

Wikifunctions (Wikifonctions) est un dépot ouvert de code que chacun peut utiliser et auquel chacun peut contribuer.

Wikifunctions consiste en une collection de fonctions. Une fonction peut avoir une description dans divers langues avec une liste de paramètres, des cas de test, une liste d'implémentations dans différents langages de programmation, ainsi que d’autres métadonnées, toutes dans des langues diverses et variées (parmi celles étant supportées par Wikimedia). Les implémentations peuvent être réutilisées dans d'autres projets logiciels (applications ou scripts privés), appelées et exécutées en ligne (soit directement dans le navigateur ou dans un environnement hébergé sur un réseau en nuage ou dans des carnets Jupyter[1] ou PAWS[2]), écrites pour réaliser des fonctionnalités plus complexes, signées, analysées ou validées, et bien plus encore.

Wikifunctions est un projet dans l’esprit de Wikipédia, Wikidata, Wiktionnaire et d'autres projets similaires de culture libre collaboratifs mondiaux : il permet aux contributeurs du monde entier de créer et de maintenir une bibliothèque de fonctions multilingue, laquelle peut être utilisée par n’importe qui dans un but quelconque. Chaque fonction peut être soutenue par diverses implémentations dans différents langages de programmation, divers cas de test, pré- et post-conditions, de la documentation et des métadonnées sous forme d’estimations de garantie de temps d’exécution ou de complexité guarantees pour les différentes mises en oeuvre, etc. Les utilisateurs peuvent appeler une fonction directement sur le site web, ou depuis leur propre code ou leurs applications, depuis une interface en ligne de commande ou une application locale. La fonction peut être exécutée localement dans le navigateur, sur un serveur connecté au réseau en nuage, ou localement et encapsulée au sein de l’application de l’utilisateur.

Wikifunctions est conçu pour créer à la fois un catalogue commun bien défini de fonctions qui peuvent être largement réutilisées et comme un environnement où les fonctions peuvent être rapidement combinées et exécutées au fil de l’eau. Wikifunctions vise à faciliter la vie à la fois des développeurs, qui peuvent compter sur ce dépôt comme sur une bibliothèque externe, et celle des utilisateurs finaux, qui peuvent appeler les fonctions pour leurs besoins, d’une façon qui n’est actuellement disponible qu’avec une couverture très inégale au travers de sites web spécifiques, souvent écrits à la manière des années 1990 avec des applets Java.

Toutes les fonctions sont pures, afin de permettre une exécution sécurisée dans un bac à sable. Également, chaque mise en œuvre peut être annotée avec des métadonnées et signée numériquement par des moyens cryptographiques. Les utilisateurs finaux peuvent sélectionner et auditer quelle mise en œuvre utiliser pour chaque fonction, selon leurs ressources matérielles disponibles et leurs préférences de relations de confiance.

Wikifunctions permettra un accès facile à de larges bases de connaissance comme Wikidata, mais aussi à des fichiers binaires d’entrée et de sortie. Il est entièrement possible de téléverser une image comme fichier d’entrée et de retourner des résultats d’analyse comme ce qui est décrit dans l’image, ou le nombre de couleurs différentes dans l’image, par exemple dans un format différent. Ceci sera rendu disponible aux flux de travail sur Wikimedia Commons.

Wikifunctions continue la tradition de transférer davantage de calcul, qui a habituellement été réalisé depuis une ligne de commande ou dans des applications par des utilisateurs ayant une plus grande maîtrise de l’informatique, vers le web et de démocratiser l’accès à des fonctionnalités qui ne leur était pas encore disponible. En même temps, cela accroîtra partout la productivité des développeurs puisqu’ils pourront juste utiliser une large bibliothèque de code au lieu de compter sur la façon de bien copier-coller des réponses disponibles sur des sites tels que StackOverflow.

Au contraire de Wikipédia, les contributeurs créeront essentiellement de nouvelles mises en œuvre d’une fonction décrite au lieu de mettre à jour les fonctions existantes. Les mises en œuvre peuvent être testées automatiquement selon les tests donnés, comparées les unes aux autres et analysées de façon plus approfondie.

Les mises en œuvre peuvent être écrites dans de nombreux langages de programmation, tout en étant capables d’appeler des fonctions mises en œuvre dans d’autres langages de programmation. Le moteur d’exécution peut fonctionner sans heurt (bien que pas nécessairement avec la meilleure performance possible) dans différents langages. Bien que dans la plupart des cas, il y aura un large gain de performance en composant des fonctions écrites dans un même langage de programmation, il n’y a aucune obligation à le faire. Dans de nombreux cas, la vitesse de développement et le temps du développeur sera mieux valorisé que les cycles supplémentaires dépensés par l’ordinateur dans le moteur d’exécution.

Références

  1. m:WikiCite 2017/Jupyter notebooks on Wikimedia sites
  2. PAWS

Voir Aussi