Я знаю PHP и Ruby.
Используя клон PHP Rails (не исключено), называемый Symfony (который, очевидно, является лучшим фреймворком PHP), я заметил, что это клон Rails. Я думаю, что Symfony глуп и так (SensioLabs - умный бизнес), потому что Rails уже существует.
Помимо проектов с открытым исходным кодом, которые приносят деньги, я не понимаю, почему люди делают клоны Rails в PHP, когда Rails уже существует. Почему бы не использовать Rails? Конечно, DHH кодировала Rails с Ruby по какой-то причине.
Используя Symfony, я замечаю, что что-то не совсем правильно, но я не знаю, что это такое. Я изучил Rails через дерьмовую электронную книгу Sitepoint и забыл ее, так что теперь я изучаю ее через электронную книгу PragProg, и я люблю эту книгу. Я не полностью знаю Rails, но я понимаю, как это работает (спасибо Symfony). Я хотел бы закончить через всю книгу, чтобы я мог сделать 2 приложения Rails. Я помню, что Rails был более забавным, чем Symfony, используя электронную книгу Sitepoint, которую я не смог закончить, и это не имело ничего общего с красивым синтаксисом Ruby.
- Почему Rails написан на Ruby?
- Что такого в PHP-клонах Rails, которые не кажутся правильными?
- Что делает Rails, чего не делают клоны Rails?
источник
Ruby on Rails
реализованным в PHP.Ответы:
Rails был первоначально извлечен из работы DHH над Basecamp, которая была написана на Ruby. Со временем разработчики ядра Rails продолжили извлекать и развивать больше функций в Rails, и в конечном итоге он стал полноценной средой.
С тех пор, как Ruby приобрел силу и выразительность за эти годы, он по-прежнему хорошо подходил для фреймворка, поэтому он также продолжает оставаться языком, на котором он написан. (Плюс, "C # on Rails" или "Java on Rails" не У меня будет хорошая аллитерация.)
На это нельзя реально ответить объективно, но это, вероятно, из-за # 1. Поведение и внутренности Rails используют многие функции, которые существуют в Ruby, и их было бы сложно воспроизвести точно в другом месте. Например, в PHP нет метаклассов, от которых сильно зависит Rails.
Потому что не у всех есть время, бюджет или желание изучать новый язык только для того, чтобы они могли выучить новую структуру.
По аналогии, если выяснилось, что у Brainfuck есть очень популярный веб-фреймворк, означает ли это, что вы должны отказаться от своих клиентов, которые не написали свои приложения в Brainfuck? Это не способ вести бизнес.
Такие выражения, как «Я знаю как PHP, так и Ruby», предполагают, что вы, возможно, еще не в полной мере оценили глубину, богатство и специфические особенности обоих.
источник
Когда-то было решение запрограммировать его на ruby. Это дизайнерское решение длится до сегодняшнего дня.
У тебя такое чувство, что трудно сказать о таком укусе, как этот. Возможно, вы захотите спросить человека, который более близок с вами и знает больше о ваших чувствах или даже делится ими.
Точный клон Rails делает по определению все, что делает Rails. Так что это, скорее всего, будет зависеть от того, как именно был сделан клон. Различные части приведут к разному поведению. Например, для перевода на другой язык другой язык может не иметь языковых возможностей, которые использует Rails на Ruby, что, скорее всего, приведет к различиям в дизайне, а затем и в поведении.
источник
Ruby позволяет много метапрограммировать, и его допустимый синтаксис позволяет вам создавать хорошие API, которые совсем не похожи на вызовы методов.
Например, ActiveRecord, Object Relational Mapper Rail, хорошо выполняет обе эти функции. Во-первых, он использует метапрограммирующую способность Ruby для создания методов на лету, соответствующих именам полей в базе данных.
Во-вторых, ActiveRecord позволяет вам объявлять ассоциации с объектами:
Person
мощьhas_many :books
. Это has_many выглядит как объявление, но на самом деле это вызов метода. (Руби читает это какhas_many(:books)
.У Ruby также есть цель облегчить жизнь опытного программиста.
Ruby облегчает эту задачу, поэтому люди делают это. Другие языки усложняют это, или подобные магические вещи явно не являются частью культуры. Django, мега-фреймворк Python, имеет гораздо меньше мета-магии, потому что это не так просто в Python, и Python, поскольку язык склоняется к «явное лучше, чем неявное». (Я не знаю много о культуре PHP или веб-фреймворках на этой стороне.)
Я думаю, что это некоторые из причин, по которым DHH влюбился в Ruby, и он мощно использует эти языковые возможности в Rails.
источник
Почему бы не использовать рельсы?
Я предложу некоторую перспективу как пользователь обоих. Я увлекаюсь программированием на Ruby / Rails и использую PHP исключительно на работе. (Примечание: я не считаю Ruby / Rails средой для хобби, я просто использую ее.)
Многие люди рассматривают Ruby / Rails как святой Грааль разработки веб-сайтов из-за популярности платформы и потому, что она «другая». Во многих отношениях, конечно, этого недостаточно, чтобы отклонить PHP как нечто древнее.
Symfony не похож на Rails, потому что PHP не хватает синтаксического сахара, который предоставляет rails. PHP улучшается в этом отношении, и добавление замыканий в 5.3 привело к тому, что многие из нас пишут код.
Не поймите меня неправильно, я люблю Ruby и я люблю Rails. Но когда вы не хотите иметь дело со сложным или дорогостоящим хостингом веб-сайтов или беспокоиться о производительности или о «непревзойденном качестве», PHP по-прежнему чрезвычайно актуален сегодня, и его фреймворки также очень хороши.
Я думаю, что ваша намека на то, что клоны PHP rails не «чувствуют себя хорошо», ошибочна, потому что они не клоны и не будут такими же, как Rails. Научитесь греться на простоте и привычности решения PHP.
источник