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

Cevap