Django channels vs Tornado

Django channels, Django frameworküne entegre bir websocket kütüphanesi.
Tornado ise websocket üzerine kurulmuş bir web frameworkü.
Bunlardan birini yazmak için biraz zamanım var. Ancak sadece 1 tanesine yetecek. Sizin fikrinizi alayım dedim.
Lütfen oy vermeden önce kısa bir araştırma yapın. Zaten çok fazla Türkçe kaynak yok ikisi içinde.

Django channels vs Tornado
  • Django Channels
  • Tornado

0 oylayanlar

Bildigim kadariyla zaten Django biliyorsunuz. Ustune channels ogrenmek cok zor olmaz bence.

Tornado icin StackOverflow’da 3,611 soru sorulmus. Dj channels icin 1,103 soru, django icin 200.000’den fazla soru var.

Bence channels.

1 Beğeni

Ben şahsen Django’nun modüler yapısını, her şeyin yerli yerinde oluşunu beğendiğim için tercih ediyorum. Django channels kütüphanesi de tam olarak Django’nun bu yapısına uygun geliştirildiği için, birkaç ekleme ile projeye entegre olabiliyor. Sırf bu yüzden Django channels seçebilirim.

Django için birçok özellik beraberinde gelirken, Tornado için ayrıca yüklemek gerekiyor. Mesela Django’da ORM dahili olarak gelir, ama Tornado için ayrıca yüklemek ve entegre etmek gerekiyor. Django admin panelini söylemiyorum bile :slight_smile:

2 Beğeni

Websocket kullanılan uygulamalarda öncelik C10k denen problemi çözmek aslında. Bir servera aynı anda 10 bin bağlantı yapılamamasına dayanan bir problem. Django channels anlık 2000 kadar bağlantı yapabilirken Tornado 8000 kadar bağlantı yapabiliyor. Bu nedenle ihtiyaç olduğunda kimse admin panelini veya ORM’yi düşünemiyor. Ama küçük ölçekli projeler için django channels da kullanılabilir pekâlâ.

Şimdi farkettim de ben windows kullanıyorum ve windowsta redis kurulumu çok sıkıntılı bir durum. Django Channels redis olmadan neredeyse hiçbir işe yaramıyor.

Biraz topluluğun isteğiyle çakışıyor gibi olacak ama django channels hiçbir zaman seçenek olmamış. Başka biri yazana kadar bekleyelim.
Bana tornadoyu yazmak düştü.

Forumda herkes benim fanboy’luk yaptigimi dusunmeye basliyor, ama, ben yine Linux diyecegim.

Fedora’da:

sudo dnf install redis

Debian based sistemlerde de bunun gibidir.

Yani, ey programci, kolaylik istiyorsan, Linux kullan.

Şimdiye kadar windows kullanmanın zararını gördüğüm tek konu bu oldu. Peki Django channels belgesini siz yazabilir misiniz @reo?

:thinking: Ben Django gelistirmede 2 gun Windows’ta duramiyorum. Sabrim tukeniyor. Linux’te o kadar rahat ki.

Channels bilmiyorum :confused: Sadece dnf’de redis paketinin oldugunu biliyorum.

Sorunuzda performansa dair bir şeyden bahsetmediniz, kullanacak kitlenin büyüklüğünden ve ne tür bir işlem için kullanılacağından da. Ben de Django kullanan birisine en uygun kütüphaneyi önerdim, zamanım yok demişsiniz. Ayrıca performans için bir çok parametreye de bakılabilir. Herşey performans değildir bazen. Proje büyüdükçe yönetim de zorlaşacak.

Bu bilgiye nereden ulaştınız?

  1. Slaytta yazıyor:
    https://www.slideshare.net/mobile/SelukUsta/tornado-python-web-framework
1 Beğeni

Evet okudum. Sanırım mesele Django’dan çok WSGI veya ASGI olması ile alakalı. Django 3.0 ile birlikte gelen ASGI desteğinin etkisini bilmediğim için bir yorumda bulunamayacağım.