Wikifunctions:Présentation

From Wikifunctions
This page is a translated version of the page Wikifunctions:About and the translation is 57% complete.
Outdated translations are marked like this.
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.

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 a une description, une liste de paramètres, des cas de test, une liste de mises en œuvre dans différents langages de programmation, ainsi que d’autres métadonnées. Les mises en œuvres peuvent être réutilisées dans des 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 nuage en réseau ou dans des carnets Jupyter[1] ou PAWS[2]), composées 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, il permet aux contributeurs du monde entier de créer et maintenir une bibliothèque de fonctions, laquelle peut être utilisée par n’importe qui dans un but quelconque. Chaque fonction peut être soutenue par diverses mises en œuvre 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 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 glanées sur 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 différents, 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