Chicos, ¿Ruby está muerto o no?



La última vez que hablo con desarrolladores o empresas, a menudo escucho la misma historia en diferentes palabras: "escribimos en Ruby, pero ahora nos estamos moviendo". Por un lado, nada sorprendente. El desarrollo es un negocio volátil, siempre aparece algo nuevo, todos los días hay que gastar muchos cerebros para mantenerse relevante.

Pero al mismo tiempo hay cierta devoción por la tecnología e incluso el culto al instrumento. Dígale al php shnik que es hora de pasar a .NET, escuchará "PHP es excelente, escribe la mitad del mundo en él", o simplemente lo verá en su cara.

¿Qué le pasa a Ruby y adónde fue su explosiva popularidad? Hablé con algunos rubistas. Por ejemplo, Maxim Indykov de Staply, cuyo equipo se muda de Ruby a Go, y con Alexei Kuznetsov de GeekBrains, una compañía que comenzó con cursos de Ruby y ahora los ha abandonado por completo.

¿Por qué es bueno Ruby?


Maxim Indykov ( maks_ohs ): sintaxis bien pensada en la que el código parece lo más legible posible. Puedes escribir de manera muy clara y concisa. Se implementa una gran cantidad de bibliotecas, cuya conexión no causa problemas.

Pavel Serezhin: La principal ventaja de ruby ​​son los rieles, el mejor marco. Patrones claramente implementados, no como en node.js, genial como quieras. La codificación en sí se parece al inglés.

Alexey Kuznetsov: El lenguaje tiene una sintaxis ligera y muy concisa que es muy adecuada para describir DSL y la lógica empresarial. Umbral de entrada bajo, comunidad amigable. Un buen candidato para aprender como primer idioma.

¿Por qué es malo Ruby?


Maxim Indykov: Al exigir recursos, toda la historia del desarrollo del lenguaje se acompaña de serias optimizaciones en el consumo de memoria. En la implementación del intérprete de referencia (MRI), no existe un subprocesamiento múltiple real utilizando múltiples núcleos de procesador (GIL).

Escritura dinámica Pero esto es difícil de atribuir a las desventajas, ya que le permite acelerar el desarrollo, aunque con una pérdida de calidad.

Pavel Serezhin: Lo bueno que es Ruby para escribir es tan desagradable como para leer. Es bastante difícil entender lo que está sucediendo, pero Dios no lo quiera, el autor tenía un síndrome de bicicleta e hizo una mierda, aquí al menos ahorcarse de inmediato. A veces, la escritura estática no es suficiente.

Alexey Kuznetsov: El lenguaje prácticamente no se desarrolla en el contexto de sus competidores más cercanos (JavaScript y Python). El crecimiento explosivo en el interés en Ruby se basó principalmente en Ruby on Rails. Pero ahora que los marcos similares a Rails están en todos los lenguajes populares de Java, Ruby tiene poco que ofrecer. La ausencia de incluso la tipificación estática opcional tampoco agrega puntos Ruby.

Dime por qué lo elegiste?


Alexey Kuznetsov: Me cambié a Ruby con C ++ hace unos 5 años y en ese momento era una elección razonable. Quería hacer productos que estén más cerca de los usuarios finales. PHP no tenía la mejor reputación. En JS, el ES5 + JQuery gobierna la pelota, y la sintaxis de Python no fue inspiradora.

Pavel Serezhin: Primero que nada, debido a los rieles, es ideal para el área de desarrollo web, lo que quería hacer. Y es bueno escribir en un lenguaje orientado al desarrollador.

Maxim Indykov: La comunidad realmente ha influido. Una gran cantidad de tutoriales escritos de calidad y mejores prácticas. Marco de Rails que hace que el desarrollo sea lo más claro posible desde el inicio del proyecto hasta la implementación. Una gran cantidad de enfoques e implementaciones para escribir pruebas: RSpec, MiniTest, etc.

En ese momento, ¿creías que tenía futuro?


Maxim Indykov: Sí, el lenguaje ha evolucionado constantemente (y continúa haciéndolo ahora). Había una gran cantidad de vacantes. En el contexto de php, todo parecía lo más lógico y correcto.

Pavel Serezhin: Nunca pensé que Ruby estaría en la cima, pero viceversa. Siempre parecía que habría pocos desarrolladores, y esto crearía competencia de la nada. Es cierto: este es uno de los inconvenientes, es casi imposible ingresar desde el nivel de junio, excepto en las capitales.

¿Por qué Ruby ahora es cada vez menos requerido?


Pavel Serezhin: Ahora, cada vez con más frecuencia, eligen idiomas y marcos más populares para crear nuevos proyectos. Tanto el rubí como los rieles tienen un rendimiento ligeramente inferior y no se mantienen al día con las tendencias. El soporte de Webpack se entregó a rails, lo que no ayuda mucho, es más fácil dividirlo en dos proyectos separados.

Alexey Kuznetsov: Node.js está canibalizando activamente el nicho de las aplicaciones web, y Go se está quedando sin todo tipo de utilidades.

Maxim Indykov: Me parece que la complicación constante de las tareas me influyó. La solución requiere un aumento constante de la capacidad y un uso creciente de los recursos, o intentos de no toparse con el techo, trucos arquitectónicos.

Ruby fue creado como un PL, que gusta a los desarrolladores, no a los negocios. ¿Crees que su impopularidad actual es un indicador de que tal estrategia no funciona?


Alexey Kuznetsov: Me parece que la situación es todo lo contrario. Otros lenguajes llegaron al nivel en que los desarrolladores estaban encantados de trabajar con ellos (desestructuración en ES6, transmisiones en Java8, debilidad cero en Kotlin y Swift, un modelo de competencia en Go).

Maxim Indykov: Las empresas quieren ahorrar dinero: recursos del servidor. Cuando hay tecnología disponible que puede soportar la carga en órdenes de magnitud más alta, pocos se negarán a ahorrar.
Cuando esta tecnología tiene una tipificación estricta, lo cual es una ventaja para la confiabilidad, esta es otra piedra en el jardín de Ruby.

Parece que esta es la situación en Rusia: hubo y hay desarrollo de php. Luego vino la popularidad local de ruby, que se describió como un asesino de php, pero a menudo carecía de otros argumentos comerciales además de "Bueno, es realmente conveniente escribir sobre Ruby". Todos estaban asustados por la falta de especialistas. Con el advenimiento del elixir e ir, los argumentos son mucho más comprensibles.

¿Tienes que irte con Ruby?


Alexei Kuznetsov: No creo que debamos correr con Ruby, pero vale la pena buscar alternativas.

Maxim Indykov: Todo el mercado está migrando. Las grandes empresas anuncian el uso de Go. Pero estamos hablando de migración en ciertas áreas del problema. El conocimiento de las nuevas tecnologías populares definitivamente debe ser poseído.

Pavel Serezhin: ahora js es mucho más popular y bastante inconveniente para rociar en dos lenguajes de sintaxis diferentes. Históricamente, tengo más alma para React, así que pienso dejar la pila completa al frente.

¿Estará entre los idiomas completamente no reclamados?


Maxim Indykov: No, para escribir rápidamente prototipos y MVP, donde se requiere facilidad de implementación, no tiene igual. Hay un campo no desarrollado de proyectos que deben implementarse de manera rápida y eficiente. Puede que no llegue el momento en que se requiera la optimización, pero como saben, la optimización prematura es mala.

Pavel Serezhin: No lo creo. Para Ruby, seguirá habiendo una cierta reputación de un lenguaje ligeramente impopular, un nicho con su comunidad.

Alexey Kuznetsov: Esto aún está muy lejos. Hay muchas situaciones en las que no es tan importante sobre qué está escrito el proyecto. Y muchos desarrolladores están listos para el fin de semana para recolectar MVP.
Y al contar con un equipo de rubistas, puede desarrollar con éxito el producto durante años (GitHub y GitLab, ambos escritos en RoR).

Ruby ha escrito millones de líneas de código que alguien necesita mantener.
Pero el número de nuevos proyectos solo disminuirá con el tiempo. Pienso que cinco años aún tiene el idioma.

¿Qué podría ayudar a Ruby a seguir siendo popular?


Maxim Indykov: Gran flexibilidad para los desarrolladores de idiomas. Implemente mejoras para trabajar con subprocesos múltiples.

Pavel Serezhin: Mejora el rendimiento del lenguaje y los rieles. Y ponga a la corporación con una tonelada de dinero de apoyo.

Alexey Kuznetsov: Ruby no se ha convertido en una calabaza. Otros carruajes acaban de aparecer. Algunos vienen con motores a reacción, otros brillan más fuertemente.
Creo que la escritura estática opcional (y el ajuste que se puede hacer encima) podría ayudar.

¿Cuál de los populares YaPs ahora es más adecuado para el rubista?


Maxim Indykov: Por el contrario, depende de las tareas, pero la respuesta a esta pregunta suele ser: elixir. Un lenguaje creado por personas de la comunidad ruby ​​/ rails.

Alexey Kuznetsov: En general, no estoy cerca de dividirme en desarrolladores por lenguaje de programación. No debería ser un problema para un desarrollador de software dominar una nueva pila a un nivel suficiente en 2-4 semanas.

Y entonces miraría hacia Go / JS / Swift dependiendo de las tareas en las que el desarrollador planea enfocarse. Hay Elixir y Clojure, pero no son convencionales.

Pavel Serezhin: casi todos los rubistas que se respetan se van a Golang. Entonces la respuesta es obvia.

Source: https://habr.com/ru/post/es433672/


All Articles