¿Cuáles son los pros y los contras de usar RoR vs Go en el back-end, cuáles son las situaciones en las que usar uno de ellos es imprescindible en lugar del otro?

Go vs Ruby es como la velocidad de cálculo frente a la velocidad de desarrollo. Como hablamos de backends web, solo estamos en un subespacio de cosas que podría hacer con Go y personalmente creo que las cosas interesantes están casi excluidas. Mi característica número uno de Go es la compilación cruzada. Pero eso no es importante cuando la aplicación es un servidor web. Veamos.

Al comienzo de un nuevo proyecto, lo más importante es adaptar su producto rápidamente e ir más allá. Aquí Ruby tiene una gran ventaja sobre Go. Go requiere escribir mucho código repetitivo para hacer las cosas. En el caso de Ruby eso es inusual. Hay un punto donde Go ganaría desde mi perspectiva. Este es el caso cuando se requerirían cálculos matemáticos. Ruby es muy malo aquí, excepto que usa extensiones nativas. Sin embargo aquí preferiría ir. Mi sugerencia. Comience con Ruby e intente desacoplar sus diferentes campos de dominio. Tan pronto como sea necesario, puede descomponer estos componentes en microservicios y reescribirlos en otro idioma (por ejemplo, Ir).

En caso de que también pueda considerar otros idiomas, sugeriría que también eche un vistazo a Clojure o Elixir. Personalmente, creo que no hay casi ninguna situación en la que Elixir no se ajuste al menos igual de bien, excepto de encontrar programadores adicionales. Pero Elixir tampoco sería un buen lenguaje en el caso de las cosas matemáticas. Clojure, por otro lado, también encajaría en ese caso. Clojure es un dialecto LISP en la JVM. La JVM le ofrece más ventajas, como una gran cantidad de bibliotecas para casi cualquier propósito. Y en ambos idiomas. Elixir y Clojure, puedes hacer muchas cosas sin una gran cantidad de código.