22 Haziran 2011 13:53 tarihinde Baris CUHADAR <[email protected]> yazdı:
> > > Php'nin iç yapıları genellikle kötü tasarlanmıştır .... Gelelim > > Php'nin kötü olmasına. Kötü, eğer iyi tasarlanmamış demekse, doğru > > söylüyorsunuz, php kötü tasarlanmıştır. > Hemde ne kötü, örneğin array_intersect fonksiyonunu ele alalım, php > ile kendi yazdığım kod, c ile yazılmış orjinal koddan 5 kat hızlı > çalışıyor. Tabi o zaman php versiyon 5.2 idi yanlış hatırlamıyorsam. > Kaynak koduna bakın sanki ilköğretim öğrencisi yazmış gibi, baştan savma > yazılmış bir kod iç içe for döngüleriyle iki diziyi kontrol ediyorsunuz > ! Anlaşılacak gibi değil.. Üstelik sadece iki diziyi.. Halbuki çok daha > fazla diziyi birleştirip oluşan diziyi sıraladığınızda, eleman > ardışıklığı ve dizi sayısı ile oranı size kesişmeleri verecektir. > > Php'nin iyi yönleri ne? > > 1. Diğer çoğu modern dil gibi Virtual Machine üzerinde çalışmadığı > > için anormal hızlı. Hatta kendisi çoğu zaman işleri arkadaki C > > kodlarına yaptıran bir aracı. Yani C ne kadar hızlıysa Php de bu kadar > > hızlı. > Yanlış! Bir kodun C ile yazılması o programın herşeyden hızlı > çalışacağı anlamına gelmez. Dediğim gibi kötü tasarlanmış kısımları sizi > yaya bırakabiliyor. Yukardaki örneğe bakınız, php.net'te kendi > yazdığım koda da bakabilirsiniz. > "Hocam sence php'nin her metodu hızlıdır" demiş olabilir miyim sence. Ben böyle büyük laf etmemeye çalışıyorum tartışmalarda. Virtual machine üzerinde çalışan bir kodun, direk olarak işletim sistemi seviyesinde çalışan koda göre hızlı olduğunu söyledim ben. Bu bahsettiklerim php'nin native fonksiyonları. Php'nin native fonksiyonları direk C olduğu için anormal hızlarda çalışır. Ama fonksiyonu yazan adam kötü yazdıysa, bu elindeki aracı iyi kullanamaması demek. > > 3. Şu anda tüm OOP özelliklerini destekliyor. İmplement edemediğiniz > > design pattern'i söyleyin yardımcı olmaya çalışayım. Gönderdiğiniz > > yazı dildeki temel yapıların object oriented tasarlanmadığını > > söylüyor. Evet dildeki temel yapılar object oriented tasarlanmamış. > > Ama bir dilin OO olmasının kıstası bu değil. Kıstas dilin bu yapılara > > izin vermesi. Java'da da herşey thread-safe değil. Dil thread > > desteklemiyor mu. > Çoklu yapılandırıcı ? Fonksiyon aşırı yükleme? > Php zaten yapısı gereği overloading destekliyor. Direk olarak bir metodu farklı sayıda parametre ile çağırabiliyorsunuz. Bu dilin bir özelliği, bu yüzden diğer oop destekleyen diller gibi bir metod'u farklı değişken sayılarına göre tekrar tekrar yazmak zorunda kalmıyorsunuz. Aynı dediğim nedenden ötürü çoklu yapılandırıcı da destekliyor. example_function(a,b,c) bu fonksiyon aşağıdaki çağırımların hepsinde çalışır: example_function(a,b,c); example_function(a); example_function(a,b); example_function(); İşin zor kısmı fonksiyonlarınızı dilin bu yapısına göre tasarlamak. Zaten yeni bir dil öğrendiğinizde bu sizin kodlama tarzınızı değiştirmiyorsa, o dili öğrenmenizin anlamı kalmaz. > -- > http://neovo.org/lkd-liste/ > > _______________________________________________ > Linux-programlama mailing list > [email protected] > https://liste.linux.org.tr/mailman/listinfo/linux-programlama > Liste kurallari: http://liste.linux.org.tr/kurallar.php > -- Anıl Özselgin http://negaripseylervarya.blogspot.com/
_______________________________________________ Linux-programlama mailing list [email protected] https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php
