Разное

Django или ruby on rails: дилемма начинающего web-разработчика / Хабр

Содержание

дилемма начинающего web-разработчика / Хабр

Добрый день, хабралюди!
Хотел бы обратиться к вам с просьбой помочь мне в выборе моего жизненного пути. Я интересуюсь веб-разработкой, уже имею некоторый (очень небольшой) опыт в этой области и хочу дальше развиваться в этом направлении. Поскольку я студент, 9 месяцев в году мне приходится тратить много времени на скучную и не очень полезную ересь учёбу, но за лето я хотел бы более-менее основательно освоить одну из приведенных в заголовке технологий. Понимая, что стать профессионалом во всём и сразу очень сложно и начинать надо с чего-то одного, прошу вашей помощи в попытке определится.
Под катом мои личные, очень субъективные наблюдения.

Django:
+ Python — быстрее и, на мой взгляд, удобней Ruby
+ Django используют Google и Яндекс (равняемся на лучших!)
+ Субъективно: в наших интернетах django-проектов немного больше, чем проектов на rails

Rails:

+ Ruby — интереснее и красивее Python

+ Субъективно: реализация MVC в Rails симпатичнее

+ Более удобный development-режим — поддержка миграций «из коробки» и отсутствие надобности перезагружать приложение после каждого изменения server-side-кода

— Ruby — ЯП как в плюс, так и в минус — некоторые вещи лично для меня сложны в понимании (тип данных Symbol, блоки кода в качестве аргументов методов)

Для тех, кто может предложить что-то ещё, кроме этих двух вариантов, хочу сразу сказать:

  • РНР не нравится в принципе, на уровне подсознания. В качестве варианта даже не рассматривается
  • Java рассматривается и даже потихоньку осваивается, но это, всё таки, технология для проектов другого уровня
  • C#/.NET не рассматривается, т.к. я правоверный линуксоид 😉 а Mono адекватной заменой не считаю, + см. Java
  • Я знаю про другие фреймворки, основанные на Python и Ruby, но начинать всё-таки, как мне кажется, стоит с тех технологий, которые имеют большое комьюнити, дабы было у кого спросить.

Rails против Django | GeekBrains

Выбираем перспективу.

https://d2xzmw6cctk25h.cloudfront.net/post/584/og_cover_image/a4452fae3d3e278f2788a8a21714f615

Искусственный спор между 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».

Django vs RoR…? — Хабр Q&A

Пишите то на чем удобно и что чаще всего используете (язык в том числе). Имел прекрасную возможность реализовать проект на джанге и на рельсах. Проект с большим развесистым API изначально был на джанге, потом я с горящими глазами за пару дней реализовал его на рельсах, я был в восторге от того что все есть из коробки, программирования на основе соглашений, REST full api описывается тут же в контроллере, куча батареек на все случаи жизни, слежение за зависимостями. Мне казалось дикостью что core девелоперы джанги отказывались ломать совместимость в пользу ускорения введения новых фич. Плюс руби на котором все делали кучу удобных DSL-ей на все случай жизни. Но через большое время жизни проекта я понял что мне очень не хватает опыта с рельсами, а еще больше с руби, мой основной язык работы питон + огромная волна задач на js (полноценные веб приложения с большой логикой), и когда вновь возникали задачи на проект с рельсами я чувствовал дискомфорт от того что простые задачи требовали кучу времени. Затем вновь была джанга, она уже казалась такой родной, я знаю почти все её уголки, и с большей уверенностью смогу решить на ней любые поставленные задачи. У джанги нет того многообразия батареек и фишек из коробки, поэтому стоит немного уделить внимание поиску решений задачи прежде чем писать код. Управление статикой, миграций, деплой, все решается батарейками, не хуже чем на рельсах. Когда я стал замечать рутинные задачи которые решались на рельсах, я старался находить пути решения, обычно на это уходит 5 минут поиска или кодинга (большая часть решается фабриком).

А в настоящее время набирает просто гигантскую популярность nodejs у которой просто гигантское количество батареек аналогов которых нет не у кого.

Я это все к тому что надо выбирать инструмент с головой, тот что более знаком, желательно написанном на основном для себя языке. Но если есть возможность то пробовать все то что приносит радость, я очень благодарен моему начальству которое дало мне эту возможность.

Django или Ruby on Rails

Вступление:
Для тех кто в раздумиях, что изучать Django или Ruby on Rails.

Мой ответ:
Ruby on Rails

Про языки:
Сами языки Ruby и Python сравнивать не буду. После Java и то и другое хорошо и лаконично 🙂

Раздумия:
Я сам думал над этим вопросом месяца 3-4 назад. Решил изучить Django после прочтения информации, что рельсы — это тормоза, а также, что Python — мега-язык программирования:).
Изучил базовый Python. Прочитал все базовые мануалы по Django на сайте(которые кстати активно сейчас пишутся). Создал своё приложение с нуля… и понял, что ну не хватает мне той модели работы с БД, которую они предлагают. Слишком она уж примитивная. Слишком мало хороших плагинов => долгая разработка проекта обеспечена. Да и как-то медленно у них всё развивается…
Модель рельс мне показалась очень симпатичной, нацеленной именно на продуктивную работу. Конфигурация БД под разработку, тестирование и продакшн чего стоит! Файлы для тестирования, которые генерируются сами(только файл, без тестов :)). Потом хелперы для вьюшек. Процесс разработки идет быстрее и проще, благодаря такой вот модели.

По пунктам:

  1. Гигантское количество действительно крутых плагинов для RoR. Это громаднейший плюс. Многие проблемы решаются установкой этих плагинов.
  2. Разработка «от ссылки» в Django. Это хорошо… для газетных сайтов. Если же ссылка не важна, то лишняя работа обеспечена, потому что без этой настройки ничего не заработает.
  3. Миграции в RoR против ручного обновления таблиц в Django. Это просто неудобно.
  4. Слабый и не всегда понятный ORM у Django. Наверное, blank=True, null=True многих вводит в легкий ступор. Но вообще это нормально. После Hibernate хочется и коллекции также мапить одним махом, однако увы… 🙂
  5. Django за 3 года обновился с версии 0.9.x до 1.0.x. Слабовато… Рельсы же скоро выйдут третьей версии;
  6. Встроенная возможность тестирования для RoR. Отдельная конфигурация БД для тестирования.
  7. Коммьюнити у RoR больше;
  8. Для RoR есть Aptana, на основе моего любимого тормознутого Eclipse :). Для тех кто не понял — есть удобнейшая IDE для работы именно с RoR. Для Python на эту тему есть только PyDev плагин;
  9. Хостинг для RoR найти проще, хотя вообщем-то всё равно такие проекты нацелены на виртуальные или dedicated сервера;
  10. Админка в django по-моему весьма сомнительный плюс. Её тоже надо пилить, причем весьма и весьма. Хотя да, она красивая. Для тех же рельс наверняка можно найти пару хороших плагинов.

«А Яндекс выбрал Django!»
Теперь попытаюсь объяснить почему Яндекс выбрал именно Django для пары своих проектов. Мне кажется, что Django при хорошей квалификации программиста предпочтительнее RoR. Он не такой груженный. А то, что нужно — программист допилит… тем более программист Яндекса. Ну и нагрузка тоже решает.

Выводы:
Когда делаешь стартап, то хочется, чтобы он заработал побыстрее. Нет ни нужды ни времени ковырять и пилить фреймворк. Ставишь 5-6 хороших плагинов и серьезный функционал в кармане. Вывод тут очевиден.

(update 22.05.2009)
Disclaimer:
Всегда хорошо изучить всё самому и принять собственное решение. Самый лучший вариант скачать и то и другое, потратить 2-3 недели на освоение обоих фреймворков и принимать решение хотя бы из интуитивных предпочтений(нравится/не нравится).

Django Или Ruby On Rails: Какой Фреймворк Выбрать? | GuardianeLinks

Вопрос выбора фреймворка часто встаёт перед стартаперами или программистами. Первые хотят, чтобы проект был основан на наиболее подходящем, трендовом фреймворке. Вторые хотят развивать свои навыки и применять знания в реальных проектах. Обе цели могут быть достигнуты путём ознакомления с веб-фреймворком.

Змея или драгоценный камень

Основные различия между фреймворками заключаются в подходе к языку, философии и языках программирования, которые они используют. Философия Python «Есть только один очевидный способ решения задачи» противоречит гибкости, свободе и силе выбора Ruby.

Большинство новичков начинают программировать на Python. Самый первый взгляд на код Python заманивает тех, кто не знаком с языком. Его синтаксис просто идеален: нет точек с запятой, странных специальных символов или ключевых слов. Если вы еще не программировали на Python — попробуйте, вы не разочаруетесь. Код на Python будет выглядеть следующим образом:

>>> django_apps = [‘Pinterest’, ‘Instagram’, ‘Mozilla Firefox’, ‘National Geographic’, ‘The Washington Post’]
>>>
>>> for app in django_apps:
… print(app)

Синтаксис Python делает его подходящим для большинства проектов. Читаемость кода также упрощает присоединение новичков в команду разработчиков.

Python также хорош для прототипирования. Вы можете реализовать новую идею, используя Python. Если идея осуществима и ваше приложение требует высокой производительности, идея может быть повторно реализована на высокопроизводительном языке программирования вроде C++.

Прим. перев. Если вы захотите начать изучение Python, советуем обратить внимание на наши

по этому языку.

Ruby особенный. Его можно назвать экзотическим и изящным. Не удивительно, что этот язык был изобретен японцами. В его строках есть что-то исключительное, что вызывает интерес. И хотя код не так читаем, как на Python, синтаксис по-прежнему очень прост для понимания и изучения. Код на этом уникальном языке будет выглядеть так:

ror_apps = [‘Twitter’, ‘GitHub’, ‘Airbnb’, ‘Groupon’, ‘Shopify’, ‘SoundCloud’]

for app in ror_apps
if app == ‘Twitter’ || app == ‘SoundCloud’
next
end
puts app
end

В Ruby всё является объектами. Каждый тип данных относится к определенному классу со встроенными методами. То же самое относится к Python. Другой популярной особенностью Ruby являются «блоки». Используя их, вы можете изменить любой метод (даже встроенный).

Особенности фреймворков

Ruby on Rails и Django — это веб-фреймворки для реализации

. Этот шаблон разделяет проблемы разработки на три блока. Вот как это работает:

В двух словах, все три компонента шаблона MVC — это просто классы с методами. Представим ,что мы создали простой блог:

  • Model представляет базы данных: профили пользователей, комментарии, сообщения и т.д.
  • View переносит данные в шаблон HTML и отправляет их в Controller.
  • Controller соединяет Model и View, обрабатывает пользовательские запросы и отправляет ответы обратно в веб-браузер.

В Django имя шаблона немного отличается и может смутить сначала. Это тот же MVC, но View называется Template, а Controller называется View. Таким образом, мы получаем MTV.

Расположение файлов

Ruby on Rails и Django по-разному упорядочивают файлы внутри проекта . Представьте, что у нас есть веб-приложение Rails с именем my_taxi. Когда разработчик добавляет новый компонент, например «счета» или «платежи», он должен перейти в специальное место:

Django использует отдельные приложения для каждого компонента. Каждое приложение содержит собственные классы моделей, представлений и шаблонов. Это очень удобно, если ваш проект быстро развивается:

Продуктивность

И Ruby on Rails, и Django имеют так называемые «волшебные», готовые решения. Однако магия RoR намного превосходит всё остальное.

Когда разработчик Rails создает контроллер, его методы могут автоматически обращаться к переменным и наследовать методы другого класса. Ни эти классы, ни переменные не определены явно. Ruby on Rails просто добавляет их автоматически. Он также автоматически устанавливает маршруты внутри MVC.

Разработчик Django, напротив, должен явно определять переменные и классы импорта. Они должны использовать

(что-то вроде ^[A-Z]+[a-z\g]$) для определения маршрутов и URL-адресов. Разработчики Django должны полностью понять, как все работает внутри, чтобы настроить код.

Приятно полагаться на волшебство, когда вы хотите как можно быстрее запустить веб-приложение. Для новичков-программистов это самый простой способ понять, как работают веб-фреймворки. С другой стороны, это покажет только картинку в целом. Развертывание веб-приложения на Django поможет понять, как все это работает в деталях.

Производительность

Оба фреймворка основаны на интерпретируемых скриптовых языках. Это приводит к почти одинаковой производительности. Ранние версии Ruby, такие как 1.8 или 1.9.x, были низко производительными. В те дни Twitter перешел с Ruby on Rails на Scala, заявив, что «Twitter Search теперь стал в 3 раза быстрее». Но имейте в виду, что большинство компаний вряд ли достигнут такого же объема трафика, как Twitter.

Обычно Python считается немного быстрее Ruby. Некоторые люди могут спорить и ссылаться на сравнительное сравнение времени выполнения. Тесты показывают идентичные результаты с точки зрения производительности. Однако даже эксперты Ruby признают, что язык медленный. Хорошей новостью является то, что каждая новая версия языков программирования повышает производительность.

Документация и сообщества

Документация является личным предпочтением. Оба фреймворка хорошо документированы и организованы. Команды разработчиков Django Software Foundation и Rails проделали большую работу, чтобы документации были структурированными и удобными. Они похожи на простые книги, которые приятно читать.

Документация Django.
Документация Ruby on Rails.

Благодаря сообществам на StackOverflow и GitHub мы можем открыть Google и просто найти нужный код. Идея, которая придет вам на ум завтра, уже сегодня имеет готовое решение. Существует много программ, разработанных сообществом. Плагины могут помочь справиться с большинством задач.

Однако сообщества разные. Первоначально Ruby — это язык программирования общего назначения. Хотя существуют другие Ruby-структуры, такие как Sinatra или Lotus, большая часть Ruby относится к Rails. И Rails — это среда веб-разработки.

Python, напротив, выходит далеко за рамки веб-разработки. Есть много людей, которые используют Python для создания географических информационных систем, научно-ориентированных проектов, систем автоматизации тестирования и многого другого.

Что выбрать?

Django и Python

  • Если вы знаете, что делать.
  • Если вы привыкли все делать в срок.
  • Если вы считаете, что документация — лучший друг программиста.

Ruby on Rails

  • Если вы ожидаете поддержку от веб-сообщества.
  • Если вы довольны большим количеством плагинов.
  • Если вы ищете фреймворк, который будет работать за вас.

Заключение

Django и Ruby on Rails выглядят как близнецы от разных родителей: у каждого своя философия и свои особенности. Но когда дело доходит до работы, они действуют одинаково: они оба являются превосходными фреймворками, которые могут справляться с похожими задачами, используя свои уникальные подходы.

.

В каких случаях стоит использовать Django (а в каких не стоит)

Давайте поможем разработчикам разобраться, подходит ли фреймворк Django для их следующего проекта. Вполне вероятно — подходит.

Не стоит хвататься за определенный язык программирования или фреймворк лишь потому, что вы пользовались им в вашем предыдущем проекте, или просто потому что он вам хорошо знаком. Так дела не делаются.

Прежде чем приступать к новому проекту, следует оценить, какой язык или фреймворк лучше всего подойдет вам для достижения желаемого результата. Что для вас наиболее важно? Безопасность, скорость разработки, масштабируемость, универсальность, поддержка?

Лучше принять информированное решение перед тем как приступать к работе, чем потом раскаиваться в поспешном (или, хуже того, навешивать на проект костыли в процессе реализации – из-за того, что заранее не озаботились его поддержкой).

Я много лет работал с разными технологиями, имел дело как с мобильной, так и с веб-разработкой, и считаю, что Django предлагает такой полноценный набор возможностей, каких нет ни в одном другом веб-фреймворке.

Понимаю, это громкое заявление. Позвольте мне его обосновать.

«На Django основано множество сайтов, используемых самым активным образом, в частности, Instagram и Pinterest. Даже Facebook использует Django для многих своих утилит. Django зародился в издательской среде, поэтому неудивительно, что данный фреймворк используется на таких сайтах как The Washington Post и Smithsonian Magazine.” — Амит Ашвини, Вице-президент по маркетингу @ Zibtek

Общий взгляд: когда использовать Django

Если хотя бы несколько из нижеприведенных тезизов – про вас (и в списке нет тезисов, с которыми вы категорически не согласны), то, вполне вероятно, Django хорошо подойдет для вашего проекта.

  • Вам требуется разработать веб-приложение или серверную часть API.
  • Требуется быстро работать, быстро развертывать и вносить изменения в проект по ходу работы.
  • По умолчанию приложение должно быть защищено от наиболее распространенных уязвимостей и атак, в частности: CSRF, SQL-инъекции, XSS, кликджекинг, etc.
  • В любой момент в приложении может потребоваться масштабирование: как наращивание, так и сокращение.
  • В перспективе вы планируете интегрировать новейшие технологии, например, машинное обучение.
  • Вам нужно использовать надежный фреймворк, который активно разрабатывается, используется многими топовыми компаниями и ведущими веб-сайтами во всем мире.
  • Требуется, чтобы и веб-приложение, и серверная часть API находились в одной и той же базе кода, согласовываясь с «единым источником истины» (принцип DRY)
  • Вы не хотите работать непосредственно с запросами к базе данных, и вам нужна поддержка ORM.
  • Вы собираетесь пользоваться свободным ПО.
  • Если застрянете – то решение придется искать самостоятельно, поэтому вам понадобится хорошая документация и отзывчивое сообщество разработчиков.

Кроме вышеупомянутых факторов нужно учитывать, какими навыками обладаете вы (или ваша команда).

Если вы – веб-разработчик, и уже знаете, как веб устроен, то работа с Django пойдет для вас сравнительно гладко. Необходимо понимать, как структурируется Django, и некоторые другие вещи, конечно, тоже – и считайте, что вы готовы.

Сайты, работающие на фреймворке Django

История Django насчитывает уже около 10 лет. За этот период он использовался в продакшене на множестве топовых сайтов. Вот некоторые выдающиеся примеры:
Pinterest Engineering
Mozilla
Bitbucket
Udemy
The Onion
Disqus
Washington Post
NASA
Spotify
Instagram Engineering
National Geographic
The Guardian
JSFiddle

Вы еще сомневаетесь, стоит ли тратить свое драгоценное время, чтобы напрактиковаться с Django? Для начала давайте обсудим, по каким причинам Django может НЕ ПОДОЙТИ для вашего проекта:

Когда не стоит использовать Django

  • Вы имеете дело с колоссальным приложением, и оно попросту не умещается в одной базе кода. Возможно, лучше будет разбить ваше приложение на микросервисы. С каждым его уровнем качественнее справится специально выделенная команда. Для каждого конкретного сценария использования подойдут иные технологии. В некоторых таких сценариях может пригодиться и Django, но было бы нецелесообразно полностью разрабатывать такое приложение на Django (равно как и на любом другом отдельно фреймворке).
  • Необходимо написать простейшее приложение, в котором не требуется работать с базой данных, выполнять операции с файлами или делать что-либо хоть немного сложное.
    Для таких ситуаций лучше подойдут микрофреймворки. Один из наиболее популярных микрофреймворков – Flask, как и Django, он написан на Python. Подобные микрофреймворки доступны и в рамках других технологий, напр. Slim в PHP, Apache Spark в Java, Express.js в Node.js, т.д.
  • Вы хотите сами написать все с нуля и знаете, что делаете.
  • Вы или ваши коллеги совершенно не знакомы с Django/Python, и у вас нет времени и ресурсов на наработку необходимых навыков.
    Наилучшее решение в последнем случае – работать с тем, в чем вы лучше всего разбираетесь. Если берешься за новую технологию или фреймворк, то шансы напортачить возрастают многократно.

Если все вышесказанное – не про ваш проект, то, вполне вероятно, Django вам подойдет.

Причины использовать Django

Фреймворк Django написан на Python:
Знаю, вам это известно.

Поэтому воспользуюсь случаем и подчеркну некоторые ключевые достоинства Django, которые он унаследовал от Python. Буду краток.

Python – один из самых популярных и быстрорастущих языков программирования в мире.

Источники:

TIOBE index
Indeed.com Jobs’ data analysis by Coding Dojo
GitHub Octoverse

Изучить Python действительно очень просто. Обычно современные разработчики учат первым именно этот язык.

Вышесказанное совершенно не означает, что этот язык – только для начинающих. Python используется и в ультрасовременных технологиях. Python активно применяется в технологическом стеке многих компаний-гигантов, в том числе, Google.

Язык Python отлично подходит для разработки инструментов веб-скрапинга.

Он хорошо взаимодействует с другими языками.

Разработка на Python не означает, что вы будете вынуждены все и вся писать только на Python.

Вы вполне сможете пользоваться библиотеками для многих других языков, в том числе, C/C++/Java.

Python портируемый, его удобно читать.

Python даже может работать на JVM. Познакомьтесь с Jython.

Python широко используется в таких востребованных технологиях как Большие Данные и Машинное обучение.

Вы получаете доступ к огромной библиотеке PyPI.

У Django “Все включено”

“Все включено” означает, что Django «из коробки» оснащен большинством библиотек и инструментов, нужных в распространенных практических ситуациях. Перечислю: Django ORM, промежуточное ПО, аутентификация, HTTP-библиотеки, многосайтовая поддержка, i18n, Django Admin, движок-шаблонизатор, т.д. – и это еще не «все». Ни один другой известный мне фреймворк не предоставляет столь широкой поддержки сразу.

Некоторые считают такое обстоятельство “минусом”, а другие – «плюсом». Каждая сторона права по-своему, и я в некоторой степени согласен с обеими.

Это минус, поскольку в такой ситуации фреймворк превращается в монолит.

Я считаю, что, если вам требуются эти возможности, приводящие к формированию монолита, то вам так или иначе придется воспользоваться какой-то другой библиотекой (или написать ее самостоятельно).

Почему бы в таком случае не воспользоваться инструментом, в котором все это уже есть, проверено в боях, функционирует на крупнейших сайтах, активно разрабатывается и обеспечено поддержкой сообщества?

Если вам не требуется большинства возможностей, предлагаемых в Django, то лучше остановиться на каком-нибудь микрофреймворке.

Не изобретать велосипед – вы помните? Потратьте ваше время на то, что действительно важно, а Django пусть сделает все остальное.

Django Admin

Хотя, я и упомянул этот элемент в предыдущем разделе, он заслуживает более пристального внимания. Во многих фреймворках, в частности, Laravel, Yii, т.д., предпринимались попытки упростить работу с админкой. Мне доводилось разрабатывать множество проектов в разных фреймворках, но ни один из них и близко не сравнится с Django по удобству работы с панелью администратора.

Некоторые считают, что Django Admin недостаточно гибок, и для подстройки любой его части под свои нужды требуется приложить массу усилий. На первых порах работы с Django я склонен был с этим соглашаться, но со временем, разобравшись во фреймворке, разубедился в этом. Да, там присутствует своя кривая обучения, но ни секунды, что вы ей уделите, не будет потрачено зря.

На самом деле, Django Admin очень хорошо структурирован. В некоторых моих проектах я использовал админку Django «как есть», а в других полностью заменял ее собственными шаблонами, которые разрабатывал с нуля. В любом случае, на это потребовалось не больше времени, чем на разработку с любым другим известным мне фреймворком.

Основной плюс? Вы получаете «из коробки» права доступа и аутентификацию. На разработку всего этого с нуля у вас ушли бы недели (или, как минимум, несколько дней).

Принцип DRY (Не Повторяйся)

Мне известно множество фреймворков, сторонники которых утверждают, что те действительно соответствуют принципу “DRY”. Я работал с многими такими фреймворками, но ни в одном из них принцип «DRY» не реализован как следует.

К сожалению, в большинстве фреймворков принципу “DRY” просто не уделяют достаточного внимания. На мой взгляд, если вы пишете приложение, которое собираетесь регулярно обновлять (а это можно сказать о большинстве современных приложений), то вы должны следовать принципу DRY во избежание проблем.

Так, в Laravel приходится писать валидацию для каждой процедуры отдельно. Такова же ситуация и с большинством других фреймворков. Чтобы ваш код соответствовал принципу DRY, нужно потрудиться. Сложно это отслеживать, особенно если вы работаете в команде.

В свою очередь, фреймворк Django спроектирован таким образом, что нарушить принцип DRY там обычно выходит только нарочно.

Так быть не должно, верно? Рассмотрим пример.

Вот как в Django устроена валидация и миграция базы данных

Создаем класс Model с требуемыми полями. Указываем все необходимые нам дополнительные валидации и ограничения.

Миграции генерируются единственной CLI-командой: `python manage.py makemigrations`.

Изменения вносятся в базу данных единственной CLI-командой: `python manage.py migrate`.

Валидации и ограничения автоматически проверяются при каждой CRUD-операции  —  идет ли речь о Django Admin или о Django REST Framework. Писать валидации заново вам не придется.

Тот же самый класс модели используется для генерации представлений Django Admin CRUD. Не требуется дописывать никаких собственных HTML/CSS.

Сравните эти условия с любым другим фреймворком – и, думаю, вам бы нигде не удалось сделать ничего подобного всего в несколько следующих строк кода:

class Employee(models.Model):
    name = models.CharField(max_length=127)
    email = models.EmailField(null=True, blank=True)
    created_at = models.DateTimeField(blank=True, null=True, auto_now_add=True)
    updated_at = models.DateTimeField(blank=True, null=True, auto_now=True)

Здесь речь не только о том, чтобы “не повторяться”. Такой подход уберегает вас от багов в перспективе. Все мы оказывались в ситуациях, когда довелось изменить что-то в одном месте, а в другом месте заменить забыли – и это выяснилось лишь после того, как у множества пользователей начались проблемы.

В Django, возвращаясь к вышеприведенному коду, если вам когда-нибудь придется заменить `max_length` поля на что-нибудь другое – просто сделайте это здесь. Изменение автоматически применится к валидации всех маршрутов и к базе данных.

Объектно-реляционное отображение в Django

Django предоставляет полнофункциональный механизм ORM «из коробки».

Я работал со множеством инструментов ORM в разных технологиях, в том числе, в Eloquent, greenDAO, Yii AR, т.д. Во всех из них простейшие запросы обрабатываются довольно хорошо, но рано или поздно мне приходилось писать те или иные запросы с нуля, поскольку механизм ORM не справлялся с конкретным практическим случаем.

С Django ORM в такие ситуации я пока не попадал. Он сработан настолько хорошо, что вы просто можете забыть, что работаете с запросами к базе данных. Именно таким и должно быть объектно-реляционное отображение. Ниже приведены некоторые примеры Django ORM:

# получает 5 верхних результатов, где rank = 10 и age <= 30
top_young_employees = Employee.objects.filter(rank=10, age__lte=30)[:5]
# вставляет запись с указанными значениями
employee = Employee.objects.create(name=’John Doe’, age=35, country=’IN’)
# выводит на экран значение поля
print(employee.name)

Стремительная разработка

Этим любят похвастаться создатели практически любого веб-фреймворка, и, пожалуй, все они действительно правы – смотря какой смысл мы вкладываем в слово «стремительная».

Правда, с Django некоторые вещи делаются уморительно быстро. Вы уже видели, как легко мы смогли определить UI админки, таблицу базы данных и выполнить валидацию.

Это была всего лишь верхушка айсберга.

В принципе, стремительная разработка – это не фича как таковая, а лишь органичное следствие присутствующих в Django DRY, ORM, шаблонизатора и философии «все включено».

Безопасность фреймворка Django

Давайте признаем, иногда разработчики ленятся. Я – так точно. Время от времени я прокрастинирую, откладывая решение критически важных задач. Тут-то и могут возникнуть различные уязвимости.

Мне особенно нравится, что Django не идет на послабления по поводу безопасности, чтобы ускорить темп разработки. Функции безопасности активируются по умолчанию, поэтому совершенно не важно, ленивы вы или нет.

Опенсорс, отличная документация, огромное сообщество и пр.

Поскольку Django – опенсорсный и безумно популярный фреймворк, вокруг него сформировалось отзывчивое сообщество. Думаю, вы в курсе, каковы достоинства свободного ПО – так вот, все они присущи и Django.

Официальной документации Django более чем достаточно любому разработчику. Если застрянете – найти решение не составит труда.

У вас уже могло сложиться впечатление, что в Django создано множество собственных библиотек, поэтому, возможно, удивитесь, что специальной библиотеки для тестирования здесь не сделано. Нет, не подумайте, что фреймворк Django не поддерживает тестирование – поддерживает, еще как. Просто, следуя принципу «Не повторяйся» было бы бессмысленно разрабатывать библиотеку для тестирования, когда отличная библиотека такого рода уже есть в самом Python. Django отлично с ней взаимодействует. Кроме того, он очень хорошо сочетается и со сторонними библиотеками, например, pytest.

Современное состояние Django и другие популярные фреймворки

Итак, я по максимуму постарался осветить те проблемы, с которыми сталкивался при работе с другими фреймворками и сравнить эти фреймворки с Django. Поработав с Yii, CodeIgniter, WordPress, CS-Cart, Laravel, т.д., я пришел к выводу, что Django гораздо лучше любого из них.
Однако, это только мое мнение.

Если вам нравится статистика, то вот ежегодное исследование Stack Overflow, где Django фигурирует в числе самых излюбленных и востребованных фреймворков:

Frameworks, Libraries, and Tools
Most Loved, Dreaded, and Wanted Frameworks, Libraries, and Tools

Кроме вышеупомянутого опыта работы с PHP, я также рапзрабатывал приложения под Android на Java, клиентские приложения на React.js. Во всех этих случаях я потратил изрядное количество времени на рефакторинг базы кода, подыскивая наилучшую архитектуру, через пару месяцев увязая в проблемах с масштабируемостью и вновь принимаясь за рефакторинг.

Недавно я переписал с Laravel на Django одно приложение, которое было у меня в продакшене более года. Мне удалось развернуть новую базу кода менее чем за 10 дней, написав для этого минимальное количество кода (говорю же: сложность уменьшается!) В обратном направлении подобная операция определенно заняла бы более месяца.

Если вы попытаетесь напрямую сравнивать другие фреймворки с Django, это вам ничего не даст.

Контроль производительности может показать, что фреймворк на Java быстрее Django. Вы можете хорошо разбираться в PHP, так что, возможно, разработка приложения на Django пойдет у вас быстрее, чем на знакомом вам PHP-фреймворке. В случае с совсем простым приложением настройка Django может показаться вам слегка утомительной – конечно, гораздо проще написать файл со скриптами. Результаты опросов могут разниться в зависимости от того, среди какой аудитории они проводились.

Однако, здесь мы рассуждаем не только о фреймворках, относящихся к другим технологиям. Даже если вы знакомы c Python, возможно, микрофреймворк Flask покажется вам более удобным и желательным. Придется задуматься, на котором из них остановиться.

Мой совет – просто не сравнивайте их.

Вывод

На мой взгляд, в Django удалось идеально сбалансировать производительность, архитектуру, уровень сложности при разработке, безопасность и масштабируемость.

Если вы начинаете писать проект с нуля – настоятельно рекомендую попробовать сделать его с Django.

Django или Ruby-On-Rails? — ruby-on-rails

Я давно ищу работу. Большинство компаний требуют RoR или Django опыта. Я не знаю ни одного из этих языков. Число организаций, работающих с RoR, превышает Django. Но я предпочитаю django из-за python.

Что вы, кодеры / рекрутеры, предлагаете мне знать?

ruby-on-rails

ruby

django

Поделиться

Источник


Kapil D    

10 мая 2009 в 22:23

7 Ответов



62

Мой лучший ответ-чтобы вы научились и тому, и другому.

Считайте это своей конечной целью, а вместо этого рассматривайте свой вопрос как: «Which one should I learn first?»

Я рекомендую вам начать с Django, особенно если у вас есть опыт Python. Подход Django, как и подход самого Python, более благоприятен для обучения. Как только вы промокнете ноги, изучите Ruby на Rails, потому что это основа, которая поможет вам легче заработать деньги, когда вы выйдете в современную рабочую силу Web 2.0.

Как только вы полностью ознакомитесь с Ruby на Rails и немного поработаете, продолжайте изучать Django. Перепрофилируйте себя с основами, а затем начните изучать некоторые из более продвинутых вещей. Внутренние внутренности Django предположительно легче вскрыть, чем внутренности Rails. Если вы когда-нибудь столкнетесь с открытием вакансии с удивительно новой и сложной веб-платформой для реализации, вы найдете свои знания Django довольно удобными.

Вот буллитизированное изложение:

Django

  • Отличная документация
  • Тщательный учебник, чтобы облегчить вам работу
  • Меньше файлов, чтобы понять сначала (против лесов в Rails)
  • Построенный на Python, который вы могли бы также знать в любом случае
  • Больше похоже на корпоративные вещи, такие как Java сервлета/JSP
  • Легче копаться в его внутренностях

Ruby на Rails

  • Это то, что горячо
  • Горячая означает больше рабочих мест
  • Вам ведь нужны деньги, не так ли?
  • Когда вы хотите сделать сайт «traditional» web 2.0, его сгенерированный код позволяет вам сделать это очень быстро
  • Интеграция с библиотеками JavaScript
  • Построенный на Ruby, который вы могли бы также знать в любом случае

Вердикт: сначала Django (сделать учебник), затем Rails, затем снова Django

Поделиться


Wesley    

10 мая 2009 в 22:52



19

Я бы посоветовал вам провести некоторые исследования относительно тенденций развития технологий и спроса на специалистов, вы можете сделать это с помощью инструментов Google, таких как Google Trends

Смотрите более подробную информацию о технологических исследованиях здесь . Счастливого кодирования!

Поделиться


Pavel Podlipensky    

12 июня 2012 в 16:00



9

Если вы больше знакомы с Python, то вам следует сделать Django. Google App Engine -это большой пользователь Django, и вы можете использовать его для «sharpen your saw» в Django навыках, для бесплатных инвестиций.

Поделиться


Chris Jester-Young    

10 мая 2009 в 22:27



8

Узнать как.

Ищите компанию, где люди (без галстуков) весело работают там и отзываются сочувственно о тамошней работе. Это имеет гораздо большее значение, чем технология, с которой они работают.

Поделиться


Andre Bossard    

11 мая 2009 в 12:44



1

попробуйте ruby…I love ruby over python, тогда я предпочитаю rails over django…but, если вы попробуете ruby и вам это не понравится, ваш лучший вариант будет django…

Поделиться


angel    

04 июня 2010 в 02:02



1

Если у вас мало времени, и вы должны выбрать один, просто выберите тот, для которого вы знаете, как программировать. Если вы знаете python, учитесь django, если вы знаете ruby, учитесь rails. У обоих есть отличные учебные пособия и справочные материалы, RoR правил в скринкастах, django документация по правилам и учебники.
Если у вас есть много свободного времени, скажем, 3-4 месяцев, то изучите и то, и другое. А что в этом плохого?

Поделиться


roopesh    

12 мая 2009 в 09:23



0

Я думаю, это зависит от того, насколько вы привыкли к условностям. Переходя от MVC4 к Django, я люблю много вещей, но обнаруживаю, что пишу больше кода, где django вызывает конфигурацию против соглашения. Я обнаружил, что есть много общих методов, которые я нахожу, которые уменьшают это, так что это может быть проблемой кривой обучения для меня.

Поделиться


Yablargo    

01 июля 2013 в 01:37


Похожие вопросы:

Ruby on Rails — не создает скрипт / сервер

Я уже два дня пытаюсь установить Ruby на Rails на windows xp (я нуб на RoR, впервые использую его). Я читаю несколько учебных пособий в интернете, как его установить. Я установил Ruby, установил…

Должен ли хостер поддерживать «Ruby on Rails» или «just Ruby» для запуска Rails?

Должен ли хостер поддерживать Ruby on Rails или just Ruby для запуска Rails? Я знаю в основном PHP и спрашиваю себя, ведет ли Ruby on Rails себя к Ruby … например, от Zend Framework до PHP: просто…

Ruby on Rails мобильное приложение

Я пытаюсь разработать приложение Ruby on Rails, которое будет обнаруживать клиент, т. е. мобильный телефон (браузер), который подключается к серверу, и отображать соответствующий макет. Я попытался…

Ruby на Rails для веб-приложений, Django для веб-страниц?

Несколько дней назад я прочитал что-то вроде Ruby на Rails для веб-приложений, Django для стандартных веб-страниц. Это правда? Я должен решить в ближайшие недели, если я иду с Ruby на Rails или…

Преобразование проекта Ruby on Rails в проект JRuby on Rails

есть ли какой-либо конкретный способ преобразовать проект Ruby on Rails в проект JRuby on Rails? Теперь нужно заставить сторону Rails поговорить с сервером Java через RMI, поэтому было интересно,…

могут ли пользователи, которые использовали как Django, так и Ruby на Rails, дать небольшое сравнение их использования?

Дубликат: Django или Ruby-On-Rails? Я читал на Ruby на Rails,и кажется, что на некоторых потоках некоторые пользователи тоже любят Django? Может ли кто-то, кто использовал оба, дать некоторое…

Ruby против Ruby на Rails

В чем разница между Ruby на Rails и Ruby? Я спросил четырех человек, но никто не может дать окончательного ответа. Является ли Rails своего рода библиотекой для Ruby, a la Django to Python или Cocoa…

Django или Nodejs или Ruby на Rails?

Я хочу научиться веб-разработке, я немного знаю Python и Nodejs. У меня нет никаких знаний о Ruby. Итак, в приведенном ниже 3, Какой из них я должен выбрать для веб-разработки? Django Nodejs Ruby на…

Ruby on Rails keybard ярлыки

Возможный Дубликат : Ruby on Rails keybard ярлыки Привет всем — кто-нибудь знает, как настроить сочетания клавиш с помощью Ruby на Rails на моем сайте? Например, если пользователь хочет…

Django или Ruby на Rails

Я разработчик C#/.NET, который хочет возиться с чем — то совершенно другим-чем-то LAM(*) stackish для быстрого создания веб-приложений. Я думаю либо о Django, либо о Rails. Мне больше нравится язык…

Django против Ruby on Rails

В мире программирования существует множество фреймворков для веб-разработки, доступных разработчикам, но, как мы все знаем, Django и Ruby on Rails выделяются больше всего. Они становятся популярными веб-фреймворками, и ожидается, что их популярность сохранится до 2020 года.

Однако сейчас у нас есть дискуссия, поэтому давайте взглянем на

Человек 1: «Django — лучшая среда веб-разработки , поскольку предлагает простой и понятный код.”

Человек 2: «Ну, Ruby on Rails предлагает быстрый процесс разработки, что дает ему преимущество».

Такие дискуссии относительно Django vs Ruby on Rails становятся широко популярными, и нескончаемые дебаты все еще продолжаются. В таком сценарии мы провели исследование и представляем вам наш взгляд на него.

Поскольку обе платформы нравятся ведущим разработчикам веб-приложений и мобильных приложений, мы сравнили их по 17 пунктам разницы.Однако, прежде всего, давайте кратко рассмотрим преимущества и недостатки RoR и Django, а также проясним, чем они являются.

Что такое Джанго?

Выпущенный еще в 2005 году, Django — это веб-фреймворк на основе Python, который также является основным выбором для разработки приложений Python. Что делает его настолько популярным, так это то, что это универсальный бесплатный фреймворк с открытым исходным кодом, что делает его легко доступным. Разработчики высоко оценивают возможности Django.Он был разработан с целью упрощения процесса создания сложных веб-сайтов на базе баз данных. Этот фреймворк способствует быстрой разработке с аккуратным и прагматичным дизайном.

Плюсы Django Framework

  • Масштабируемый
  • Зрелое программное обеспечение с многочисленными надстройками
  • Широкие возможности настройки
  • Действующая панель администратора
  • Django имеет структуру передачи репрезентативного состояния (REST) ​​
  • Принимает подход с использованием батарей
  • Поддерживает программирование MVC
  • Высокая совместимость с базами данных и операционными системами

Минусы Django Framework

  • Отсутствует возможность одновременной обработки нескольких запросов
  • На основе Django ORM
  • Делает компоненты веб-приложений тесно связанными
  • Слишком монолитный

Что такое Ruby on Rails?

Написано под лицензией MIT, Ruby on Rails, сокращенно RoR, представляет собой серверную платформу веб-приложений с открытым исходным кодом.Будучи контроллером модели-представления, Rails предоставляет потрясающие структуры по умолчанию для базы данных, веб-сервисов и страниц. Это считается способом экономии времени разработчиков при написании кода.

Эта структура работает в основном на двух принципах — СУХОЙ (Не повторяйся) и Соглашение вместо конфигурации. Первое, что говорит само за себя, устраняет необходимость выполнять одну и ту же задачу кодирования снова и снова, а второе означает, что среда, в которой вы работаете, например системы, библиотеки, языки и многое другое, по умолчанию допускает множество логических ситуаций.Это означает, что вы можете адаптироваться к ним вместо того, чтобы каждый раз создавать свои собственные правила, что значительно упрощает весь процесс программирования.

Плюсы Ruby on Rails

  • Легко изменять и переносить
  • Скоростная развертка
  • Разнообразные инструменты и предустановки
  • Улучшенная среда тестирования
  • Активное сообщество RoR
  • Структура компонентов основана на плагинах и драгоценных камнях, что обеспечивает высокую функциональность с меньшим количеством кода.

Минусы Ruby on Rails

  • Сложно создать API
  • Различное качество и стандарты документации
  • Низкая скорость работы
  • Отсутствие гибкости

Разница между Django и Rails Framework

Язык

В то время как Django использует Python, Rails разрабатывается с использованием Ruby, представленного еще в 1995 году.Python входит в число ведущих языков программирования и известен тем, что подчеркивает ясность и удобочитаемость кода, тогда как Ruby известен своими атрибутами, такими как гибкость и свобода, а также своим понятным синтаксисом.

(Узнайте больше о Python в нашей статье «PHP против Python: какой язык доминирует на рынке?»)

Более того, Python — самый простой язык программирования, который нужно быстро изучить и написать. На Python можно разрабатывать различные виды приложений.

С другой стороны, Ruby был разработан с упором на то, чтобы «получать удовольствие» от написания языка, так что это в основном весело. Хотя приложения, созданные с использованием любого из них, будут выглядеть и работать практически одинаково, основное различие можно увидеть под обложками.

Архитектура

У обеих сред веб-разработки есть одна общая черта: обе они приняли MVC (Model-View-Controller). Однако для Django он называется MVT (Model-View-Template).И MVC, и MVT по большей части похожи и немного отличаются.

В Django модель представляет базу данных, описывающую структуру данных, View — это диспетчер URL-адресов на основе регулярных выражений, который управляет тем, что должны видеть пользователи. И последнее, но не менее важное: Template означает систему веб-шаблонов, которая объединяется с языком шаблонов Django (DLT). Часть контроллера здесь обрабатывается самим Django.

Что касается RoR, Модель обозначает данные базы данных, такие как комментарии, изображения, сообщения и т. Д.Обо всем этом позаботится ActiveRecord. Здесь представление охватывает данные в шаблоне HTML и затем отправляет их в контроллер, который затем обрабатывается ActiveView. Теперь ActionController — это тот, кто связывает модель и представление и обрабатывает запросы, а также отвечает за отправку ответов в веб-браузер.

Пользовательский интерфейс

При сравнении Django и Rails на основании пользовательского интерфейса они оба являются абсолютными победителями. Это потому, что они оба созданы, чтобы предлагать первоклассный опыт.Эти веб-ориентированные фреймворки позволяют каждому агентству по разработке приложений разрабатывать высокофункциональные веб-сайты, загруженные безупречными надстройками и плагинами

Скорость и производительность

В битве RoR против Django было замечено, что Rails быстрее на 0,7%. Это потому, что у Rails есть преимущество в виде богатого репозитория удивительных библиотек и плагинов для повышения скорости и, в конечном итоге, производительности этой структуры. Тем не менее, Django также способствует ускоренному процессу разработки и является отличным выбором для веб-фреймворка.

Django REST framework обеспечивает удобство в виде модулей аутентификации, сериализаторов / десериализаторов JSON и т. Д. Сравнивая Django и RoR, мы можем сказать, что Django может иметь преимущество, поскольку REST является одним из выдающихся преимуществ Django.

Тем не менее, производительность Django vs Rails высока для обоих, поскольку они используют современные языки программирования и предоставляют инструменты для оптимизации кода.

Устойчивость

Креативность и стабильность — два параллельных элемента, которые необходимы для развития.Мы могли бы рассмотреть одного победителя, который сможет эффективно справиться с обоими. Ruby on Rails может совмещать и то и другое, поскольку позволяет пользователям повторно использовать код для минимизации зависимостей. Он также использует подход «Соглашение по конфигурации», освобождая кодировщиков от любых дополнительных усилий.

С другой стороны, Python использует более традиционный подход, придерживаясь любого проверенного метода для решения имеющихся проблем, обеспечивая стабильность.

Установка

Сравнение Django и Ruby on Rails на основе процесса установки не является крепким орешком.Процесс установки Django очень прост и, следовательно, для полной установки требуется всего около минуты.

Однако этого нельзя сказать о RoR. Сначала вам нужно понять, что такое пакет и Gems, поскольку они необходимы для установки пакетов для Ruby. Сначала устанавливаются эти два, а затем запускается Command Gem Install Rails, чтобы наконец установить последнюю версию фреймворка Rails.

Безопасность

При сравнении Django и Rails мы должны были включить фактор безопасности, поскольку он является неотъемлемой частью любого веб-сайта или приложений в этом отношении.

Django определенно получил эту функцию от Python. Фактически, NASA также использует фреймворки Django, что само по себе является достаточным доказательством того, насколько он безопасен. Django поддерживает промежуточное ПО, а Rails — активные записи. В Django есть инструменты, которые защищают ваше приложение Django от SQL-инъекций, межсайтовых сценариев (XSS) и т. Д., Как и Rails.

В целом, обе среды веб-разработки являются надежным вариантом, и им можно доверять с точки зрения безопасности.

Масштабируемость

Хотя веб-фреймворк Django унаследовал масштабируемость от Python, он все же немного отстает по сравнению с Rails.Он имеет лучшую масштабируемость, что является результатом его атрибутов, таких как свобода и гибкость кода. Оба они представляют собой тяжеловесные фреймворки для веб-разработки, поэтому оба разработаны с учетом масштабируемости, но разработка на Ruby on Rails здесь занимает первое место.

Синтаксис

Это известный факт, что синтаксис Ruby очень гибкий. Что ж, не всегда это можно связать с преимуществами Ruby on Rails. Это может вызвать проблемы и усложнить передачу проекта другим членам команды, поскольку одна функция может быть реализована разными способами, что создает путаницу.

Принимая во внимание, что Python выступает за то, чтобы существовал только один очевидный способ сделать что-либо, облегчая отладку и чтение кода.

Принципы развития

Принципы похожи на клей, скрепляющий вместе весь процесс разработки. В Django есть два важных принципа, которые заслуживают внимания — DRY (который мы уже обсуждали) и «Явный лучше, чем неявный». Этот принцип позволяет разработчикам создавать простые для понимания приложения, которые обслуживаются множеством людей.

Ruby on Rails также не лишен принципов разработки. Он также использует СУХОЙ и Соглашение вместо Конфигурации, которые пропагандируют, что для продуктивной работы вы должны следовать соглашениям, а не создавать свои собственные конфигурации. Это увеличивает скорость и эффективность.

Документация по фреймворкам

Если говорить прямо, в этом отношении это связь между фреймворками разработки Django и Rails. Обе платформы хорошо документированы, что позволяет легко находить самые популярные часто задаваемые вопросы и ответы на вопросы.Документация на обоих языках написана на очень простом, понятном и прямолинейном языке, не приводя читателя в состояние хаоса.

Срок погашения платформы

Django был впервые представлен в 2005 году и с тех пор продвигается вверх в списке лучших фреймворков для веб-разработки. Его последняя версия была выпущена в апреле 2019 года с множеством новых функций и улучшенной функциональностью.

Ruby on Rails был впервые представлен в 2003 году, но официально был объявлен как фреймворк с открытым исходным кодом в 2004 году.Он также регулярно обновляется, так как последняя версия была выпущена в августе 2018 года.

Создание шаблонов HTML

Хотя и Django, и Ruby on Rails имеют в качестве основной функции шаблоны, Django использует простой язык шаблонов, позволяющий разработчикам создавать шаблоны с минимальными навыками программирования и HTML. Напротив, представления Rails (отдельные шаблоны страниц) кажутся более сложными.

Использование

Если вы ищете фреймворк, который помогает разрабатывать сложные веб-сайты и веб-приложения на базе баз данных за меньшее время, с эффективностью системного администрирования, научного программирования, анализа данных и манипуляций, то Django — это то, что вам нужно.

С другой стороны, Rails также помогает в разработке веб-приложений для баз данных, обеспечивая лучшее удобство использования и свободу для программистов. Поскольку Ruby гибок по своей природе, он является идеальным выбором для метапрограммирования и создания приятных кодов.

Веб-серверы

Для Django основными веб-серверами являются NGINX с использованием WSGI, Apache, Gunicorn и Cherokee. Серверы баз данных для Django — это SQLite, PostgreSQL, MySQL и Oracle.

В то время как для Ruby on Rails веб-фреймворк использует NGINX, Apache (с запущенным модулем Phusion Passenger) и WEBrick в качестве основных серверов.Серверы баз данных для Rails включают PostgreSQL и MySQL.

Поддержка сообщества и экосистема

Django, являясь фреймворком с открытым исходным кодом, также имеет экосистему с открытым исходным кодом, что означает, что разработчикам доступно море библиотек и инструментов, как платных, так и бесплатных. Более того, официальной документации по Django более чем достаточно для справки на случай, если вам понадобится ответ на любую проблему.

Сообщество Django насчитывает более 11 000 человек с более чем 4 000 готовых пакетов для использования разработчиками.Ruby on Rails, напротив, также имеет очень активное сообщество, состоящее из 5000 человек, преданных ему, которые уже внесли много Gems с повторно используемым кодом.

Кривая обучения

Широко известно, что Python — очень простой язык программирования для изучения среди его соперников, что также делает кривую обучения Django небольшой. Существуют различные ресурсы, доступные как в автономном режиме, так и в Интернете, что упрощает решение запросов.

Напротив, у Rails очень крутая кривая обучения из-за независимых концепций, которые разработчик должен отточить, чтобы стать опытным в Railṣ.Поэтому рекомендуется только опытным программистам и разработчикам.

Примеры использования Django

Примеры использования Ruby on Rails

Какие рамки выбрать и когда?

В целом, веб-фреймворки Django и Ruby on Rails находятся на вершине своей категории, составляя жесткую конкуренцию друг другу. Тем не менее, есть определенные области, в которых одно заменяет другое.

Например, если вам нужно приложение с высокой детализацией и замечательными функциями, вам следует использовать Django.Однако, если вы думаете о быстром запуске, а затем работаете над деталями веб-сайта или веб-приложения, Ruby on Rails — ваш идеальный выбор. Это потому, что он обладает ярлыками и функциями автоматизации, которые упрощают добавление сложных функций в веб-приложения.

Часто задаваемые вопросы

В. Что лучше Ruby on Rails или Django?

Ну, сложно ответить на этот вопрос в одном предложении. Между Django и Rails есть много общего, а также их различия.Оба они эффективны в разных задачах. Они оба составляют серьезную конкуренцию друг другу в производительности, скорости, поддержке сообщества, масштабируемости, безопасности и многом другом.

В. Django быстрее, чем Rails?

Да. Если быть точным, Ruby on Rails на 0,7% быстрее Django.

В. Стоит ли изучать Ruby on Rails 2019?

Совершенно верно. Ruby on Rails — один из предпочтительных вариантов разработчиков и программистов для создания веб-сайтов и веб-приложений.Фактически, ожидается, что популярность RoR сохранится в 2020 году, поэтому вам необходимо изучить его.

В. Какие приложения все еще используют Ruby on Rails?

Приложения и веб-сайты, такие как AirBnB, Hulu, Instagram, Crunchbase и т. Д., Разработаны с использованием Ruby on Rails.

Шрикант Шривастава

VP Технологии

В поисках стратегических сессий ?.

Позвольте нам полностью разобраться в вашем бизнесе и помочь вам разработать стратегии вашего цифрового продукта.

Статьи по теме:

.

Ruby on Rails против Python и Django: что должно быть

Лоуренс Брэдфорд

Последнее обновление 25 июля 2017 г.

Лоуренс Брэдфорд начала учиться программированию более года назад. Когда она не учится чему-то новому, она работает копирайтером. Лоуренс обсуждает сходства и различия между Ruby on Rails и Python на Django, двумя популярными объектно-ориентированными языками программирования, и с какого языка следует начать новичку. Посетите ее блог на Learntocodewith.me, где она пишет об обучении программированию для начинающих, а также о лучших доступных ресурсах.

Более года назад я оказался в положении, когда варианты моей карьеры казались безрадостными. Я собирался поступить в аспирантуру по экономическому развитию. Но вместо того, чтобы тратить время и деньги еще на два года в школе, я решил научиться программировать. (Во всяком случае, я всегда любил решать проблемы.) Но, как и большинство новичков, я не мог понять, с чего начать.Я хочу создавать веб-приложения, но с чего мне начать?

Моей конечной целью было создание веб-приложений. После небольшого исследования «разработки веб-приложений» в Google стало ясно, что Ruby on Rails (RoR) и Python и Django — два очень популярных метода создания веб-приложений. Но что лучше всего для новичка?

Ruby on Rails против Python и Django

С технологической точки зрения, между ними нет «победителя». RoR, Python и Django имеют определенные сходства и, конечно же, различия.

Когда дело доходит до выбора, чему учиться, ваши личные предпочтения, а также конечные цели являются наиболее важными факторами. Давайте взглянем на RoR в сравнении с Python и Django.

Сходства:

  • Серверные рамки
  • Соблюдайте принцип DRY (не повторяйтесь)
  • У обоих есть расширения и пакеты, предоставленные сообществом (что значительно упрощает создание веб-приложения с нуля).
  • Популярные и проверенные фреймворки веб-приложений в мире программирования

Рубин на рельсах

Ruby — это язык программирования, созданный в середине 1990-х годов в Японии Юкихиро Мацумото.Rails — это фреймворк для веб-приложений с открытым исходным кодом, написанный на Ruby, появившийся в 2005 году.

Преимущества использования RoR

  • Основным преимуществом Rails является философия, называемая соглашением над конфигурацией (CoC), то есть это фреймворк, который имеет структурированный макет со значениями по умолчанию (читайте: легко начать работу — вроде как стартовый комплект веб-приложения)
  • Синтаксис

  • Ruby идеально подходит для тех, кто предпочитает символы сопоставления с образцом, поскольку он использует разные символы как аналоги ключевых слов
  • Он создан для скорости и адаптации
  • Сильное сообщество поддержки как онлайн, так и офлайн

Часто смотрят:

В мире стартапов.

Сайтов, построенных с использованием RoR:

Python и Django

Python — это язык программирования, созданный Гвидо ван Россумом в начале 1990-х годов. Django — это бесплатная среда веб-приложений с открытым исходным кодом, написанная на Python. Его первоначальный выпуск был в 2005 году.

Преимущества использования Python и Django

  • Разработчик имеет больше возможностей выбора макета и параметров конфигурации
  • Прозрачный и минималистичный, но элементы должны быть явно включены
  • По сравнению с RoR, многие считают обновления менее болезненными и менее частыми
  • Python имеет чистый синтаксис, напоминающий английский
  • .

  • Python сильнее в таких областях, как обработка данных, аналитика, системное администрирование и научное программирование

Часто видели:

В академическом и научном мире.

Сайтов, построенных на Python и Django:

  • Pinterest
  • Instagram
  • Disqus

В конечном счете, основное различие между ними заключается в том, что RoR требует меньше усилий для запуска и запуска , а Django позволяет больше настраивать .

Почему я начал с Python

Когда я только начал учиться программированию, я выбрал Python .После первых проб и ошибок, перескакивая с языка на язык, я понял, что мне нужно посвятить себя только одному языку программирования. В конце концов я решил начать изучение Python. Для меня было важно, что я понял основы программирования и логику , прежде чем приступить к созданию веб-приложений. Кроме того, я знал, что, освоив Python, мне будет легко перейти на что-то другое.

В Интернете, от Массачусетского технологического института до Coursera и Udacity, я видел курсы Intro to CS, использующие Python в качестве языка обучения.Я знал, что если они используют Python, это должно быть хорошо для новичков. Однако, когда мне захотелось создавать веб-приложения, я решил использовать маршрут RoR вместо Python и Django.

Почему я позже перешел на RoR

Причина, по которой я не пошел по пути Python и Django, несмотря на то, что уже изучал Python, заключалась в том, что моей целью было запустить и запустить легкие веб-приложения в короткие сроки. С рельсами не составит большого труда запустить простое приложение. Возвращаясь к философии CoC, значения по умолчанию для направляющих позволяют меньше работать.Что в моем случае было тем, чего я хотел. К тому же я выбрал RoR из-за большого сообщества. Например, по сравнению с Django у Rails на звезд больше, чем на Github . Существует также множество онлайн-руководств RoR , руководств и так далее. Черт, есть даже горячая линия Rails , по которой можно позвонить.

Личные предпочтения и цели являются наиболее важными при принятии решений

Опять же, решая изучить RoR или Python и Django, самое важное, что нужно учитывать, — это ваши личные предпочтения и цели .Некоторые люди предпочитают один из двух языков программирования. Как упоминалось ранее, Ruby имеет структуру сопоставления с образцом, тогда как Python очень похож на английский язык . (Помните, Ruby был создан носителем японского языка, тогда как Python был разработан носителем английского языка.)

Что касается целей , есть ли у вас работа мечты? Или компания-мечта, в которой можно работать? Если да, посмотрите, какой язык и фреймворк они используют. Или, возможно, вы видите, что работаете в стартапе или создаете собственный.Если да, посмотрите RoR.

Однако, возможно, вас больше интересуют «большие данные» и возможность настраивать каждый аспект вашего веб-приложения. Если да, изучите Python и Django.

Наконец, имейте в виду, что когда вы станете более опытным программистом, вам будет намного проще перейти на другой язык программирования или новую структуру. Итак, если вы начнете изучать RoR, но однажды получите работу, требующую Python и Django, это не будет концом света.

Учебные курсы по программированию, обучающие Ruby и Python:

Готовы окунуться в курс для начинающих по кодированию с погружением? Начните с изучения этих учебных курсов Ruby on Rails и Python:

Учебные курсы по программированию на Ruby on Rails:

Учебные курсы по программированию на Python:

Заинтересованы в дополнительных сравнениях между Ruby и Python? Мы провели подробный веб-семинар, сравнив два языка! Проверить это.

И воспользуйтесь нашим инструментом подбора Bootcamp, чтобы найти лучшую школу, в которой преподают Ruby и Python!

Об авторе

Лоуренс Брэдфорд (Laurence Bradford) — полностью самоучка, занимающаяся фронтенд-разработкой, и создатель книги «Learn to Code With Me».

.

Что такое Ruby on Rails / Django, эквивалент PrimeFaces?

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *