Alcune riflessioni.
Se la premessa della tua domanda è se puoi passare da uno sviluppatore Python allo sviluppo di cose per Discourse, allora la risposta è un po’ più sfumata.
Come hai scoperto, il passaggio da Python a Ruby è relativamente banale. Puoi far fare a Ruby ciò che puoi fare in Python semplicemente imparando le differenze semantiche.
Tuttavia, come ho dovuto fare lo stesso salto qualche anno fa, se provi semplicemente a fare ciò che puoi fare con Python in Ruby, ti perderai alcune delle cose che rendono Ruby “Ruby”.
In secondo luogo, quella sfumatura di Discourse.
Mentre il backend è basato su Ruby, gran parte della “complessità” nel creare cose per Discourse risiede nello sviluppo sia del backend (Ruby) che del client (JavaScript/Ember) affinché lavorino in armonia.
Anche con una comprensione approfondita di come utilizzare Ruby, devi anche investire del tempo per capire come funziona il backend di Discourse. Esiste un eccellente ecosistema che il backend fornisce ai plugin, come accesso ai dati / strutture dati, logging, messaggistica inter-processo, processi asincroni, ecc. Ho trovato importante acquisire una buona comprensione di questo.
Ho trovato molto gratificante dare un’occhiata a Ruby, ma ho trovato il frontend JavaScript troppo impegnativo per le mie esigenze. Sono un programmatore per hobby con un po’ di esperienza, quindi lo attribuirei a questo e alla mancanza di una mente agile.
Detto questo, sono stato in grado di afferrare altri framework JavaScript, ad esempio Svelte. Le specificità di Ember e il rigido flusso di istanziazione / coordinamento e le strutture delle cartelle erano un po’ complesse per me e per le mie esigenze.
La mia soluzione è stata utilizzare l’eccellente Custom Wizard Plugin per catturare l’interazione del frontend e poi passarla al mio codice Ruby backend. Questo funziona bene con processi di tipo batch ma è meno utile in ambienti interattivi.
Buona fortuna.