From: Yuce Tekol (yucetekol@gmail.com)
Date: Tue 08 May 2007 - 07:10:58 EEST
Merhaba,
08.05.2007 tarihinde Alper KANAT <tunix@raptiye.org> yazmış:
> Merhaba,
>
> Bir web projesi yapmayı düşünüyoruz ve bu projeyi Python ile
> gerçeklemeyi düşünüyoruz. Daha önce çok ufak tefek deneyimlerim vardı bu
> konuda.. PHP'den daha güvenli olduğunu düşündüğüm ve Django vb.
> altyapıları kullanmayı düşündüğüm için daha iyi bir seçim olduğunu
> düşünüyorum. Öncelikle bu konuyla ilgili fikirlerinizi merak ediyorum.
> Sizce Python, PHP'ye göre daha iyi bir alternatif midir günümüzde ?
- PHP'nin daha guvensiz gorulmesinin sebebi sanirim cogunlukla
goreceli olarak daha deneyimsiz programcilar tarafindan kullanilmasi
(bunda dilin uyduruk programlamaya izin vermesinin buyuk etkisi var
tabii), yoksa uzman PHP programcilarinin yazdigi programlar cok da
guvensiz degildir herhalde.
- Python'in dil olarak PHP'den cok daha ustun ve temiz oldugunu
soyleyebilirim. Cesitli nedenlerden oturu yuksek lisans tezimi PHP'de
yazmak zorunda kaldim ve Python'dan sonra PHP kodu yazmanin ne kadar
aci verici oldugunu anlatamam.
- Yapmayi planladiginiz ise gore, PHP cok daha ucuz bir cozum
olabilir. Aylik 2$ odediginiz bir hosting firmasinda PHP
kullanabilirken Python kullanamazsiniz. Bunun nedeni, Python web
framework'leriyle yazdiginiz web uygulamalarinin cogunlukla surekli
calisan sureclere ihtiyac duymasi; yada
mod_python/mod_fastcgi/mod_scgi 'dan birisini kullanmaniz lazim ama
bunlar ne yazikki ucuz hosting cozumlerinde yoklar.
- PHP icin web ile alakli her konuda aradiginiz bir uygulama, eklenti,
vs (mesela bir resim galeri si) bulabilirsiniz ama maalesef ayni sey
Python icin gecerli degil (bu durum gittikce duzeliyor)
- Eger gelistirdiginiz uygulamanin onemli bir kismi web disinda kod
yazmayi gerektiriyorsa (mesela bilimsel bir deney, yada dokuman
isleme, PDF, EXcel, vs) Python modulleri PHP'ye gore hem nitelik hem
de nicelik olarak cok ustun. Aradiginiz herhangi bir konuda bir Python
modulu bulmaniz cok olasi.
- Eger yapacaginiz ugulama icin disaridan programci arayacaksiniz, PHP
programcisi bulmak Python programcisi bulmaktan cok cok daha kolay,
ozellikle Turkiye'de. Kendi gelistirdigimiz Python tabanli web projesi
icin cok zor programci bulabiliyoruz, yurtdisindaki outsourcing
sitelerine ve bu listeye gonderdigimiz duyurulara ragmen ;)
- PHP kullanacaksiniz %90 MySQL kullanmak isteyeceksiniz ve SQL kodu
yazmaniz gerekecek, eger baska bir veritabanina gecmek isterseniz veri
erisimi kodunun cokgunu tekrar yazmaniz gerekecek. Python'in en guzel
yanlarindan birisi, veritabani erisiminin standart olmasi (mesela
MySQL'den PostgreSQL'e gecmek icin sadece bir satir degistirmeniz
yeterli); daha da guzeli SQLAlchemy gibi paketlerle tek satir SQL kodu
yazmadan MySQL, PostgreSQL, Oracle, vb veritabanlarini
kullanabilirsiniz (veritabani bagimsizligi), yada ZODB gibi nesne
yonelimli veritabanlari kullanabilirsiniz.
> Python ile web projesi hazırlarken dosyaları *.py uzantılı olarak CGI
> mantığı ile mi yazmalı, yoksa PSP vb bir yöntem mi uygulanmalı ? Bu
> konuda kafam biraz karışık açıkcası.. Sonuçta anladığım kadarıyla her
> ikisinde de yazılan Python kodu aynı, ancak sayfa içerisindeki kodun
> yerleşimi farklı.. Fakat hangisinin daha çok tercih edilebilir olduğunu
> çıkarabilmiş değilim..
CGI programlama hemen hemen bitmis durumda, yeni bir uygulama
gelistirecekseniz kesinlikle kullanmanizi onermem. Bunun en onemli
sebebi, CGI programlarinin cok daha yavas baslamasi; bir dusunun, CGI
programini calistirmak icin python yorumlayicisi calistirilacak,
program kodu yuklenecek, veritabanina tekrar baglanilacak, vs, vs.
Oysa kendi web sunucusunu yada mod_python/mod_fastcgi, vs'i kullanan
bir python uygulamasi python yorumlayicisinin yuklenmesini beklemez,
cunku bir derleyici zaten yuklu haldedir; boyle olunca veritabani
baglantilari bellekte tutulabilir, tekrar veritabanini acmaya gerek
kalmaz.
Python CGI programlamasiyla birframeworke yazacaginiz program cok
farkli olacaktir, her framework de farkli bir programlama stilini
gerektirir. Isin dogrusu Python'da web frameworku yazmak hem cok
zevkli hem de kolay (mesela zat-i alimin yazdigi bir frameworku
http://biz.berlios.de/ adresinde bulabilirsiniz ;) . Bu tabii ki
Python web dunyasi icin buyuk bir sorun. Bu sorunu cozmek icin WSGI
(viski diye okunuyor) denilen bir standart gelistirdi, bu standart,
web uygulamalarinin (daha dogrusu kontrolorlerinin) sunucuyla ve kendi
aralarinda nasil iletisim kuracagini belirtiyor; bu sayede WSGI
destekleyen bir frameworkte yazilan bir uygulama baskasinda
kullanilabiliyor. Ayrintili bilgi: http://www.wsgi.org/wsgi
>
> Sunucuma mod_python da kurdum. Ancak bilmediğim şey, CGI ya da PSP
> yazacak olduğumda mod_python'a ihtiyacım olup olmadığı ? Mustafa
> BAŞER'in kitabında mod_python ile programlamadan farklı bir şeymiş gibi
> bahsedilmiş. CGI ve PSP yazımı da ayrı ayrı ele alınmış. Bulduğum tüm
> kaynaklarda CGI programları ön plana çıkarılmış ama bana nedense
> "kullanmak zorundaymışım" gibi gelmiyor. Soğuk bakıyorum biraz sebebini
> çok iyi bilmediğim halde.
Eger hala CGI kullanmakta kararliysaniz mod_python'a ihtiyaciniz yok.
PSP de benim gordugum kadariyla cok yaygin olan bir web frameworku
degil. En cok kullanilan frameworkler Django, TurboGears ve Pylons. Bu
ucu arasinda tamamen WSGI olan tek framework Pylons.
Yuce
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama