Rails против Django
Искусственный спор между Django и Ruby on Rails, объявленный в заголовке, чуть больше, чем просто праздное сравнение языков Python и Ruby. Это ключевой выбор первого большого шага в долгом пути великого web-разработчика. Поэтому во избежание неправильного решения, далее поговорим о том, что это такое, что проще освоить новичку, какие возможности они предоставляют и где какие перспективы?
Краткая справка
Django – фреймворк, использующий шаблон MVC, выпущенный в 2003 году группой разработчиков в составе Адриана Головаты, Саймона Виллисона, Расселла Кейт-Маги, Джейкоба Каплан-Мосс и Уилсона Майнера. Задумывался изначально, как средство разработки для новостных сайтов (это отчётливо проявляется в архитектуре), но со временем нашёл применение и в куда менее серьёзных проектах, таких как Instagram и Pinterest. Основной принцип – применение механизма повторного использования или, иначе говоря, принцип DRY (don’t repeat yourself), что позволяет избежать многократного дублирования кода. Для работы с базами данных Django использует собственный ORM.
Ruby on Rails был создан в 2008 году Давидом Хейнемейер Ханссоном. Здесь также используется принцип DRY, однако в отличие от Django, конфигурация здесь генерируется автоматически, исходя из выбранных моделей (в Django требуется настройка регулярными выражениями) и работа с БД обустроена куда проще для пользователя. С использованием RoR были созданы Twitter и GitHub.
Что лучше для новичков
Универсального ответа на этот вопрос не существует, здесь играют роль привычки и стремления. Безусловно, как язык, Python проще и понятнее новичку, нежели Ruby (хотя разница не так велика, как считают противоборствующие лагеря). Кроме того, быстродействие кода в web также выше у Python. Соответственно, если хочется побыстрее что-то изучить и прыгнуть в работу с головой – Django в приоритете.
Но есть в пользу RoR значительный аргумент – его привлекательность. Это касается и внешнего вида кода, и самого MVC, и возможностей, и даже перспектив (об этом чуть позже). Если у вас хватит упорства и времени на то, чтобы освоить RoR, вы точно не пожалеете.
Если говорить о востребованности в профессии, то специалисты со знанием Python разыскиваются чуть чаще, однако, что будет через года или пять – сказать сложно.
Какой фреймворк лучше
Django является олицетворением языка, который он использует: интуитивно понятный, позволяющий быстро и качественно создать код, более распространён в глобальной сети (используется в том числе Google). Плюс ко всему в комплекте с Django идёт очень хорошая и подробная документация, в которой можно найти ответ на любой интересующий вопрос.
С Ruby on Rails всё в точности до наоборот: документация чуть менее подробная, быстродействие заменено на гибкость и большее количество инструментов, язык изобилует спецсимволами, которые некоторых просто отпугивают. Зато, судя по сообществам разработчиков, знание RoR добавляет +1 к самооценке.
Вообще же однозначно сказать, какой язык лучше, можно лишь в конкретном случае. Так, например, если вам надо создать исключительно веб-приложение, то Ruby on Rails справится с этой задачей лучше. Однако если изначально есть планы создать мультиплатформенное приложение, то лучше для этого подойдёт Django (и Python в частности).
Как дела с библиотеками
Как уже было сказано выше, на сегодняшний день RoR обладает чуть более широкими возможностями в том числе в количестве библиотек (они же плагины, они же gem-ы). Это не означает, что разработчики и сторонники Django игнорируют этот аспект, просто развитие происходит чуть медленнее, да и концепция не предполагает превалирование количества над качеством. Тем не менее, как факт стоит отметить, что хоть в этом отношении явный победитель нашёлся.
Итог
В последнем пункте мы плавно подходим к главному вопросу: что станет главным в будущем – быстродействие или красота? Правильно, будущее не предполагает такого выбора. Идеальный выбор даже начинающего веб-разработчика – это изучение обоих фреймворков и языков. Только так вы сможете сделать акцент на чём-то одном, а при необходимости переключиться на другой. Django и Ruby on Rails – созданы, чтобы дополнять друг для друга.
На чьей вы стороне? Рассказывайте.
Профессии «Разработчик Ruby» и «Разработчик Python».