É fácil ir de Python para Ruby?

Tenho interesse em começar a desenvolver plugins, mas trabalho como pesquisador de IA e, como tal, só tenho experiência decente com Python. E nunca fiz nada com Ruby antes. Então, pensei em perguntar aqui se alguém acha que é fácil pular de Python para Ruby?

Conversei com Claude e Perplexity sobre isso e, de acordo com eles, é bastante trivial, pois as linguagens são muito semelhantes. Mas nada supera a experiência humana, então ficaria grato por quaisquer dicas/informações :wink:

1 curtida

Algumas reflexões.

Se a premissa da sua pergunta é se você pode fazer a transição de um desenvolvedor Python para desenvolver coisas para o Discourse, então a resposta é um pouco mais complexa.

Como você descobriu, a transição de Python para Ruby é relativamente trivial. Você pode fazer o Ruby fazer o que você faz em Python simplesmente aprendendo as diferenças semânticas.

No entanto, como eu tive que fazer o mesmo salto há alguns anos, se você simplesmente tentar fazer o que pode fazer com Python em Ruby, você perderá algumas das coisas que tornam Ruby “Ruby”.

Em segundo lugar, essa nuance do Discourse.

Embora o backend seja baseado em Ruby, uma grande parte da “complexidade” na criação de coisas para o Discourse reside no desenvolvimento do backend (Ruby) e do cliente (JavaScript/Ember) para que trabalhem em harmonia.

Mesmo com um entendimento aprofundado de como usar Ruby, você também precisa investir algum tempo na compreensão de como o backend do Discourse funciona. Existe um excelente ecossistema que o backend fornece para plugins - como acesso a dados / estruturas de dados, logging, mensagens entre processos, jobs assíncronos, etc. Achei que obter uma boa compreensão disso era importante.

Achei muito gratificante dar uma olhada no Ruby, mas achei o frontend JavaScript muito desafiador para minhas necessidades. Sou um programador hobby com alguns anos de experiência, então atribuiria isso a isso e à falta de uma mente ágil.

Dito isso, consegui entender outros frameworks JavaScript - Svelte, por exemplo. Os detalhes específicos do Ember e o fluxo rígido de instanciação / coordenação e as estruturas de pastas foram um pouco complexos para mim e para minhas necessidades.

Minha solução foi usar o excelente Custom Wizard Plugin para capturar a interação do frontend e, em seguida, passá-la para o meu código Ruby de backend. Isso funciona bem com processos em lote, mas é menos útil em ambientes interativos.

Boa sorte.

7 curtidas

Muito obrigado pela sua resposta detalhada — eu realmente aprecio isso. Acho que vou começar a ler a documentação do desenvolvedor então :smiley: .

Você por acaso já tentou codificar coisas do Discourse usando Cline no Visual Studio Code? Estou curioso para saber o quão eficaz isso pode ser na base de código do Discourse.

Se você fizer isso, pode acabar saindo muito bem, especialmente se você estiver usando um ambiente de desenvolvimento, já que, se bem me lembro, o ambiente de desenvolvimento pode até recarregar automaticamente com as alterações.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.