几点想法。
如果你的问题前提是能否从 Python 开发人员转变为开发与 Discourse 相关的东西,那么答案会有点微妙。
正如你所发现的,从 Python 到 Ruby 的转变相对容易。你只需学习语义上的差异,就可以用 Ruby 做你在 Python 中能做的事情。
然而,正如我几年前也经历过同样的转变一样,如果你只是试图用 Ruby 来做你在 Python 中能做的事情,你就会错过 Ruby 的一些“Ruby”之处。
其次,关于 Discourse 的细微差别。
虽然后端是基于 Ruby 的,但为 Discourse 创建东西的“复杂性”很大程度上在于开发后端(Ruby)和客户端(JavaScript/Ember)以协同工作。
即使对如何使用 Ruby 有透彻的了解,你还需要投入一些时间来理解 Discourse 后端的功能。后端为插件提供了一个极好的生态系统——例如数据访问/数据结构、日志记录、进程间消息传递、异步作业等。我认为对这一点有很好的理解很重要。
我发现学习 Ruby 很有价值,但我发现前端的 JavaScript 对我来说太难了。我是一个业余编码者,经验丰富,所以我想这是因为我缺乏敏捷的思维。
话虽如此,我也掌握了其他 JavaScript 框架——例如 Svelte。Ember 的具体细节以及僵化的实例化流程/协调和文件夹结构对我来说有点复杂,不适合我的需求。
我的解决方案是使用出色的 Custom Wizard Plugin 来捕获前端交互,然后将其传递给我的后端 Ruby 代码。这对于批处理类型的进程效果很好,但在交互式环境中用处不大。
祝你好运。