Discourse es seguro en cuanto a memoria. Ruby es un lenguaje seguro en cuanto a memoria; todos los lenguajes con recolección de basura lo son. La principal diferencia con Rust a este respecto es cuándo se realizan las comprobaciones de seguridad; Rust las realiza en tiempo de compilación, Ruby las realiza en tiempo de ejecución.
Rust aborda solo unas pocas clases de errores, principalmente aquellos causados por la falta de recolección de basura de C++. Ciertamente es genial que hayan encontrado una manera de hacerlo manteniendo los beneficios de rendimiento teóricamente posibles con punteros, pero de ninguna manera previene el tipo de errores que verías como usuario. Por ejemplo, si uso < cuando quise <=, y como resultado obtengo un error de “off-by-one”, Rust no me salvará. Si olvido generar un mensaje de éxito después de que una acción se completa, Rust no me salvará.
Lo que realmente previene los errores es el tipo de desarrollo impulsado por pruebas que Discourse ya implementa. Hay muy pocos proyectos que puedas implementar directamente desde master y esperar que sean estables, pero Discourse es uno de ellos.
Las “plataformas modernas” aparecen a diestra y siniestra usando JavaScript para backend y frontend. Ruby está 2 lugares detrás de Rust en popularidad (Kotlin está entre los dos), por lo que apenas es un lenguaje raro en este momento. Claro, en otros 10 años las cosas pueden verse diferentes, pero incluso una reescritura a Rust sería deuda técnica en 10 años.
Es difícil transmitir cuán ingenua es esa afirmación, por eso todo el mundo se ríe de la idea. He visto a mis desarrolladores refactorizar código durante 3 años, y apenas están listos para comenzar a migrar de wxWidgets/ShuttleGUI a Qt/QML, lo que, para contextualizar, es una migración de C++ a C++, solo que con un kit de herramientas de interfaz de usuario diferente. Es simplemente difícil transformar código y al mismo tiempo garantizar que el comportamiento siga siendo idéntico. 12-16 días es el tiempo que probablemente necesitarías solo para la planificación antes de que alguien empiece.