[Linux-programlama] Re: fikir alış-verişi

---------

[Linux-programlama] Re: fikir alış-verişi

From: Serkan Kenar <serkankenar_at_gmail.com>
Date: Tue, 30 Dec 2008 11:56:13 +0200
Message-ID: <60540cbe0812300156i4832783fk98f460e5a97c5844@mail.gmail.com>

Merhaba,

Herhangi bir dil savaşına girmek değil amacım, öncelikle bunu belirteyim.
Daha net ifadelerle açıklamanız için o soruları sordum.
Bu ve bundan önceki maillerinizde sürekli PHP eksik yetersiz dediğiniz için,
PHP'nin veya diğer betik dillerin de uygun olduğunu göstermek adına cevap
veriyorum. Aynen dediğiniz gibi, "Elinizde sadece Java varsa, bütün
sorunların JEE ile çözülebilir", demek, biraz at gözlükleriyle bakmak
olacaktır. Java topluluğunda çok görülen bir durumdur, diğer dillerle de
vakit geçirmek gözleri açabilir.

2008/12/30 Bora Güngören <bora_at_boragungoren.com>

>
> PHP türü tip denetimsiz betik dillerindeki ana eksiklik modelleme sırasında
> ortaya çıkıyor. Bazı ilişki türlerini modellemek için gerekli
>

Sorun o zaman betik dili olmasında değil, dilin tip mekanizmasının
statik-dinamik, veya güçlü-zayıf olmasıyla ilgili.

> araçlarınız olsa bile tip denetimsizlik nedeni ile bu kodlamaya modelin
> dayatılamaması demek. Bunun bir avantaj olduğu yerler de var. Ama karmaşık
> iş mantıklarını kodlarken dezavantaj haline geliyor.
>

Tam tersine, dinamik-zayıf tip modelini kullanan programlama dillerinin iş
mantıklarını belirlemekte daha başarılı olması mümkün. Karmaşa arttıkça iş
modeline uygun bir dil geliştirmek ve daha da ötesi bir DSL geliştirmek ve
kullanmak (ve hatta programcı olmayanlara bile bu dilleri kullandırabilmek)
bu dillerin avantajı.

> Web uygulamaları için gerekli olan rol temelli erişim denetimi, şablonlama,
> kural motoru entegrasyonu, nesne ilişkisel eşleme,
>

Rol temelli erişim denetimi için başta Zend Framework olmak üzere belli
başlı tüm frameworkler, aşağıdaki örneğinize de cevap olacak şekilde imkan
sağlıyor.
Şablonlama: Sanırım PHP'nin veya diğer betik dillerin en güçlü olduğu alan
da bu.. Java'da, bunlarda olmayan bir yenilik göremiyorum.
Nesne ilişkisel eşleme: Propel, Doctrine, vs.

> kapsamlı bellek yönetimi için oturum, istek gibi bellek kapsamlarının
> ayrılması, metin ve belge içi arama, kriptografi gibi konularda
>

Kapsamlı (?) bellek yönetimi? Buna gerek kalmaması gibi bir durum olabilir
mi? ;)
Arama yapısı olarak da sanırım Lucene projesinden bahsediyorsunuz. Zend
portu var. Ya da başka dillerde hazırlanmış çözümler.
Kriptografi? Yine ne demek istediğinizi anlayamadım.

PHP API'leri sayıca az veya özellik kümesi olarak yetersiz. Oturup elle
> yazdığınız zaman da hem zaman alıyor hem de çoklukla en iyi sonuçları
> vermiyor. Ayrıca elle yazdığınız şeyin kendisindeki hataları test etmek de
> mesele.
>

Bu saydığınız konular hem "artık çözülmüş" konular hem de her biri için
PHP'de çözümler var. Oturup elle yazmak çözüm değil, hemfikirim. Projeye
göre seçim yapılacak en önemli noktalardan biri de bu, dil değil. Bakın
Django Projesi (Python) sizin yukarda saydıklarınızın her birine çözümünü
belirtiyor. Aynı şekilde, Symfony (PHP), Ruby on Rails, vs.. İşinizi görüp
görmeyeceğine karar vermek size kalmış. Ama çözüm var, üstelik
referanslarına da bakarsanız uygun çözümler bunlar.

> Tabii sadece 15 ekranı olan bir uygulama varsa, hangi kullanıcı hangi
> ekrana erişir diye bir tabloyla oldukça da verimli bir erişim denetimi
> yazılabilir. Ama o ekran içinde farklı erişim kural gereksinimleri olan 10
> bileşen varsa, bunların bazıları kullanıcı rolüne göre farklı görsel yapıya
> erişecekse, o zaman bunları PHP ile kodlamak başa bela olmakta.
>

Yukarda da dediğim gibi framework'lerin bu konu için değişik çözümleri var.
Araştırılıp öğrenilebilir.

> Dediğim gibi ihtiyaç meselesi. Facebook gibi URL'sini bulduğunuz herhangi
> bir kaynağa doğrudan erişebildiğiniz son derece güvenli (!) bir site
> kuracaksanız sorun değil ama atıyorum Hazine Müsteşarlığı'nın, TPAO'nun
> makro-ekonomik parametrelere etki eden verileri işleyen sistemini
> yapacaksanız o zaman iş farklı.
>

Buradan çıkan sonuç "kurumsal veya kamu projelerinde Java veya X dili
kullanmalıyız, çünkü güvenlidir" mi?

Bu konuda size katılmıyorum. Burada sorun dil değil, tasarım. Tasarımı kötü
yapılan bir uygulama, eğer kendini sorunlara hazırlamamışsa, hangi dilde
olursa olsun altta kullanılan teknolojilerin güvenliği kadar güvenli
olacaktır. XSRF saldırıları dille, frameworkle ilgili değildir. (Ama dil ve
framework çözüm sağlayabilir, bkz: Symfony Project) Tarayıcıların,
çerezlerin ve web sunucularının açığından faydalanır. Dilleri
güvenli/güvenli-değil diye sınıflandırmak pek mümkün değildir. Aracı
kullanmayı bilmeyen, güvenli tasarıma önem vermeyen her proje güvensiz
olacaktır.

Saygılarımla,

-- 
Serkan Kenar

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Tue 30 Dec 2008 - 10:54:27 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.