История популярности Django [закрыто]

84

Какая последовательность событий сделала Django самым популярным веб-фреймворком Python ... и до сих пор? Хотя существует несколько других фреймворков.

Примечание : этот вопрос не является аргументом или конфронтацией . Я просто спросил (объективную) «последовательность событий», которые привели к его реальной популярности. Зная о динамике принятия программного обеспечения , я не собираюсь спорить о техническом превосходстве.

Шридхар Ратнакумар
источник
14
Django - самый популярный веб-фреймворк Python - это факт, а не субъективное мнение. «последовательность событий» означает дизайнерские решения, сроки, маркетинг и так далее, которые привели к его популярности. Что в этом бессмысленного?
Шридхар Ратнакумар,
2
Это действительно хороший вопрос.
Джошуа Партоги, 05
Я с интересом буду следить, чтобы узнать, известны ли эти проектные решения, сроки, маркетинг и т. Д. С достаточной точностью и своевременностью, чтобы их можно было считать «историей».
Джон Сондерс
Я не согласен с закрытием этого вопроса, но может быть лучше на CS .
Кайл Стрэнд

Ответы:

107

Думаю, было несколько факторов, комбинация которых превышала сумму их индивидуальных весов.

Один из них - это просто время: Django появился как раз тогда, когда нарастала первая большая волна шумихи о Rails, и поэтому он был немедленно изображен как своего рода «ответ Python на Rails». Это привело к тому, что практически с самого начала проект вызвали немалое количество глазных яблок. Тот факт, что Адриан был на митапе "Snakes and Rubies" в Чикаго и должен был принять участие в параллельных обсуждениях Rails и Django, многое для этого сделал.

Другой фактор заключается в том, что Django является и всегда был установкой из одного пакета (ну, не совсем: вам все еще нужен адаптер базы данных, если вы не используете Python 2.5+ и SQLite, но достаточно близко). Альтернативы, не относящиеся к Zope, которые все сосредоточены на том, чтобы оставлять выбор компонентов в руках разработчика, потребовали немного больше работы, чтобы добраться до точки, где вы могли бы сделать базовое руководство: вам нужно было бы найти ORM, язык шаблонов и т. д. и т. д., и все они будут установлены и настроены. Хотя с годами ситуация стала намного лучше, я думаю, что давние воспоминания об этом все еще действуют.

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

Я также думаю, что существует мнение - правильно или ошибочно - что, скажем, Pylons или Werkzeug действительно лучше подходят для опытных разработчиков, которые уже разбираются в WSGI и веб-экосистеме Python; тот факт, что они, как правило, являются сильным выбором для того, чтобы взять ваши существующие любимые библиотеки и соединить их вместе, является источником этого, я думаю, и, возможно, подталкивает некоторых новичков к интегрированному подходу Django. Обратной стороной, конечно же, является то, что многие люди, которым было бы лучше заранее узнать больше, прежде чем пробовать Django, этого не делают;)

Наконец, я думаю, что есть что сказать о том, как продавался Django, то есть он действительно долгое время не продавался, или, по крайней мере, не в том смысле, в котором, скажем, продавался Rails. До появления Django 1.0 «маркетинговые» усилия в основном состояли из ведения блогов (и были некоторые заметные инциденты, когда людей просили немного смягчить его), переговоров на PyCon, а затем в основном просто улучшения фреймворка, создания с его помощью интересных вещей. и пусть результаты говорят сами за себя. Теперь, конечно, в мире после 1.0 у нас есть DSF и DjangoCon и бизнес-ориентированные консультанты, которые проводят тренинги, много книг и всего остального, но это все еще в новинку.

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

Джеймс Беннетт
источник
31
Не нужно скромничать: качество и количество документации по Django для него огромный плюс. Молодцы все.
Нед Дейли, 04
1
«До появления Django 1.0« маркетинговые »усилия в основном заключались в том, чтобы люди вели блог ...» Вы забыли две книги, опубликованные (то есть в течение долгого времени) до версии 1.0, одна из которых ваша? Для меня это звучит как тяжелый маркетинг.
Кристиан,
9
Две книги не приносят «тяжелого маркетинга», по крайней мере, для меня. И, честно говоря, я бы предпочел не использовать свою версию до выхода 1.0, хотя бы потому, что это немного упростило бы мою жизнь.
Джеймс Беннетт
4
Вам, вероятно, следует упомянуть о своем участии в Django, поскольку он не так известен в SO, как, скажем, ваш блог. Кажется, я помню, как вы писали что-то об этом раньше, хотя я не могу найти ссылку на банкомате.
Xiong Chiamiov
7
Достаточно легко нажать на мое имя и посмотреть, кто я.
Джеймс Беннетт,
112

Многие веб-фреймворки Python уже существовали, когда Django появился в 2005 году - действительно, к тому времени уже ходили шутки, что Python - это «язык с большим количеством веб-фреймворков, чем ключевых слов» (и Гвидо отклонил мое предложение исправить это в Py3k с помощью добавляя много-много других ключевых слов). Само по себе слово "django" немного двусмысленно в качестве поискового запроса (это также имя популярного гитариста, чья жизнь вдохновила фильм Вуди Аллена и т. Д., И т. Д.), Тем не менее, добавляя слово «питон» к поиску, чтобы удалить эти другие значения. вы можете увидеть, например, в этом графикекак изменилась его относительная популярность по сравнению с другим классическим веб-фреймворком Python, Zope. В основном стабильный рост квартал за кварталом, с огромным неожиданным скачком в начале второго квартала 2008 года ... который просто совпал с датой, когда Google анонсировал App Engine (в таком случае невозможно доказать причинно-следственную связь, но совпадение по крайней мере интересно ;-).

App Engine по существу исключает любую веб-платформу Python, которая в значительной степени зависит от пользовательских компонентов с кодом C или по сути требует «в значительной степени реляционной» функциональности; из тех, которые хорошо работают только с чистым кодом Python, Django, вероятно, тот, который App Engine поддерживает наиболее непосредственно и явно. Однако это был просто толчок, добавивший к основной тенденции здорового роста Django. Объяснение этой тенденции (и действительно для команды App Engine и решения пользователей так хорошо поддерживать Django) должно заключаться в характеристиках, которые присущи самому Django.

Django иногда критикуют (в том числе ... ваш покорный слуга ;-) за то, что он "слишком магический" или "слишком монолитный" по сравнению с такими альтернативами, как Pylons, TurboGears, Werkzeug и т. Д., Которые легче (особенно последние , мой любимый ;-), более прозрачный и упрощает замену определенных компонентов (ORM, шаблоны и т. д.). Однако популярность Django говорит нам о том, что для большинства людей, заинтересованных в разработке серверных веб-сайтов и приложений, эти варианты дизайна Django воспринимаются положительно: Django рассматривается как очень богатый и хорошо интегрированный фреймворк (и в нем есть много дополнительных возможностей). ons и добавленные "плагины", но это скорее следствие, чем причина его господства).

Легкость начала работы, автоматические "страницы администратора" и тому подобное - а также тот факт, что Django можно использовать для создания действительно богатых и сложных сайтов / приложений и удовлетворения особых или уникальных требований, с большим умением и некоторой работой - вероятно, "убийственные особенности". Чтобы использовать Werkzeug в лучшем виде, вам необходимо понимать HTTP и WSGI, а также выбирать и интегрировать ваше любимое хранилище и шаблоны - разработчики веб-сайтов и приложений на основе Python (например, в некотором смысле пользователи Rails или пользователи даже более популярный PHP! -) «голосуют вместе со своим мнением» за среду, в которой они не обязательно должны делать что-либо из этого, но могут в основном сосредоточиться на своей области приложения. Я должен признать, что они, вероятно, правы ;-).

Алекс Мартелли
источник
3
Я думаю, учитывая популярность Django, некоторое знакомство с ним сослужит вам хорошую службу; это не исключает использования repoze.bfg, werkzeug и т. д., когда они больше подходят для приложения или сайта. Вы можете создать полу-игрушечный проект с нуля в каждом из них, если у вас есть время, и тем самым глубже понять сильные и слабые стороны, которые делают их более или менее подходящими, в зависимости от того, что влечет за собой проект (я должен признать У меня нет личного опыта работы с repoze.bfg ...).
Алекс Мартелли,
1
@Triptych, явно не единственная причина, поскольку некоторые другие фреймворки (но не какие-либо фреймворки: подумайте, например, Zope! -) могли бы быть столь же применимы. Я предполагаю, что мои размышления о плюсах для разработчиков приложений / сайтов, богато интегрированных и в некотором роде «волшебных» фреймворков, возможно, повлияли на решение о том, для чего предлагать первичную поддержку (например, делая его автоматически доступным без необходимости загрузки пользователем).
Алекс Мартелли,
1
@cletus, Java имеет 50 ключевых слов на java.sun.com/docs/books/tutorial/java/nutsandbolts/… , Python 2.6 имеет 31 словоlen(keyword.kwlist) - например, имена типов не являются ключевыми словами в Python и т. д.
Alex Martelli,
34
Я думаю, вы упускаете важный момент. Документация Django была (намного) лучше, чем любой фреймворк Python (а также лучше, чем документация по рельсам, IMO)
agiliq
6
@Alex, я сомневаюсь, что кто-то действительно читает документы от начала до конца, но большинство людей, когда у них возникают проблемы, запускают поиск в Google. Возможность найти ответ за 5 минут с использованием красивых документов вместо 1 часа поиска по сообщениям в блоге - большой плюс (по крайней мере, до StackOveflow, который значительно упростил задавать глупые вопросы;)
Эдан Маор,
22

Я могу придумать три причины популярности Django, только одна из которых, насколько я понимаю, рассматривалась в других ответах:

  1. Документация. Он хорошо структурирован, всеобъемлющ и доступен для разных уровней квалификации.

  2. Дизайн. Визуальный дизайн админки, страниц ошибок и сайта проекта намного превосходит уровень дизайна, характерный для большинства проектов с открытым исходным кодом.

  3. Поддержка сообщества. Начиная с команды World Online, Django с самого начала подобрал несколько влиятельных евангелистов. Я не уверен, что вы можете переоценить важность таких сообщений в блогах, как Django Джеффа Крофта для не-разработчиков (я думаю, это было название).

Тони
источник
13

«Мой личный фаворит, и я ожидаю, что он останется моим фаворитом еще долгое время, - это что-то под названием Django», - Гвидо Ван Россум в еженедельном выпуске FLOSS 11, показанном 4 августа 2006

[Кликните сюда] (прослушайте последнюю треть интервью)

Думаете, это могло помочь? или хотя бы причина, по которой Google выбрал его для AppEngine?

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

Улучшение модульности: [Щелкните здесь]

документация по заднице Нажмите здесь

В сообществе также есть что-то, что побуждает людей вносить свой вклад, что я еще не заметил: Нажмите здесь

Конечно, все, что приводит к тому, что Django является исключением: Нажмите здесь

В популярности Django сомнений нет.

Вверх.
источник
1
Я думаю, что этот ответ дает немного, чего не делают другие. МНОГО людей вслепую вошли в Django из-за этого комментария.
Хорхе Варгас,
Нет ничего плохого в том, чтобы делать это вслепую, когда Гвидо так описывает это. Я так и не оглядывался с тех пор.
Вверх.
3

В моем случае я купил книгу TurboGears и боролся с ее несоответствиями и случайным путем к объяснению вещей. Потом я получил книгу Django, и вуаля! Мой первый платный проект был создан во время работы над образцом проекта из книги. Это плюс онлайн-документация скрепили сделку. Для меня это было просто: документация, документация, документация.

сигнал
источник
2

Я заметил, что его часто рекламировали как эквивалент Ruby on Rails в Python. Он также связан с Google (Google принимает события Django и поддерживает их в своем движке приложений). Веб-фреймворк, одобренный Google, должен чего-то значить. :)

Joemoe
источник
2
Конечно, но GAE появился намного позже. А Джанго уже был популярен.
Шридхар Ратнакумар
1
@Sridhar, да, в своем ответе я указал на оба момента: GAE сильно подтолкнула Django к дате анонса ... но это было на вершине устойчивой тенденции роста.
Алекс Мартелли,
2

По крайней мере, для меня важным фактором было то, что Саймон Уиллисон и Адриан Головати были уже хорошо известными игроками на сцене «веб-стандартов», как и Джефф Крофт позже.

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

Возможно, я здесь сильно ошибаюсь, нет данных, подтверждающих это, но я чувствую, что Django получил гораздо больше внимания от людей, пришедших с PHP, в отличие от Rails, который получил много преобразований из Java / .NET.

Как уже отмечали другие, документация намного выше среднего. Лучшее, что я видел, насколько я помню.

Мануэль Раззари
источник
0

Тот факт, что Django уже использовалось на нескольких крупных сайтах (например, lawrence.com и т. Д.) - даже к 0,96 дням - помог мне убедить руководство, что его использование безопасно. У таких вещей, как Pylons и Turbogears, этого действительно не было.

Роб
источник
1
К счастью, те времена прошли, теперь, когда у pylons теперь есть reddit.com и sourceforge (через turbogears).
zzzeek
Однако Pylons еще не достиг версии 1.0, что, как я полагаю (не проверял), означает, что им не хватает обещаний стабильности API Django.
Xiong Chiamiov
-1

Что касается популярности Django с течением времени (буквальное значение названия вашего вопроса, если не совсем ваш вопрос), обратите внимание на тенденцию Google .

Питер
источник
1
Ссылка на тренд неверна. Как указал @Alex Martelli, вам нужно вывести гитариста.
Хорхе Варгас,