Sé PHP y Ruby.
Usando un clon de PHP Rails (no fuera de elección), llamado Symfony, (que aparentemente es el mejor marco de trabajo de PHP), noto que es un clon de Rails. Creo que Symfony es estúpido y eso (SensioLabs es un negocio inteligente) porque Rails ya existe.
Además de los proyectos de código abierto que ganan dinero, no entiendo por qué la gente está haciendo clones de Rails en PHP, cuando Rails ya existe. ¿Por qué no usar Rails? Seguramente DHH codificó Rails con Ruby por una razón.
Usando Symfony, noto que algo no se siente bien, pero no sé qué es. Aprendí Rails a través de un libro electrónico basura de Sitepoint y lo olvidé, así que ahora lo estoy aprendiendo a través del libro electrónico PragProg y me encanta ese libro electrónico. No conozco completamente Rails, pero entiendo cómo funciona (gracias a Symfony). Me encantaría terminar de leer todo el libro electrónico para poder crear aplicaciones de 2 Rails. Recuerdo que Rails era más divertido que Symfony usando el libro electrónico de Sitepoint que no pude terminar, y que no tenía nada que ver con la bonita sintaxis de Ruby.
- ¿Por qué Rails está codificado en Ruby?
- ¿Qué tienen los clones de PHP Rails que no se sienten bien?
- ¿Qué está haciendo Rails, que los clones de Rails no están haciendo?
fuente
Ruby on Rails
implementado en PHP.Respuestas:
Rails se extrajo originalmente del trabajo de DHH en Basecamp, que se escribió en Ruby. Con el tiempo, los desarrolladores principales de Rails continuaron extrayendo y desarrollando más funciones en Rails, y eventualmente se convirtió en un marco completo.
Dado que Ruby creció en poder y expresividad a lo largo de los años, continuó siendo una buena opción para el marco, por lo que también continuó siendo el lenguaje en el que está escrito. (Además, "C # on Rails" o "Java on Rails" no No tengo esa bonita aliteración.)
Esto realmente no se puede responder objetivamente, pero probablemente se deba al n. ° 1. El comportamiento y los aspectos internos de Rails aprovechan muchas características que existen en Ruby y serían difíciles de replicar precisamente en otros lugares. Por ejemplo, PHP no tiene metaclases, de las cuales Rails depende en gran medida.
Porque no todos tienen el tiempo, el presupuesto o la inclinación para aprender un nuevo idioma solo para poder aprender un nuevo marco.
A modo de analogía, si resultó que Brainfuck tenía un marco web muy popular, ¿eso significa que debería abandonar a sus clientes que no han escrito sus aplicaciones en Brainfuck? Esa no es forma de administrar un negocio.
Afirmaciones como "Sé tanto PHP como Ruby" sugieren que es posible que aún no aprecies completamente la profundidad, la riqueza y las idiosincrasias de ambos.
fuente
Hubo una vez la decisión de programarlo en rubí. Esta decisión de diseño dura hasta hoy.
Es un sentimiento que tienes, difícil de decir en un bocado como este. Es posible que desee preguntarle a una persona que sea más íntima con usted y que sepa más sobre sus sentimientos o incluso los comparta.
Un clon exacto de Rails hace, por definición, todo lo que hace Rails. Entonces, esto probablemente dependerá de cómo se hizo exactamente un clon. Las diferentes partes resultarán en un comportamiento diferente. Por ejemplo, para una traducción a otro idioma, es posible que el otro idioma no tenga características de lenguaje que Rails on Ruby esté utilizando, lo que probablemente dará como resultado diferencias en el diseño y luego en el comportamiento.
fuente
Ruby permite mucho una meta-programación, y su sintaxis permisiva le permite crear APIs agradables que no se parecen en nada a las llamadas a métodos.
Por ejemplo, ActiveRecord, el mapeador relacional de objetos de Rail, hace bien ambas cosas. Primero, utiliza la capacidad de metaprogramación de Ruby para crear métodos sobre la marcha correspondientes a los nombres de campo en la base de datos.
En segundo lugar, ActiveRecord le permite declarar asociaciones a objetos: un
Person
poderhas_many :books
. Ese has_many parece una declaración, pero en realidad es una llamada al método. (Ruby lee esto comohas_many(:books)
.Ruby también tiene el objetivo de facilitar la vida del programador experimentado.
Ruby facilita estas cosas, por lo que la gente las hace. Otros idiomas los hacen más difíciles, o cosas mágicas como esta no son explícitamente parte de la cultura. Django, el mega marco de Python, tiene mucha menos magia mágica porque no es tan fácil en Python, y Python como un lenguaje se inclina hacia "explícito es mejor que implícito". (No sé mucho sobre la cultura PHP o los marcos web de ese lado).
Creo que estas son algunas de las razones por las que DHH se enamoró de Ruby, y él usa estas características del lenguaje con poder en Rails.
fuente
¿Por qué no usar rieles?
Ofreceré alguna perspectiva como usuario de ambos. Tengo un programa de hobby en Ruby / Rails y uso PHP exclusivamente en el trabajo. (Nota: no descarto Ruby / Rails como un ambiente de aficionado, así es como elijo usarlo).
Muchas personas tratan a Ruby / Rails como el santo grial del desarrollo de sitios web debido a la popularidad del carro y porque es 'diferente'. En muchos sentidos, ciertamente es suficiente, pero no lo suficiente, para descartar PHP como algo antiguo.
Symfony no se siente como Rails porque PHP carece del azúcar sintáctico que proporciona rails. PHP está mejorando en este sentido y la adición de cierres de 5.3 ha marcado la diferencia en cuántos de nosotros escribimos código.
No me malinterpreten, amo a Ruby y amo a Rails. Pero cuando no desea lidiar con el alojamiento de sitios web complejos o costosos o preocuparse por el rendimiento o ser 'innovador', PHP sigue siendo extremadamente relevante hoy y sus marcos también son muy buenos.
Creo que su insinuación de que los clones de PHP rails no 'se sienten bien' es errónea, porque no son clones y no serán lo mismo que Rails. Aprenda a disfrutar de la simplicidad y familiaridad de una solución PHP.
fuente