Мой совет будет зависеть от ваших собственных целей, которые могут выглядеть следующим образом ... вы можете спросить себя (или набрать каждый из них от 1 до 10), если вы предпочитаете:
- выучить новый язык, который вы могли бы использовать в будущем? = Рубин
- углубить свои навыки Python, используя его для всего (скажем, Django или Web.Py ) = Python
- отодвигает Ruby-тестирование от Rails = Ruby
Другие вопросы, которые вы могли бы задать себе, чтобы помочь в принятии решения:
- важна скорость? Сделайте несколько тестов на разных языках. (Если Ruby, то используйте Ruby 1.9 и получите другую книгу по Ruby ).
- важна ли интеграция? Если так, зачем использовать PHP-интерфейс?
- важна ли ваша связь с языковым сообществом? Если это так, выберите «чувство сообщества».
- много ли обработок текста в бэкэнде? (Perl?)
- вы хотите использовать ORM или написать SQL? = посмотрите на Ruby и Python легковесные фреймворки .
Я не думаю, что библиотеки будут проблемой, поскольку (я уверен, что) библиотеки для популярных языков покрывают все общие задачи.
Если вы можете оценить все вышеперечисленное с 1 по 10, это может помочь выделить предпочтительное направление ...
Затем, на мой взгляд, проблема разбита на 3 вещи:
- на каком языке вы больше всего любите кодировать (работа должна доставлять удовольствие)?
- Можно ли сгенерировать интерфейс и бэкэнд на одном языке?
- вы хотите использовать фреймворк или готовую CMS для внешнего интерфейса?
Стоит взглянуть на происхождение языков: PHP был первоначально объявлен как расширение SSI , Ruby пытается взять лучшее из Perl, Smalltalk и Lisp, но имеет элементы C / Java-подобный синтаксис, Perl тесно связан с Unix и везде, хотя обычно невидим для конечных пользователей (несмотря на некоторые очень хорошие веб-фреймворки Perl ). Вы уже знаете о Python.
Что касается фреймворков и CMS, то также может помочь трал через различия / ограничения / функции. Слишком легко установить PHP CMS (хорошо для сайта с четко определенной целью), но затем вы окажетесь в затруднительном положении из-за непроницаемого кода, когда захотите сделать что-то, чего не можете сделать из коробки. Фреймворк на языке бэкэнда позволит вам легче соединить заднюю и переднюю части.