Abstract Wikipedia/Updates/2021-08-27/fr
◀ | Actualités de la Wikipédia abstraite | ▶ |
- Phase ζ (dzêta) achevée.
Lorsque nous avons commencé l’effort de développement menant au site Wikifonctions, nous avons subdivisé les travaux qui nous conduiront au lancement de Wikifonction en onze phases, nommées d’après les onze premières lettres de l’alphabet grec.
- Avec la phase α (alpha) achevée, il est devenu possible de créer dans le wiki des instances des Types fournis par le système.
- Avec la phase β (bêta), il est devenu possible de créer de nouveaux Types sur le wiki et de créer des instances de ces Types.
- Avec la phase γ (gamma), tous les principaux Types du modèle de fonction pré-générique étaient disponibles.
- Avec la phase δ (delta), il est devenu possible d’évaluer les mises en œuvre intégrées.
- Avec la phase ε (epsilon), il est devenu possible d’évaluer les mises en œuvre écrites par les contributeurs dans n’importe lequel des langages de programmation pris en charge.
- Cette semaine, nous avons achevé la phase ζ (zêta).
L’objectif de la phase ζ était de fournir la capacité à évaluer des mises en œuvre composées d’autres fonctions.
Que cela signifie-t-il ? Chaque Fonction dans Wikifonctions peut avoir plusieurs Mises en œuvre. Il y a trois façons différentes d’exprimer une Mise en œuvre :
- En tant que Fonction intégrée, écrite dans le code de Wikilambda : ceci signifie que la Mise en œuvre est gérée nativement par l’évaluateur en utilisant le code écrit par l’équipe.
- En tant que code dans un langage de programmation, écrit par les contributeurs de Wikifonctions : la Mise en œuvre d’une Fonction peut être donnée dans tout langage de programmation que Wikifonctions prend en charge. Éventuellement, nous visons à prendre en charge un large nombre de langages de programmation ; pour le moment, nous prenons en charge JavaScript et Python.
- En tant que composition d’autres Fonctions : ceci signifie que les contributeurs peuvent utiliser les Fonctions existantes en tant que briques de construction afin de mettre en œuvre de nouvelles capacités.
Avec la phase ζ nous fermons la trilogie des phases concernant les différentes façons de créer des Mises en œuvre.
Au delà du travail pour faire fonctionner la composition, nous avons également passer du temps sans d’autres secteurs.
Nous avons travaillé à réduire la dette technique que nous avons accumulée dans le développement durant les deux dernières phases que nous avions précipitées afin de nous préparer pour les passages en revue de sécurité et de performance. Nous avons amélioré le mode de fonctionnement du système d’erreurs, retravaillé le modèle de données pour les Testeurs et Erreurs, reconçu la bibliothèque commune afin de la rendre plus extensible, déplacé le contenu du wiki dans l’espace de noms principal et changé les définitions de fonctions en Python pour les aligner avec le style que nous utilisons pour celles en JavaScript.
Nous avons démarré quelques travaux pour améliorer l’actuelle expérience utilisateur réduite à l’essentiel. Ceci comprenait l’affichage des résultats des Testeurs et des métadonnées sur leur propre page, ainsi que les pages liées des Fonctions et des Mises en œuvre. Les Fonctions et les Mises en œuvre peuvent être facilement appelées directement depuis leur page. Nous avons beaucoup facilité la création et la connexion des Mises en œuvre et des Testeurs avec leur fonctions, démarré les conceptions pour la définition et la mise en œuvre d’une Fonction, et également mis en œuvre les alias qui figurent aux côtés des libellés, de façon très similaire aux éléments de Wikidata. Beaucoup de choses faites !
Nous passons maintenant à la phase η (êta). Les trois principaux objectifs de la phase η sont de finir le retravail du système d’Erreur, de revisiter les types définis par l’utilisateur pour mieux les intégrer avec les validateurs, ainsi que de permettre les types génériques.
Que sont les types génériques ?
Nous avons un type pour le une liste d’éléments. Mais au lieu de dire « Ceci est une liste d’éléments », nous pouvons souvent être plus spécifique et dire par exemple « Ceci est une liste de chaînes ». Pourquoi est-ce utile ? Parce si, par exemple, nous avons maintenant une fonction pour obtenir le premier élément d’une liste, nous savons que cette fonction retournera une chaîne lorsqu’on lui donne ce type de liste. Ceci nous permet alors d’offrir une meilleure expérience pour l’utilisateur en émettant des suggestions plus spécifiques, parce que maintenant le système sait qu’il peut suggérer des fonctions qui fonctionnent avec les chaînes. Nous pouvons également vérifier qu’une mise en œuvre a du sens en nous assurant que les types conviennent. Nous ne pourrons pas faire cela dans tous les cas, mas disposer des génériques nous permettra d’accroître énormément le nombre de cas où nous pouvons le faire. Pour plus d’informations de fond, vous pouvez vous référer à l’article de Wikipédia sur la programmation générique.
Dans ce cas d’exemple, au lieu d’un type spécial représentant une liste de chaîne, nous avons une fonction que prend un type et retourne une liste typée. Si vous appelez alors cette fonction avec le type chaîne en argument, le résultat de la fonction sera le concept d’une liste de chaînes. Et vous pouvez facilement l’utiliser pour tout autre type, y compris des types définis par l’utilisateur.
Tous mes remerciements à l’équipe ! Tous mes remerciements aux bénévoles ! Certains d’entre nous commencent à prendre plaisir à utiliser le prototype, à jouer avec les mises en œuvre entre différents langages de programmation qui interagissent avec d’autres de façons non triviales, ainsi qu’à commencer à construire une petite bibliothèque de fonctions. Ceci sera également la phase où nous passerons du modèle de données pré-générique au modèle fonctionnel complet. Pour donner un avertissement en bonne et due forme : ceci signifie probablement que presque tout devra être réécrit vers la fin de cette phase, afin de prendre avantage du système générique que nous introduisons.
Merci à vous de nous accompagner dans notre aventure !