Duniter en Python

Il m’est venue une idée qui m’a fait rire, puis réfléchir, puis donner l’envie de vous la partager.

L’idée est la suivante :

  • Réécrire en Python les parties du code NodeJS/Typescript qui ne sont pas destinées à être oxydées, surtout celles qui sont fragiles et dans lesquelles on n’ose pas « toucher » au code de peur de tout casser.

L’idée n’est finalement pas si saugrenue sachant qu’on a plusieurs développeurs Python dans les contributeurs.

Python permet le typage statique (analogue à Typescript), et le mode asynchrone (analogue à NodeJS).
Et le plus important : Python permet d’utiliser des bibliothèques compilées en Rust.

Ce serait un bon moyen d’avoir plus de code « maintenu » dans Duniter.

2 « J'aime »

J’avais fait une blockchain minimaliste en Python, largement inspirée du fonctionnement de Duniter (mais avec une création monétaire de type bitcoin, parce que c’est beaucoup, beaucoup plus facile). À ne surtout pas reprendre tel quel (pour des raisons de sécurité), mais ça peut toujours servir. (très peu de code, et bien découpé)

Ça peut être une solution pour toucher à des bouts de Duniter sans avoir à apprendre le TypeScript, mais le travail nécessaire pour faire le binding demanderait de déjà bien connaître ce langage, donc à moins que les portions à recoder en Python soient énormes, ça risquerait d’être contre-productif…

Ou alors tout refaire en Python, en utilisant les parties Rust qui sont déjà utilisées dans Duniter. Beaucoup de boulot aussi.

Ça serait intéressant, mais : Synthèse de l'événement AxiomBoat #1 - #43 par poka

3 « J'aime »

L’ annonce d’un changement dans la plateforme technique et en terme de maintenance, ne doit pas nous faire abandonner les travaux en cours, ce qui signifierait l’abandon de la G1 et de sa communauté. ce que je ne compte pas faire pour ma part.
Mais tu as raison, il faut en tenir compte pour évaluer si des travaux de consolidation en Python de Duniter sont pertinents. Si c’est pas trop dur (je vais analyser les possibilités de binding Python → NodeJS), cela nous permettra d’être plus serein dans les « secousses » de la transition technologique.