Історія популярності Джанго [закрито]


84

Яка послідовність подій зробила Django найпопулярнішим веб-фреймворком Python .. і досі таким? Хоча існує кілька інших рамок.

Примітка : Це питання не є ні аргументованим, ні конфронтаційним . Я просто попросив (об'єктивну) "послідовність подій", що призвела до її фактичної популярності. Знаючи про динаміку прийняття програмного забезпечення , я не маю наміру нікому вступати в суперечки щодо технічної переваги.


14
Django - найпопулярніший веб-фреймворк Python - це факт, а не суб’єктивна думка. "послідовність подій" означає дизайнерські рішення, терміни, маркетинг тощо, що призводять до його популярності. Що в цьому безглуздого?
Шрідхар Ратнакумар,

2
Це справді гарне запитання.
Джошуа Партогі,

Я з цікавістю спостерігатиму, чи відомі ці дизайнерські рішення, терміни, маркетинг тощо з достатньою точністю та своєчасністю, щоб вважати їх "історією".
Джон Сондерс,

Я не згоден із закриттям цього питання, але це може бути краще на CS .
Kyle Strand

Відповіді:


107

Я думаю, було декілька факторів, поєднання яких було більшим, ніж сума їхніх індивідуальних ваг.

Одне - просто хронометраж: Джанго з’явився саме тоді, коли наростала перша велика хвиля ажіотажу на Rails, і тому його відразу ж зобразили як своєрідну «відповідь Пітона на Rails». Це призвело до несуттєвої кількості очних яблук на проекті майже з самого початку. Той факт, що Адріан був на зустрічі "Змії та рубіни" в Чикаго і мав брати участь у паралельних переговорах про Рейлса та Джанго, багато зробив для цього.

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

І Джанго вийшов із воріт із документацією, яка (якщо можна так сказати, сама) була набагато вище звичайного стандарту для проектів з відкритим кодом і з часом лише покращилася. Підручник, незважаючи на всі його численні помилки, вражає низку найвищих моментів, які роблять Django корисним, а решта документації завжди була доброякісною, поєднуючи як посилання на API, так і важливі "як" біти за потреби. Це створює хороший нестандартний досвід і допомагає в процесі навчання після навчання (те, що завжди мучило Зопе).

Я також думаю, що існує сприйняття - правильно чи помилково - що, скажімо, Pylons чи Werkzeug дійсно краще для досвідчених розробників, які вже добре знають WSGI та веб-екосистему Python; той факт, що вони, як правило, є вагомим рішенням для того, щоб взяти ваші улюблені бібліотеки та з’єднати їх, є джерелом цього, я думаю, і, можливо, підштовхує деяких нових людей до інтегрованого підходу Джанго. Зворотний бік, звичайно, полягає в тому, що багато людей, яким було б краще навчитися більше заздалегідь, перш ніж спробувати Django, цього не роблять;)

Нарешті, я думаю, що можна сказати щось про те, як Джанго продавали, тобто про те, що він справді не продавався довгий час, або принаймні не в тому сенсі, що, скажімо, продавався Rails. Поки Django 1.0 не приземлився, "маркетингові" зусилля в основному складалися з ведення блогів (і траплялися деякі помітні випадки, коли людей просили це трохи зменшити), переговорів на PyCon, а потім здебільшого просто вдосконалення фреймворку, створення з ним крутих речей і дозволяючи результатам говорити самі за себе. Зараз, звичайно, у світі після 1.0 ми маємо DSF та DjangoCon та бізнес-орієнтованих консультантів, які проводять навчальні сесії, багато книг та всього іншого, але це все ще досить нове.

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


31
Не потрібно бути скромним: якість та кількість документації Django - це величезний плюс для неї. Молодці, всі.
Нед Дейлі

1
"Поки Django 1.0 не приземлився," маркетингові "зусилля в основному складалися з людей, які ведуть блоги ..." Ви забуваєте дві книги, видані (тобто тривалий час у роботах) до версії 1.0, одна з яких - ваша? Це звучить для мене як важкий маркетинг.
Крістіан,

9
Дві книги не роблять "важкого маркетингу", принаймні для мене. І, чесно кажучи, я вважав би за краще не пускати свою до тих пір, поки не вийшов 1.0, хоча б тому, що це трохи спростило б моє життя.
Джеймс Беннетт,

4
Вам, мабуть, слід згадати свою участь у Django, оскільки він не такий відомий на SO, як, скажімо, ваш блог. Здається, я пам’ятаю, що ви писали щось про це раніше, хоча банкомат посилань не можу знайти.
Xiong Chiamiov

7
Клацнути на моє ім’я і побачити, хто я є, досить просто.
Джеймс Беннетт,

112

Багато веб-фреймворків Python вже існували, коли Django з'явився в 2005 році - справді, до того часу жарт уже ходив, що Python - це "мова з більшою кількістю веб-фреймворків, ніж ключових слів" (і Гвідо відхилив мою пропозицію виправити це в Py3k додавши багато, багато інших ключових слів). Тепер "джанго" як таке трохи неоднозначне як пошуковий термін (це також ім'я популярного гітариста, життя якого надихнуло фільм Вуді Аллена тощо, тощо), тим не менше додаючи "пошук" до пошуку, щоб видалити ці інші значення Ви можете бачити, наприклад, на цьому графікуяк змінилася його відносна популярність порівняно з іншим класичним веб-фреймворком Python, Zope. Переважно стабільний ріст кварталу за кварталом, з надзвичайним дивовижним стрибком на початку другого кварталу 2008 року ... який просто збігається з датою, коли Google оголосив про App Engine (у такому випадку неможливо довести причинно-наслідкові зв’язки, але збіг принаймні цікаво ;-).

App Engine по суті виключає будь-яку веб-структуру Python, яка глибоко залежить від користувальницьких кодованих компонентів, або по суті вимагає "сильно реляційної" функціональності; серед тих, які добре працюють із чистим кодом Python, Django - це, мабуть, той, який App Engine найбільш безпосередньо і помітно підтримує. Однак це було лише поштовхом, додавши до основної тенденції здорового зростання Джанго. Пояснення цієї тенденції (і справді рішення команди App Engine та рішення користувачів настільки добре підтримувати Django) повинно полягати в характеристиках, властивих самому Django.

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

Простота початку роботи, автоматичні "сторінки адміністратора" тощо - а також той факт, що Django можна гнути для створення дійсно багатих та складних сайтів / програм та задоволення особливих чи унікальних вимог, маючи багато навичок та певної роботи - є, мабуть, "особливостями вбивства". Щоб використовувати Werkzeug у найкращому вигляді, вам потрібно зрозуміти HTTP та WSGI, а також вибрати та інтегрувати ваше улюблене сховище та шаблони - розробників веб-сайтів та програм на базі Python (таких як, в певному сенсі, користувачі Rails або користувачі ще більш популярні PHP! -) "голосують своїм розумом" за середовище, в якому їм не обов'язково потрібно робити щось із цього, але здебільшого вони можуть зосередитись на своїй області застосування. Мені доведеться визнати, що вони, мабуть, мають сенс ;-).


3
Думаю, враховуючи популярність Джанго, деяке знайомство з нею вам послужить; це не виключає також використання 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

Я можу подумати про три причини популярності Джанго, наскільки я бачу, лише одна з них була розглянута в інших відповідях:

  1. Документація. Він добре структурований, всебічний та доступний для багатьох рівнів кваліфікації.

  2. Дизайн. Візуальний дизайн адміністратора, сторінки помилок та сайт проекту набагато перевищують рівень дизайну, який спостерігається у більшості проектів з відкритим кодом.

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


13

"Мій особистий фаворит, і я сподіваюся, що це буде залишатися особистим фаворитом на довгий час, - це щось на ім'я Джанго" - Гвідо Ван Россум у щотижневому епізоді FLOSS 11, що вийшов в ефір 4 серпня 2006 р.

[Натисніть тут] (слухайте останню третину інтерв’ю)

Думаєте, це могло допомогти? або, принаймні, причина, чому Google вибрав його для AppEngine?

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

Покращення модульності: [натисніть тут]

kick ass документація Натисніть тут

У спільноті також є щось, що змушує людей хотіти зробити свій внесок, на що я ще не поклав руку: натисніть тут

Звичайно, все, що призводить до того, що Django стає вибіжником: натисніть тут

Про популярність Джанго не йдеться.


1
Я думаю, що ця відповідь трохи надає іншим. Багато людей сліпо пішли в Джанго через цей коментар.
Хорхе Варгас,

Нічого поганого в тому, щоб робити це наосліп, коли Гвідо описує це як таке. Я це зробив і з тих пір ніколи не оглядався.
Вгору.

3

У моєму випадку я купив книгу TurboGears і намагався пройти через її невідповідності та випадковий шлях до пояснень. Тоді я дістав книгу про Джанго, і вуаля! Мій перший платний проект був створений під час проходження зразка проекту в книзі. Це плюс онлайн-документація запечатувала угоду. Для мене це було просто: Документація, документація, документація.


2

Я помітив, що його часто рекламували як еквівалент Ruby on Rails у Python. Він також має підключення до Google (Google проводить події Django та підтримує їх у своєму App Engine). Веб-фреймворк, який схвалює Google, повинен щось надати. :)


2
Звичайно, але GAE з’явився набагато пізніше. І Джанго був уже популярний.
Шрідхар Ратнакумар,

1
@Sridhar, так - у своїй відповіді я вказав обидва пункти: GAE дав Django значну кількість зусиль на момент оголошення ... але це було на вершині стійкої тенденції зростання.
Алекс Мартеллі,

2

Принаймні для мене важливим фактором було те, що Саймон Віллісон та Адріан Головатий були вже добре відомими гравцями на сцені "Веб-стандарти", а також Джефф Крофт пізніше.

Це не лише якісна печатка, але й зробило Django дуже зручним для роботи в Інтернеті, з його повагою до HTTP, розміткою та навіть швидким та брудним способом "налагодження друку", до якого звикли люди, що походять з PHP.

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

Як вже зазначали інші, документація значно вище середнього. Найкраще, що я бачив, наскільки я пам’ятаю.


0

Той факт, що декілька великих сайтів вже використовують Django (тобто lawrence.com тощо ...) - навіть до 0,96 днів - допоміг мені переконати керівництво у безпеці використання. Такі речі, як Пілони та Турбогеари, справді цього не мали.


1
На щастя, ці дні закінчились, тепер, коли пілони тепер мають reddit.com та sourceforge (через турбонаддуви).
zzzeek

Однак Pylons ще не досяг 1.0, що, я вважаю (не перевірив), означає, що їм не вистачає обіцянок API щодо стабільності Django.
Xiong Chiamiov

-1

Що стосується популярності Django з часом (буквальне значення назви вашого запитання, якщо не зовсім вашого фактичного запитання), подивіться на тенденцію google .


1
Посилання на тренди неправильне. Як зазначав @Alex Martelli, вам потрібно витягнути гітариста.
Хорхе Варгас,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.