ruby-on-rails - poll - the most popular programming language on stackoverflow in 2017
¿Qué significa para un lenguaje de programación estar "on rails"? (11)
Actualmente estoy trabajando con Groovy y Grails. Mientras que Groovy es bastante directo ya que es básicamente Java, no puedo decir que entienda Grails. Leí que Groovy es para Grails como Ruby para Ruby on Rails, pero ¿qué significa eso?
Como se dijo anteriormente, Rails y Grails proporcionan convenciones para el desarrollo de aplicaciones web: nombrar sus piezas de cierta manera y ponerlas en los lugares adecuados para que su aplicación funcione de manera predeterminada sin configuración adicional. Cuando desee desviarse de la convención, puede configurar su camino hasta allí.
Creo que un marco que se esfuerza por ser "como un raíl" se refiere a varias cosas:
a nivel de modelo: un ORM con AR (en lugar de un mapeador de datos), migraciones o algún esquema automatizado y gestión de capa de modelo, manejando claves externas en la aplicación (no en el esquema de la base de datos, y tampoco usando procedimientos almacenados o pura lógica DBMS)
TDD recomienda: esqueletos generados automáticamente para pruebas unitarias,
nombres de convenciones que conectan nombres de tablas y nombres de modelos de bases de datos, acciones de controladores y vistas, y plantillas HTML
esquema simplificado de reconocimiento de rutas y generación de rutas
énfasis en la arquitectura REST
integración con ajax libs: RJS, prototipo y scriptaculous
Es una expresión automotriz. Cuando un automóvil maneja excepcionalmente bien, se dice que es "una esquina como conducir sobre rieles" (es decir, le brinda un control excelente).
No sé si es allí donde la gente usa ese nombre, pero así es como lo interpreté.
Es una metáfora, y casi estoy diciendo que necesita explicaciones. De todos modos, es una metáfora extremadamente buena de lo que hace Ruby on Rails. Hace que sea extremadamente fácil hacer (ir a) las cosas comunes, es decir, pruebas, validación, implementación, MVC.
Estar sobre raíles significa que no puedes controlar a dónde vas. Significa que solo puedes ir donde se han colocado los rieles. Cualquier intento de ir a donde la gente que colocó los rieles no anticipó que usted vaya llevará a la frustración.
No estoy de acuerdo con los otros comentarios de "on rails es una filosofía sobre la convención sobre la configuración", y así sucesivamente.
Mientras que los rieles se adhieren a esas filosofías, "Ruby on Rails" es el nombre de un marco web. Nada más y nada menos. No se refiere a ningún "inconveniente" específico al respecto, es solo una marca de la misma manera que McDonald''s es una marca.
Si alguien más escribe otro marco y lo llama "Python on Rails", habrá otra marca. Si no, "XYZ on rails" solo significa que la gente está confundida.
Para abordar su confusión con la metáfora (aunque ha sido respondida en otras palabras en su pregunta):
Groovy es para Grails como Ruby para Ruby on Rails, pero ¿qué significa eso?
Grails fue un framework web construido en / con el lenguaje de programación Groovy para hacer lo mismo para Groovy que Rails (un framework web para Ruby) para Ruby.
¿Qué significa estar "sobre raíles"?
La respuesta a esto se reduce a la esencia de estos marcos web.
Estos frameworks web (Grails & Rails) se basan en la premisa de "convención sobre configuración", lo que significa que el uso de convenciones comunes para desarrollar aplicaciones web puede conducir a una mayor productividad y aplicaciones más sostenibles (esta es una generalización general). Y al definir una convención y atenerse a ella, descubrirá que sus aplicaciones son fáciles de generar y rápidas de poner en funcionamiento.
Esto es lo que significa para mí estar "sobre rieles", como un tren. Cuando se desarrolla una nueva ruta ferroviaria no hay que preocuparse por reinventar la forma en que el tren va a llegar de un lugar a otro, sino que ha sido resuelta por una sola convención durante décadas: los rieles. Así como las pistas en una ruta de tren limitan su camino desde dos ubicaciones, los marcos web basados en convenciones utilizan convenciones para la flexibilidad de los desarrolladores de aplicaciones, de modo que puedan concentrarse en cuál es el problema comercial esencial de su aplicación.
Un beneficio clave de una convención para un marco web es que el marco web ahora puede hacer suposiciones sobre cómo ciertas capas de la aplicación se unen. En Rails, generalmente se puede suponer que si la tabla de la base de datos tiene un nombre plural, la clase ActiveRecord asignada a esa tabla tendrá el nombre singular correspondiente. En consecuencia, los generadores de códigos Rails pueden consumir la información de mapeo de datos para generar código de acceso a datos tales como buscadores dinámicos, migraciones, atravesas de asociación cargadas perezosas, etc. Este código de acceso a datos en un marco basado en configuración es laborioso para codificar a mano.
Respuesta realmente corta y simple: Convención sobre configuración.
Ruby y Groovy son idiomas.
Ruby on Rails es un innovador framework de aplicaciones web. Vea respuestas excelentes sobre el software obstinado anterior.
Como cuestión de historia, un título de trabajo para un framework de aplicaciones web Groovy fue Groovy on Rails . Sin embargo, la comunidad RoR se opuso. El equipo eligió a Grails en su lugar.
Varias personas han mencionado los aspectos técnicos de lo que hace que Rails / Grails sean lo que son. Varias personas también han mencionado "convención sobre configuración" como los "rieles" en Rails / Grails. Esto se está acercando a la verdad. Pero esta es solo una característica de la filosofía más amplia de Rails, que es el concepto de software obstinado .
El software Opinionated no se puede describir solo en términos técnicos; es una filosofía; un ethos; una actitud . Me gusta o lo odio , eso es lo que está en el corazón de Rails.
Aquí hay una excepción de una entrevista de 2005 con David Heinemeier Hansson , creador de Rails:
Rails es un software obstinado. Evita ubicar los viejos ideales del software en una posición primaria. Uno de esos ideales es la flexibilidad: la idea de que debemos tratar de acomodar tantos enfoques como sea posible, que no debemos juzgar una forma de desarrollo sobre otra. Bueno, Rails lo hace, y creo que es por eso que funciona.
Con Rails, intercambia flexibilidad a nivel de infraestructura para obtener flexibilidad a nivel de aplicación. Si está contento de trabajar en el camino dorado que he integrado en Rails, obtendrá una inmensa recompensa en términos de productividad que le permite hacer más, más rápido y mejor a nivel de aplicación.
También hay una entrevista posterior que explora más el tema .
Así que estar "sobre raíles" es una metáfora de ser "obstinado", por lo que se llama así. Eso y el hecho de que "Ruby on Rails" es una palabra única, que cualquier periodista o escritor te dirá, es una forma segura de atraer la atención de las personas.
Rails es un marco para desarrollar aplicaciones web con un back-end de base de datos. Creo que el nombre originalmente era un juego de palabras. Un tren puede llevarte a un lugar realmente rápido, pero solo a donde van los rieles.