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 <[email protected]> > > 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 [email protected] http://liste.linux.org.tr/mailman/listinfo/linux-programlama
