From: Nuri Akman (nuri.akman@hazine.gov.tr)
Date: Tue 08 May 2007 - 07:22:41 EEST
Yuce Tekol yazmış:
> 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.
>
Güvenlik konusunda okuduklarımdan çıkarımım şu oldu: Güvenlik, ancak
programıcının yazdığı kodun sağlamlığıyla alakalı. Eğer siz form'dan
aldığınız bir veri üzerinde gerekli kontrolleri almadan bir kod
yazıyorsanız, hazırladığınız program herzaman bir açığa sahiptir ve
güvenli değildir.
Bu açıdan bakıldığında, güvenli programlama dili yoktur diyebilirim.
> - 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.
>
Eğer veritabanı kullanacaksanız adodb gibi bir kütüphane
(http://adodb.sourceforge.net/) kullanmanızı tavsiye edebilirim.
Böylece, eğer bir gün seçtiğiniz veritabanının doğru olmadığını
düşünürseniz; başka bir veri tabanına geçişin maliyeti size sadece bir
satırı değiştirmekten ibaret olacaktır. Ayrıca, adodb Python desteği de
verir.
>
>> 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
>
>
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama