Mehmet Özgür Bayhan Bey söylediğiniz şeylerde ciddi önyargılar var. Ben
şahsen benden daha fazla Php'nin iç yapılarına ilgi duymuş biri ile
karşılaşmadım henüz Türkiye'de. Çok biliyorum demiyorum ama merak edip
okuyorum, ilgiliyim. Ve Php'nin iç yapıları genellikle kötü tasarlanmıştır.
Bu çok ileri düzey bir tartışma konusu, ona bakarsanız java da 1.5 sürümüne
kadar Enum desteklemiyordu; ya da map,filter, fold functional programlama
için gerekli fonksiyonları hala desteklemiyor. 1.7 sürümünde
destekleyebileceği konuşuluyor. Oysa c#, python, ruby en başından beri
javanın tüm artılarına sahip ama eksi yönlerini barındırmıyor. Aslında bütün
diller birbirinden arak yapıyor. Cobol'un, perl'ün ve fortran'ın son
versiyonları OOP destekliyor. Scala -ki JVM üzerinde çalışır- erlang gibi
concurrency destekliyor, functional bir dil. Visual Basic bile OOP
destekliyor artık.

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. Ama geriye uyumluluğu olan her şey
de kötüdür bu bağlamda. HTTP de kötüdür protokol olarak. HTML 4.0
rezalettir, çünkü 1980lerden kalma kısıtlamalarla boğuşuyor hala.  Appletler
tam bir fiyaskoydu. Java micro edition, JavaFX diğer rezalet kullanılması
güç kötü tasarlanmış teknolojiler.

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ı.
2. Loose typed bir dil, bu yüzden kritik olmayan işleri hızlıca
yapabiliyorsunuz. Ama kritik işleri php ile yaparken çooook başınıza dert
açar. Dinamic type cast yapması JSP'de kullanılmış (araklanmış) bir özellik.
JSP bunları araklamasa büyüyemezdi, 90larda php tüm dünyayı kavurdu. Onun
iyi özelliklerini almaktan başka çare yoktu.
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.
4. Package mantığını destekliyor artık. Direk dil destekliyor namespace'ler
ile. Ayrıca Zend ve Symfony'de bu işler baya oturdu.

Php bir web dili, nasıl prolog logic dili ise, erlang concurrency konusunda
iyi ise. Php'yi sadece web dili diye eleştirmek çok hatalı bir bakış açısı
olur. O zaman javayı da sistem programlama yapılamıyor diye eleştirelim..

Php ortaya yeni bir paradigma koymamıştır ama web dünyasının şu ana
gelmesinde çok önemli rolü var. Ben hem java hem php yazıyorum iş hayatımda.
Php  programcıları w3c.org okuyup siteleri bu kıstaslara göre yaparkeni,
Java programcılarının çoğu en temel web kavramlarını bilmiyor. Frameworkleri
rezalet html kodları üretirken farkına bile varmıyorlar. Her üretilen html
kodu, w3c.org'un ayrı bir recommandation'una karşı geliyor. Bu yüzden web'in
dili hala php.

Php'ye güzel tasarlanmış (elegant) demiyorum, ama üzerine düşen yükü çok iyi
göğüslüyor. Yani ailesine bakmak zorunda olduğu için sabah akşam çalışan ama
kitap okumadığı için entellektüel olmayan bir ebeveyn gibi :) Ben de
zamanında çok eleştirdim Php'yi ama iyi yönlerini de görmek lazım. Hatta
php'nin kötü tarafları üzerine ufak bir kitap yazabilirim. Hatta bloğumu ilk
açarken amacım bunlarla ilgili yazılar yazmaktı.

ORM için doctrin, propel; template için smarty ya da phptal; bir de
bunlardan önce güzel bir design pattern kitabı. Php o zaman çok büyük
projelerde kullanılabiliyor. Ama programcı yetersizse php ne yapsın.

İyi tasarlanmış dil istiyorsanız LISP tam size göre. Ama o da o kadar iyi
tasarlanmış ki, gerçekçilikten uzak. Rasyonel sayıları direk dönüştürmeden
hafıda tutuyor. Bu yüzden tüm diğer dillerdeki rasyonel sayılar ile ilgili
problemlere sahip değil. Mesela BigInt ile javada tuttuğunuz parasal
değerler, lispte direk tutulabiliyor. Ama acayip ram yiyor.

21 Haziran 2011 23:27 tarihinde Mehmet Özgür Bayhan
<[email protected]>yazdı:

> Tek sorunu hata ayıklama ve collobration değil ne yazıkki.Yapısı gereği PHP
> dili derli topluluk bakımından Java Python .NET ve-sadece incelediğim
> kadarıyla- Ruby'nin yanına bile yaklaşamıyor .Savruk bir dil yazım tarzı var
> ve bu geliştiriciyi de etkiliyor.Veya ne bileyim hiçbir zaman Python'un ORM
> seviyesi ile kıyaslanamaz.Daha bir sürü şey var sayılabilecek.
>
> Java geliştiricileri konusunda ise java her şekilde kendini işletim
> sisteminden soyutlayan ve bu amaçla yaratılmış bir dildir.Doğal olarak
> bekleyemezsiniz java geliştiricilerinin işletim istemiyle haşır neşir
> olmasını.Ha içli dışlı olan elbette vardır.Bende bunlardan birisiyim.Keza
> kullanılan protokoller için de bu geçerli.J2EE için presentation layer da
> çalışan framework genelde java'nın kendi RPC mekanizmalarını
> kullanır.Standart bir HTTP request gitmez çoğu zaman.Ajax çağrıları gider.
>
> PHP'nin "gereksiz" olması kısmına gelince.PHP ile yapabildiğiniz hemen her
> şeyi Python ile çok daha rahat,düzenli ve hızlı bir şekilde yapabilecek
> olduğunu düşünürseniz aynı işi yapan iki yapıdan -bence- kötü olanı gereksiz
> konumuna düşüyor benim gözümde.
>
> 21 Haziran 2011 17:57 tarihinde Atıf CEYLAN <[email protected]> yazdı:
>
> **
>> Pojenin büyüklük ölçüsü; satır sayısının fazlalığı, uygulamanın geniş
>> kitlelerce kullanılması ve mali değerinin yüksekliği veya farklı bişey?
>>
>> Bu ölçütlerin tümünü karşılayan çok fazla PHP projesinde bulundum. Evet
>> özellikle hata ayıklama ve collaboration için eksik olsa da, eksik yönleri
>> bence bu dilin "gereksiz!" olmasını ifade etmez.
>>
>> Herşeyden önce birçok php geliştiricisinde gördüğüm "kendi
>> kütüphanelerini, yöntemlerini, frameworklerini geliştirmiş" kavramı hem bir
>> başı boşluğu ve standart dışılığı ifade eder ve hemde kendini
>> geliştirmişliği, bazı kalıpları yıkmışlığı ifade eder. Belki bu listedeki
>> arkadaşların çok büyük bir bölümünün görmediği kadar java geliştiricisini
>> bir arada gördüm desem yalan olmaz ve malesef bu kadar tanıdığım java
>> geliştiricisinin içerisinde temel işletim sistemi ve birçok protokolün
>> işleyiş mekanizması ile bir miktar network bilgisine sahip olanı çok azdı.
>>
>> Ancak tanıdığım neredeyse tüm php geliştiricileri, az çok unix türevi
>> işletim sistemlerini, bircok protokolün işleyişini bilir, biraz donanım
>> bilgisi ve biraz da network bilgisine sahiptir.
>> Hhayat felsefem "Herşeyin bir şeyini, bir şeyin de herşeyini bileceksin"
>> üzerine kuruludur.
>>
>> Bu bir kıstasmıdır tartışılır ancak, php geliştiricilerinin bence en ortak
>> yönü dar kalıplara girememeleridir. Bu durum bazı olumsuzlukları getirse de
>> güzeldir, hoştur.
>> Hiçbir şekilde php'yi "gereksiz" de yapmaz.
>>
>>
>> On 06/21/2011 05:27 PM, Mehmet Özgür Bayhan wrote:
>>
>> Evet zamanın iyi dillerinden birisiydi.Ne zaman ki J2EE masaya yumruğunu
>> koydu işler bir anda değişti (:
>>
>> Şaka bir tarafa burjuva havasından öte, eğer gerçekten büyük bir projeye
>> girişecekseniz eninde sonunda PHP'nin tokadını yersiniz. (: Denemesi bedava.
>>
>> 21 Haziran 2011 17:12 tarihinde Atıf CEYLAN <[email protected]>yazdı:
>>
>>>  java ve python ile uğraşan arkadaşlarda biraz burjuva havası var sanırım
>>> :) php ile geliştirenlere amele gözü ile bakılıyor. Etrafımdakiler öyle en
>>> azından :)
>>>
>>> Ancak unutulmamalı ki, php "Personel Home Page" olarak bu işe başlamış ve
>>> geriye uyumluluk denen bişey var. Bu zend için bence en önemli engellerden
>>> biri.
>>> Değilse python yerine bu gün php konuşulmaya devam ederdi diye
>>> düşünüyorum. 90'larda kod geliştirenler bilirler bu dilin kıymetini ki, o
>>> yılları ve teknolojisini bu gün bu kadar kolay eleştirmek için w3c, sql 92
>>> ve bilimum RFC 'nin de günümüzde halen neden kullanıldığını da eleştirmek
>>> gerekir.
>>>
>>> Python kullanarak sql ile veritabanına veri işlemek bence eleştirilmesi
>>> gereken noktadır.
>>>
>>> Neden sözüm ona en yeni teknolojilerimiz halen http, smtp, dns ve bilimum
>>> standartların bağımlısıdır?
>>>
>>> On 06/21/2011 04:14 PM, Mustafa Kahraman wrote:
>>>
>>> Genelde pythoncular bu yorumu yapiyorlar....
>>>
>>> Sevgi ve Saygı ile...
>>> Mustafa Kahraman
>>>
>>>
>>> 21 Haziran 2011 16:12 tarihinde Cagri Ersen <[email protected]>yazdı:
>>>
>>>>  Mehmet Özgür Bayhan sen bizi güldürdün allahta seni güldürsün :)
>>>>
>>>>
>>>>  Don't feed the troll.
>>>>
>>>>
>>>>>
>>>>> 2011/6/21 Erdal YAZICIOGLU <[email protected]>
>>>>>
>>>>>> Mehmet bey in bu kanıya nereden vardığını merak ettim doğrusu...
>>>>>>
>>>>>> 21 Haziran 2011 15:58 tarihinde Ömer ÖZKAN <[email protected]>yazdı:
>>>>>>
>>>>>> @Anıl Özselgin, tavsiyeleriniz için çok teşekkür ederim. Yarım yamalak
>>>>>>> ingilizcemle dediğiniz kitabı okumaya başladım bile.
>>>>>>>
>>>>>>>  PHP gereksiz bir dil olsaydı bu kadar kullanılmazdı. Kişisel bir
>>>>>>> düşünce. Benim düşüncem OOP, MVC gibi kavramlar daha önemli. PHP'yi 
>>>>>>> sevdiğim
>>>>>>> için kendimi bu dilde rahat hissettiğim için seçtim. PHP değil de başka 
>>>>>>> dil
>>>>>>> kullansaydım aynı sorunu yaşardım. Bilmiyorum düşüncem bu, belki
>>>>>>> yanılıyorumdur. İlerde göreceğim...
>>>>>>>
>>>>>>> 21 Haziran 2011 13:55 tarihinde Adem Alp YILDIZ 
>>>>>>> <[email protected]>yazdı:
>>>>>>>
>>>>>>>> Ömer Bey'in sorunu çözüldü!
>>>>>>>>
>>>>>>>> 2011/6/21 Mehmet Özgür Bayhan <[email protected]>:
>>>>>>>> > Gereksiz bir dil PHP
>>>>>>>>  _______________________________________________
>>>>>>>> Linux-programlama mailing list
>>>>>>>> [email protected]
>>>>>>>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>>>>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Linux-programlama mailing list
>>>>>>> [email protected]
>>>>>>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>>>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Erdal YAZICIOGLU
>>>>>> *Shell Pearl GTL 
>>>>>> Project<http://www.shell.com/home/content/aboutshell/our_strategy/major_projects_2/pearl/>
>>>>>> *
>>>>>> Telecoms System Integrator
>>>>>> Project Engineer Manager
>>>>>> RLIC, State of Qatar
>>>>>> www.erdalyazicioglu.com.tr
>>>>>> Twitter: @chveneburo
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Linux-programlama mailing list
>>>>>> [email protected]
>>>>>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>  --
>>>>>    *Hakan Karas*
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Linux-programlama mailing list
>>>>> [email protected]
>>>>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Cagri Ersen
>>>> http://www.syslogs.org
>>>>
>>>>
>>>> _______________________________________________
>>>> Linux-programlama mailing list
>>>> [email protected]
>>>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Linux-programlama mailing 
>>> [email protected]https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>
>>>
>>>
>>>  --
>>> /**
>>> * *@author* Atıf CEYLAN
>>>
>>> * Software Developer & System Admin
>>> * http://www.atifceylan.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
>>>
>>>
>>
>> _______________________________________________
>> Linux-programlama mailing 
>> [email protected]https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>
>>
>>
>> --
>> /**
>> * *@author* Atıf CEYLAN
>> * Software Developer & System Admin
>> * http://www.atifceylan.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
>>
>>
>
> _______________________________________________
> 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