18 Kasım 2007 Pazar

Django veya Zope Hangisi ?

Bu kısa yazımda yukarıdaki başlıkta yer alan Web geliştirme ortamları veya ecnebicesi “frameworkler” hakkında bahsedeceğim. Birini kötüleyip diğerini yüceltmek gibi bir yola başvurmak yerine hangisi nerede daha uygun şeklinde bir yol izlemeye çalışılacaktır.

Evet, Python ile Web geliştirme dünyasına dalmayı düşünüyorsanız bu yazı oldukça yararlı olacaktır diye düşünüyorum. Fazla boş lafa dalmadan başlayalım :

Öğrenme süreci :

Öğrenme süreci bakımından iki framework'u karşılaştıracak olursak. Zope ile aşina olmam benim 2 veya 3 ayımı aldı diyebilirim. Bu sürenin neden bu kadar çok sürdüğünü aşağıda yer alan diğer karşılaştırma maddelerinden anlayabilirsiniz. Django ile ilk uygulamamı onların sitesinde yer alan “hızlı tur” denilen belgeyi okuduktan sonra yazdım. Ve ilk haftanın sonunda şu andan üzerinde çalışmakta olduğum iptables Web arayüzü uygulamamı Django'ya port etmeye başlamış oldum. Django ile öğrenme sürecinin bu kadar kısa olması beni çok şaşırtmıştı ama bunun bir nedeni de daha önce Zope gibi bir framework ile cebelleşmemden kaynaklanıyor olabilir de :)...

Versiyon Karmaşası :

Bunun da karşılaştırması olur mu demeyin. Eğer Zope ile uğraşmaya başladıysanız zaten ne demek istediğimi anlıyorsunuzdur. Şöyle ki Zope ile başlayayım dediniz ve zope.org adresine gittiniz. Orada bulunan Zope 2 belgelerinden birini okumaya başladınız. Oradaki howto'yu okuduktan sonra bir de baktınız Zope 3 diye bir şey varmış. O da ne ki herhalde Zope2'nin bir devamıdır diyeceksiniz. Hayır oradaki amcalar yepyeni bir framework geliştirmeye başlamışlar. Yani Zope 2'nin Zope 3 versiyonuyla alakası yokmuş. Evet ben ilk önce Zope 2 ile alakalı birsürü belge okuduktan sonra bir de Zope 3 için o kadarını okumuştum :). Ama başlayacaksanız kesinlikle Zope 3 ile başlayın (Allah yardımcınız olsun :) ) çünkü, Zope 2 birkaç sene içinde belki de ortadan kaybolacaktır. Peki Django'da işler nasıl? evet onlarda o şekilde bir karmaşa yok. Ama ilginç olan bir nokta yeni sürümler çıkarmak yerine her zaman svn'in son versiyonlarını tavsiye etmeleridir. Evet versiyon ile alakalı bu kadar yeter.


Belge ve Kaynaklar:

Yeni bir teknolojiyi öğrenirken bu konu hakkındaki dokümanlar oldukça önemli bir yere sahiptir. Zope ile başlarsak, zope.org adresinde bulunan dokümanların çoğu oldukça eski. Bu yüzden de oradaki örnekleri uygulamaya çalışırken çoğu “import” ifadesinin hata verdiğini veya kullanılan methodların orada olmadığını göreceksiniz. Zope 3 de Doküman olarak kendini güncel tutmaya baksa da nereden başlayacağınızı kestirmeniz oldukça güçtür. Dökümanlarını wiki tarzında tutmaktalar ve adresi şurada : http://wiki.zope.org/zope3/Zope3Wiki. Fakat oraya girdiğinizde kendiniz de göreceksiniz ki aradığınızı bulmak oldukça güçtür. Django'da işler nasıl ? Evet http://www.djangoproject.com/documentation/ adresine giriyorsunuz ve yukarıdan aşağı doğru okumaya başlıyorsunuz. Sanırım daha fazla açıklamaya gerek yok.

Destek :

Yine bir teknojiyi öğrenirken, ki bu bir açık kaynak teknolojisi ise destek oldukça önemlidir. Destek derken paralı destekten bahsetmiyoruz, o işle uğraşan gönüllülerden bahsediyoruz. Zope ile başlarsak freenode'daki #zope kanalına girip zamanınızı kaybetmeyin derim . Bir soru sorduğunuzda cevabını ya birkaç saat sonra ya da hiç alamayacaksınız. Bunun yanında mail listelerini deneyebilirsiniz fakat , kolay sorular sormayın :) . Oradaki abiler oldukça bu işi ilerlettikleri için çok kolay sorulara zaman ayıramıyorlar. Django'da ise #django kanalına girdiğiniz zaman adamlar size cevap vermek için sıraya giriyor sanki. Kanalda bulunan kişi sayısı 300 altına genelde düşmüyor. Mail listesi de oldukça aktif günde 50'nin üzerinde mail siliyorum. Ayrıca evet salakça ve kolay sorular sorabilirsiniz :)

Bayağı yazılacak şey varmış aslında. O zaman bu sefer burada bırakıp bu yazıyı ikiye böleyim ben :) İkinci bölümde de iki platformdaki yazılım geliştirme aşamaları ve altyapıları hakkında biraz dedikodu yaparım. Bol Pythonlu günler....

Kaynakça:

Django : http://www.djangoproject.com/

Zope: http://www.zope.org/