Django'nun popülerliğinin tarihi [kapalı]


84

Hangi olaylar dizisi Django'yu en popüler Python web çerçevesi yaptı ve yine de öyle? Birkaç başka çerçeve mevcut olsa bile.

Not : Bu soru ne tartışmacı ne de çatışmacıdır . Ben sadece onun gerçek popülaritesini sağlayan (objektif) "olaylar dizisini" istedim. Yazılım kabulünün dinamiklerinin farkında olarak , teknik üstünlük konusunda kimsenin tartışmaya girmesini istemiyorum.


14
Django'nun en popüler Python web çerçevesi olması öznel bir fikir değil, bir gerçektir. "olaylar dizisi", popülerliğine yol açan tasarım kararları, zamanlama, pazarlama vb. anlamına gelir. Bunda saçma olan ne?
Sridhar Ratnakumar

2
Bu gerçekten güzel bir soru.
Joshua Partogi

Bu tasarım kararlarının, zamanlamanın, pazarlamanın vb. "Tarih" olarak kabul edilmek için yeterli doğruluk ve zamanında bilinip bilinmediğini merakla izleyeceğim.
John Saunders

Bu sorunun kapanışına katılmıyorum, ancak CS'de daha iyi olabilir .
Kyle Strand

Yanıtlar:


107

Bence birkaç faktör vardı, bunların kombinasyonu bireysel ağırlıklarının toplamından daha büyüktü.

Birincisi basitçe zamanlamadır: Django, Rails'in ilk büyük dalgası yükselirken ortaya çıktı ve bu yüzden hemen "Python'un Rails'e yanıtı" olarak tasvir edildi. Bu, neredeyse en başından itibaren projede önemsiz olmayan sayıda göz küresi ile sonuçlandı. Adrian'ın Chicago'daki "Yılanlar ve Yakutlar" buluşmasında olması ve Rails ve Django hakkında yan yana görüşmelerde yer alması bunun için çok şey yaptı.

Diğer bir faktör de Django'nun tek paketli bir kurulum olmasıdır ve her zaman olmuştur (pek de değil: Python 2.5+ kullanmıyorsanız ve SQLite kullanmıyorsanız, ancak yeterince yakın olmadıkça bir veritabanı adaptörüne ihtiyacınız var). Bileşen seçimlerini geliştiricinin ellerine bırakmaya odaklanan Zope dışı alternatifler, yalnızca temel bir öğretici yapabileceğiniz noktaya gelmek için biraz daha fazla çalışma gerektirdi: bir ORM, bir şablon dili vb. Yıllar geçtikçe bu çok daha iyi hale gelse de, bence bunun hala bir etkisi var.

Ve Django, açık kaynak projeleri için olağan standardın çok üstünde olan ve ancak zamanla daha iyi hale gelen belgelerle kapıdan çıktı. Öğretici, birçok hatasına rağmen, Django'yu kullanışlı kılan bir dizi yüksek noktaya isabet eder ve belgelerin geri kalanı her zaman iyi kalitede olmuştur, hem API referansını hem de önemli "nasıl yapılır" bitlerini gerektiği gibi karıştırır. Bu, kullanıma hazır iyi bir deneyim sağlar ve eğitim sonrası öğrenme eğrisine yardımcı olur (Zope'u her zaman rahatsız eden bir şey).

Ayrıca, Pylons veya Werkzeug'un WSGI ve Python web ekosistemini zaten bilen deneyimli geliştiriciler için doğru ya da yanlış bir algı olduğunu düşünüyorum; Mevcut favori kütüphanelerinizi alıp bunları birbirine bağlamak için güçlü seçimler olma eğiliminde olmaları gerçeği, bence bunun kaynağı ve belki de bazı yeni insanları Django'nun entegre yaklaşımına itiyor. Diğer bir deyişle, elbette, Django'yu denemeden önce daha önceden daha fazlasını öğrenmesi daha iyi olan birçok insan bunu yapmaz;)

Son olarak, Django'nun pazarlanma şekli için söylenecek bir şey olduğunu düşünüyorum , bu da aslında uzun süredir pazarlanmadığını ya da en azından, mesela Rails'in pazarlandığı anlamında değil. Django 1.0 gelene kadar, "pazarlama" çabası çoğunlukla insanların blog yazmasından (ve insanlardan bunu biraz hafifletmelerinin istendiği bazı önemli olaylar oldu), PyCon'da konuşmalardan ve ardından çoğunlukla çerçeveyi iyileştirmekten, onunla harika şeyler inşa etmekten oluşuyordu ve sonuçların kendi adına konuşmasına izin vermek Şimdi, tabii ki, 1.0 sonrası dünyada, DSF ve DjangoCon ve iş odaklı danışmanlarımız eğitim oturumları, bir sürü kitap ve geri kalan her şeyi yapıyor, ama bu hala oldukça yeni.

Tıpkı Rails'de olduğu gibi bir geri tepme olmasını bekliyorum ve aslında bir süredir demlenmeye başladığını düşünüyorum. Ancak şimdiye kadar, burada listelediğim faktörlerin, en azından Django'nun ilk sürümünden bu yana gördüğü sürekli ve istikrarlı popülerliğin arkasındaki başlıca faktörler olduğunu düşünüyorum.


31
Mütevazı olmaya gerek yok: Django'nun belgelerinin kalitesi ve miktarı bunun için çok büyük bir artı. Herkese aferin.
Ned Deily

1
"Django 1.0 gelene kadar," pazarlama "çabası çoğunlukla blog yazan insanlardan oluşuyordu ..." 1.0'dan önce yayınlanan iki kitabı (yani uzun süredir işlerde) unuttunuz, bunlardan biri sizin mi? Bu bana ağır bir pazarlama gibi geliyor.
Cristian

9
En azından benim için iki kitap "yoğun pazarlama" yapmaz. Ve dürüst olmak gerekirse, 1.0 bitene kadar benimkini kapalı tutmayı tercih ederdim, çünkü sadece hayatımı biraz kolaylaştıracaktı.
James Bennett

4
Muhtemelen Django ile olan ilişkinizden bahsetmelisiniz, çünkü SO'da mesela blogunuz kadar iyi bilinmemektedir. ATM bağlantısını bulamasam da daha önce bunun hakkında bir şeyler yazdığını hatırlıyorum.
Xiong Chiamiov

7
İsmime tıklamak ve kim olduğumu görmek oldukça kolay.
James Bennett

112

Django 2005'te ortaya çıktığında pek çok Python web çerçevesi zaten mevcuttu - aslında o zamana kadar şaka çoktan dolanıyordu, Python "anahtar kelimelerden daha fazla web çerçevesine sahip dildir" (ve Guido, Py3k'te bunu düzeltmek için önerimi reddetti. çok, çok daha fazla anahtar kelime eklemek). Şimdi "django", bir arama terimi olarak biraz belirsizdir (aynı zamanda hayatı bir Woody Allen filmine vb. İlham veren popüler bir gitarcının adıdır), yine de bu diğer anlamları ortadan kaldırmak için aramaya "python" ekler. örneğin bu grafikte görebilirsinizbaşka bir klasik Python web çerçevesi olan Zope ile karşılaştırıldığında göreli popülerliğinin nasıl değiştiğini. Çoğunlukla istikrarlı bir büyüme, çeyreklik çeyreğe kıyasla, 2008'in 2. çeyreğinin başında muazzam bir şaşırtıcı sıçrama ile ... Google'ın App Engine'i duyurduğu tarihle aynı zamana denk geliyor (bu durumda nedenselliği kanıtlamak imkansız, ancak tesadüf şu ki en azından ilginç ;-).

App Engine, temelde özel C kodlu bileşenlere büyük ölçüde bağlı olan veya özünde "büyük ölçüde ilişkisel" işlevsellik gerektiren herhangi bir Python web çerçevesini ortadan kaldırır; Sadece saf Python koduyla iyi çalışanlardan Django, muhtemelen App Engine'in doğrudan ve görünür şekilde en çok desteklediği programdır. Ancak bu, Django'nun altında yatan sağlıklı büyüme trendine katkıda bulunan bir artıştı. Bu eğilimin açıklaması (ve aslında App Engine ekibi ve kullanıcıların Django'yu bu kadar iyi destekleme kararı için), Django'nun kendisine özgü özelliklerde yatmalıdır.

Django bazen Pylonlar, TurboGears, Werkzeug ve c gibi daha hafif olan alternatiflere (özellikle ikincisi) kıyasla "çok büyülü" veya "çok monolitik" olduğu için eleştirilir (sizinki gerçekten ;-) , benim favorim ;-), daha şeffaf ve belirli bileşenlerin (ORM, şablonlama, & c) girip çıkmasını kolaylaştırıyor. Bununla birlikte, Django'nun popülaritesi, sunucu tarafı web siteleri ve uygulamaları geliştirmekle ilgilenen çoğu insan için bu Django tasarım seçimlerinin olumlu bir şekilde algılandığını söylüyor: Django çok zengin ve iyi entegre bir çerçeve olarak görülüyor (ve pek çok eklenti var. Eklentiler ve katkıda bulunan "eklentiler", ancak bunlar yükselişinin bir nedeninden çok bir sonucudur).

, Automagical "Yönetici sayfalarına" başlarken kolaylığı ve benzeri - Django olduğunu hem de aslında olabilir çok beceri ve bazı çalışma ile, gerçekten zengin ve karmaşık siteler / uygulamalar yapmak ve tuhaf veya benzersiz gereksinimlerini karşılamak için bükülebilir - muhtemelen "katil özellikler" dir. Werkzeug'u en iyi şekilde kullanmak için, HTTP ve WSGI'yi anlamanız ve favori depolama ve şablonunuzu seçmeniz ve entegre etmeniz gerekir - Python tabanlı web sitelerinin ve uygulamalarının geliştiricileri (bir anlamda, Rails kullanıcıları veya daha da popüler olan PHP! -), bunlardan herhangi birini yapmak zorunda olmadıkları, ancak çoğunlukla uygulama alanlarına odaklanabildikleri bir ortam için "fikir paylaşımlarına oy veriyorlar". Muhtemelen haklı olduklarını itiraf etmeliyim ;-).


3
Django'nun popülaritesi göz önüne alındığında, ona biraz aşinalık size iyi hizmet edecek; bu, bir uygulamaya veya siteye daha uygun olduklarında repoze.bfg, werkzeug vb. kullanılmasını engellemez. Biraz zamanınız varsa, her birinde sıfırdan yarı oyuncak bir proje yapabilir ve böylece bir projenin gerektirdiklerine bağlı olarak onları az ya da çok uygun kılan güçlü ve zayıf yönler için daha derin bir takdir kazanabilirsiniz (itiraf etmeliyim. Repoze.bfg ile gerçek dünyada ilk elden deneyimim yok ...).
Alex Martelli

1
@Triptych, açıkça tek neden değil , çünkü diğer bazı çerçeveler ( herhangi bir çerçeve değil : örneğin Zope'u düşünün! -) aynı derecede uygulanabilir olabilir. Sanırım uygulama / site geliştiricilerine, zengin bir şekilde entegre edilmiş ve bir şekilde "sihirli" çerçevelerin artıları hakkındaki düşüncelerim, birincil desteğin ne için sunulacağına karar vermiş olabilir (örneğin, herhangi bir kullanıcı yüklemesine gerek kalmadan otomatik olarak kullanılabilir hale getirerek).
Alex Martelli

1
@cletus, Java'da java.sun.com/docs/books/tutorial/java/nutsandbolts/… başına 50 anahtar kelime bulunur , Python 2.6'da 31 len(keyword.kwlist)anahtar kelime bulunur - örneğin, yazım adları Python'da anahtar kelimeler değildir, vb.
Alex Martelli

34
Sanırım önemli bir noktayı kaçırdın. Django'nun dokümantasyonu herhangi bir Python çerçevesinden (yol) daha iyiydi (ayrıca ray dokümantasyonundan daha iyi, IMO)
agiliq

6
@Alex, kimsenin dokümanları okumaya başladığından şüpheliyim, ancak çoğu kişi bir sorun yaşadığında google aramasını yaptı. Cevabı blog gönderilerinde 1 saat aramak yerine güzel görünümlü dokümanları kullanarak 5 dakikada bulabilmek büyük bir artı (en azından StackOveflow'a kadar, aptalca sorular sormayı çok daha kolay hale getirdi;)
Edan Maor

22

Gördüğüm kadarıyla, Django'nun popülaritesinin sadece biri diğer yanıtlarda ele alınan üç neden düşünebilirim:

  1. Belgeler. İyi yapılandırılmış, kapsamlı ve çeşitli beceri seviyelerinden ulaşılabilir.

  2. Tasarım. Yöneticinin görsel tasarımı, hata sayfaları ve proje sitesi, çoğu açık kaynak projesinde görülen tasarım seviyesinin çok üzerindedir.

  3. Topluluk desteği. World Online'daki ekipten başlayarak, Django erken dönemde bazı nüfuzlu müjdeciler topladı. Jeff Croft'un Geliştirici Olmayanlar için Django'su gibi blog yazılarının önemini abartabileceğinizden emin değilim (sanırım başlık buydu).


13

"Kişisel favorim ve bunun uzun süre kişisel favorim olarak kalacağını umuyorum, Django adında bir şey" - Guido Van Rossum, FLOSS'un haftalık 11 bölümünde, 4 Ağustos 2006'da yayınlandı

[Burayı Tıklayın] (röportajın son üçte birini dinleyin)

Bunun yardımcı olabileceğini düşünüyor musun? veya en azından Google'ın onu AppEngine için seçmesinin nedeni nedir?

tabii ki django topluluğu (geliştiriciler dahil) pek çok şeyi doğru yapıyor. Örneğin (Bağlantılarda bazı analizler):

Modülerliği iyileştirme: [Burayı Tıklayın]

kick ass belgeleri Buraya tıklayın

Toplulukla ilgili, henüz parmağımı koymadığım, insanları katkıda bulunmaya teşvik eden bir şey var: Burayı Tıklayın

Tabii ki, Django uç değer olmasının tüm bu kurşun: Tıklayın

Django'nun popülaritesi hakkında soru yok.


1
Sanırım bu cevap, diğerlerinin yapmamasını sağlıyor. Pek çok insan bu yorum nedeniyle Django'ya körü körüne girdi.
Jorge Vargas

Guido bunu böyle tanımlarken körü körüne yapmanın yanlış bir yanı yok. Yaptım ve o zamandan beri hiç geriye bakmadım.
Yukarı.

3

Benim durumumda, TurboGears kitabını satın aldım ve tutarsızlıkları ve bir şeyleri açıklamaya giden gelişigüzel rotasıyla mücadele ettim. Sonra Django kitabını aldım ve işte! İlk ücretli projem kitaptaki örnek proje üzerinde çalışırken yaratıldı. Bu artı çevrimiçi belgeler anlaşmayı imzaladı. Benim için basitti: Dokümantasyon, dokümantasyon, dokümantasyon.


2

Python'daki Ruby on Rails eşdeğeri olarak tanıtıldığını fark ettim. Aynı zamanda Google ile bağlantısı vardır (Google, Django etkinliklerini düzenler ve bunu App Engine'de destekler). Google tarafından onaylanan bir web çerçevesinin bir anlamı olmalı. :)


2
Elbette, ancak GAE bu süreçte çok daha sonra geldi. Ve Django zaten popülerdi.
Sridhar Ratnakumar

1
@Sridhar, evet - Cevabımda her iki noktayı da belirttim: GAE, Django'ya ilan tarihinde büyük bir artış sağladı ... ama bu, istikrarlı bir büyüme trendinin üstündeydi.
Alex Martelli

2

En azından benim için önemli bir faktör, Simon Willison ve Adrian Holovaty'nin daha sonra Jeff Croft'un yanı sıra "Web Standartları" sahnesinde zaten iyi tanınan oyuncular olmasıydı.

Bu sadece kaliteli bir mühür değildi, aynı zamanda Django'yu HTTP'ye, biçimlendirmeye ve hatta PHP'den gelen insanların alışkın olduğu hızlı ve kirli "yazdırma hata ayıklama" yöntemine olan saygısı ile çok web dostu yaptı.

Burada büyük ölçüde yanılıyor olabilirim, bunu destekleyecek veri yok, ancak Java / .NET'ten çok sayıda dönüşüm alan Rails'in aksine Django'nun PHP'den gelen insanlardan çok daha fazla ilgi gördüğünü hissediyorum.

Diğerlerinin de belirttiği gibi, belgeler ortalamanın çok üzerindedir. Hatırladığım kadarıyla gördüğüm en iyi şey.


0

Halihazırda Django (yani lawrence.com vs ...) kullanan birkaç yüksek hacimli sitenin olması - 0.96 gün içinde bile - yönetimi kullanımının güvenli olduğuna ikna etmeme yardımcı oldu. Direkler ve Turbogears gibi şeyler gerçekten buna sahip değildi.


1
Neyse ki o günler sona erdi, şimdi direkler artık reddit.com ve sourceforge'a (turbogears aracılığıyla) sahip.
zzzeek

Yine de pilonlar henüz 1.0'a ulaşmadı, sanırım (kontrol etmedim) Django'nun API kararlılık vaatlerinden yoksun oldukları anlamına geliyor.
Xiong Chiamiov

-1

Django'nun zaman içindeki popülaritesine gelince (soru başlığınızın gerçek anlamı, asıl sorunuz olmasa da), google trendine bir göz atın .


1
Trend bağlantısı yanlış. @Alex Martelli'nin belirttiği gibi, gitaristi çıkarmanız gerekiyor.
Jorge Vargas
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.