¿Qué opinas sobre Ruby on Rails? ¿Es popular y eficiente en el back-end?

No se puede negar que Rails es popular.

Estoy desarrollando con Rails desde sus inicios (siendo uno de esos tipos que tuvo dificultades para descubrir dónde termina Ruby y comienza Rails, ya que nunca antes había estado programando en Ruby).

Para ser justos, Rails ha sido más una sensación que lo que es ahora. MVC se ha hecho cargo (incluso los marcos JavaScript del lado del cliente) y puede encontrar marcos que funcionan de manera similar a Rails en más o menos todos los lenguajes relevantes relacionados con la web.

Cuando estaba cambiando de llenar mis archivos HTML con <?php y ?> , Fue una revelación para mí.

Hablando de eficiencia, solo puedo responder esta pregunta desde el punto de vista de un solo hombre:

Rails me permite administrar mi negocio de arranque sin apenas atención.

Mi negocio se basa en tres aplicaciones Rails:

Dos son simplemente presentaciones que apenas contienen lógica complicada (relativkreativ.at es solo un motor de blog autoconstruido y eficienterailsdevops.com ni siquiera usa una base de datos) mientras que el tercero maneja todos mis procesos comerciales (hablando con muchos terceros) API, administrar miembros de mi lista de correo electrónico, enviar correos electrónicos transaccionales, generar informes, ese tipo de cosas), exponer una API que todos mis otros sitios web usan para comunicarse.

Se ejecutan en una sola gota DigitalOcean que cuesta apenas dinero y tarareando durante años sin un tiempo de inactividad notable.

Me encanta la amabilidad general de la comunidad de Ruby y Rails tiene un camino claro para el futuro (con Rails 5 a la vuelta de la esquina). Estos pueden estar entre los puntos principales para distinguir Rails de marcos similares para otros idiomas.

La desventaja de Rails siempre ha sido que es engorroso implementarlo (especialmente si viene de un entorno en el que el FTP de algunos archivos es suficiente para impulsar una nueva versión). Es por eso que todo mi negocio se trata de enseñar a las personas cómo hacerlo.

Tan breve respuesta: sí y sí.

Depende de lo que quieras decir con eficiente. Rails está hecho para personas que quieren hacer las cosas. Es fácil crear un MVP. No necesita preocuparse por muchas cosas, ya que son manejadas por el marco o una de las muchas bibliotecas excelentes que existen. Si quieres tener un servidor web que sea rápido … bueno … Toma algo más. Si tiene tráfico pequeño o promedio en el servidor, Rails es okey. De Verdad. Pero cuando eche un vistazo a mi proyecto Phoenix / Elixir y compare los tiempos de respuesta, especialmente cuando tiene mucho tráfico, Elixir gana con mucho.

Lo mismo será cierto para muchos otros lenguajes / marcos también. Clojure, Go, Java, Scala. Los servidores web en estos idiomas siempre ganarán contra Ruby. Puedes escribir un servidor web rápido con Ruby, pero luego trabajas un poco contra el marco Rails y la biblioteca de registros activa (que es una de las razones por las cuales mis aplicaciones Rails son mucho más lentas que mis aplicaciones Phoenix).

Para resumirlo. Si la velocidad de desarrollo es importante, tome Ruby con el marco Rails. Pronto tendrá un prototipo y, al principio, la velocidad de desarrollo es mucho más importante que la velocidad de cálculo. Si el tráfico crece, aún puede escalar su backend horizontalmente. Si la velocidad importa desde el principio, toma algo más rápido. Clojure y Elixir son mis recomendaciones (me gusta la programación funcional, ya que las funciones de concurrencia incorporadas en la mayoría de los lenguajes funcionales son realmente geniales).

Algunas cosas clave que debe tener en cuenta:

  1. La mayoría de las veces se crea un marco para intercambiar el rendimiento por la velocidad de desarrollo.
  2. Pure Ruby está en el mismo nivel de rendimiento que PHP o Python, cada uno de ellos es bueno en algunas áreas y es mejor en otras que los otros lenguajes no tanto.
  3. Como un backend de rails es un marco, no puede comparar su rendimiento con el PHP o Python sin procesar, tendrá que compararlo con los marcos de Laravel u otros lenguajes.
  4. Aquí hay un enlace a una publicación de blog sobre comparaciones de varios idiomas: Ruby vs Python 3 (Ubuntu quad core de 64 bits) en la parte inferior puede cambiar los idiomas para comparar.
  5. Tenga en cuenta que evito JS en absoluto, ya que JS tiene una naturaleza asíncrona, es más rápido por naturaleza, aquí hay una comparación para mostrar mi punto muy obvio: Ruby vs JavaScript V8 (Ubuntu Quad Core de 64 bits)

Como el rendimiento específico de Ruby no pierde frente a la competencia, pero Rails es una bestia que mejora la calidad del desarrollo y reduce el tiempo de desarrollo, la compensación es el rendimiento, sin embargo, incluso si agrega mucha funcionalidad y medidas de seguridad, todavía funciona muy bien.

TL; DR

¿Eficiente? Si pregunta por el rendimiento, es bueno, se espera un poco más lento contra ruby ​​puro, php, python o JS, pero sigue siendo muy bueno.

Si preguntas sobre popularidad, se convertirá en una discusión religiosa (tipo de), ya que hay amantes y enemigos (como sucede con todas las cosas buenas y malas), creo que es sorprendente lo rápido que puedes desarrollar con Rails tan bien como con rendimiento, es lo suficientemente bueno.

More Interesting

Soy un desarrollador de PHP con muchos años de experiencia, principalmente en Back End Development. Quiero aprender cosas nuevas, algo requerido en el mercado que paga bien. ¿Qué debo esperar?

¿Es cierto que los desarrolladores frontend son fácilmente reemplazables y menos valiosos que los desarrolladores backend?

¿Por qué Google cambió su política original en '20% de tiempo '?

¿Qué más puedo hacer con mi experiencia en desarrollo web back-end?

¿Existe algún tutorial de desarrollo web completo con JavaScript (frontend, back-end) que comience con lo básico y no sea abrumador?

¿Es el desarrollo web y móvil frontend solo un pedazo de pastel para que aprendan los desarrolladores de backend?

¿Qué son los desarrolladores full stack, front-end y back-end? ¿Qué hacen cada uno de ellos?

Cómo encontrar diseñadores web experimentados para una colaboración a largo plazo

¿Cuál es un mejor marco para que un desarrollador web back-end aprenda, reaccione o sea angular?

Cómo incluso comenzar a aprender back-end desde bases de datos y servidores hasta lenguaje de programación, nube, aplicaciones distribuidas y demás

Dado que la gente odia PHP para back-end, ¿qué es un mejor lenguaje de programación de back-end?

¿Cómo se ejecuta el backend en Drupal 6? ¿Alguien asigna alguna tarea primero tenemos que pensar backend cómo pensar alguna sugerencia amigos?

¿Es posible usar Python como back-end en XAMPP? Si es así, ¿cómo?

Dadas mis circunstancias, ¿en qué dirección debo ir: desarrollo web front-end o desarrollo back-end o desarrollo de aplicaciones?

¿Por qué Facebook no reescribe su back-end en Node.JS?