Quelques réflexions.
Si la prémisse de votre question est de savoir si vous pouvez passer du statut de développeur Python à celui de développeur pour Discourse, la réponse est un peu plus nuancée.
Comme vous l’avez découvert, le passage de Python à Ruby est relativement trivial. Vous pouvez faire en Ruby ce que vous pouvez faire en Python en apprenant simplement les différences sémantiques.
Cependant, comme j’ai dû faire le même saut il y a quelques années, si vous essayez simplement de faire en Ruby ce que vous pouvez faire en Python, vous passerez à côté de certaines choses qui font de Ruby “Ruby”.
Deuxièmement, cette nuance de Discourse.
Bien que le backend soit basé sur Ruby, une grande partie de la “complexité” de la création de choses pour Discourse réside dans le développement du backend (Ruby) et du client (JavaScript/Ember) pour qu’ils fonctionnent en harmonie.
Même avec une compréhension approfondie de la façon d’utiliser Ruby, vous devez également investir du temps dans la compréhension du fonctionnement du backend de Discourse. Il existe un excellent écosystème que le backend fournit aux plugins - tels que l’accès aux données / les structures de données, la journalisation, la messagerie inter-processus, les tâches asynchrones, etc. J’ai trouvé qu’une bonne compréhension de cela était importante.
J’ai trouvé très gratifiant d’examiner Ruby, mais j’ai trouvé que le frontend JavaScript était trop difficile pour mes besoins. Je suis un codeur amateur avec quelques années d’expérience, donc je mettrais cela sur le compte de cela et du manque d’agilité mentale.
Cela dit, j’ai réussi à maîtriser d’autres frameworks JavaScript - Svelte par exemple. Les spécificités d’Ember et le flux d’instanciation rigide / la coordination et les structures de dossiers étaient un peu complexes pour moi et mes besoins.
Ma solution a été d’utiliser l’excellent Custom Wizard Plugin pour capturer les interactions du frontend, puis de les transmettre à mon code Ruby backend. Cela fonctionne bien avec les processus par lots, mais est moins utile dans les environnements interactifs.
Bonne chance.