PDA

Tam Sürümünü Görmek İçin : Java vs. php


yildizib
16/11/2003, 17:01
Java ve php arasında gördüğüm önemli farklardan biri, php çok dağınık bir dil.Mesela php manueldeki string fonksiyonları string diye bi class içinde toplanamaz mıydı?Java daha sistematik bir yapıya sahip ve herşey düzgün bir hiyerarşi ile yapılanmış oysaki.Ancak php'de ise durum sanki zenci saçı gibi.Gidip kendin bulman gerekir fonksiyonları.Açık kaynak kodu olunca herkes kafasına göre bişeyler eklemiş.Php ile çalışmak bana işkence geliyor valla,itiraf edeyim.Şimdi belki bazı arkadaşlar "sen bizim php'mize laf mı ediyon ulen!" diye cıkısabilir ama doğruya doğru çok karmaşık ve hiyerarşi denen olaydan yoksun php...Ayrıca şu object oriented kod yazma işinde biraz kandırılmışmıyız bu noktada sizce?Yani php aslında tam anlamıyla object oriented değilde öyle mi gösterilmeye calışılmış?Ben php'nin obje oriented özelliklerini "include,require" gibi bişey olduğunu düşünüyor tabi bu halde pek bir şey getirmediğini söylemeliyim yeni php'ye bu değişikliğin.


mkarabulut
18/11/2003, 09:29
Dediklerin doğru aslında.

Hatta fonksiyon isimlerinin sistematik olmaması - sanıyorum - java gibi bir dil ile çalışan birisi için çok zor gelecektir. Zira Java'da değişken, metod isimlendirmeler genel bir kurala göre yapılmış ve programcı bazen "sallayabiliyor" da.

Bu arada PHP'nin ben şimdiye kadar tam anlamıyla object oriented bir dil olduğunu iddia edildiğini duymadım. Yalnız PHP 5 ile bir parça daha OOP desteği artacak. Yine de built-in fonksiyonlara bir yenilik gelmeyecek sanırım.

Bu da java ile karşılaştırıldığında yine object oriented olarak oldukça aşağıda kalacağını gösteriyor.

Yine de saf Object Oriented olmak en iyisidir diye bi hükme varmak da çok doğru olmaz sanırım.

HunTER
18/11/2003, 10:58
sen bizim php'mize laf mı ediyon ulen!


Bunu bu forumda ılk ben soylerım sanırım : ) Yınede sana katılmıyor degılım : ) Ama bana kalırsa PHP'nın oylesıne ıyı duzenlenmıs bı manual'ı varkı, Java'da nesne bazında duzenlenmıs o hıyerarsıye kesınlıkle ıhtıyac duymuyosunuz.. Yada kendı adıma benım PHP'de aradıgımı bulmam sadece sanıyelerımı alıyor..

Kı ısın sallama kısmı PHP ıcınde gecerlı : ) En azından ıhtıyac duydugunuz seye aıt anahtar kelımlerı manual'de aratmanız o ısle ılgılı fonksıyonları bulmanız ıcın yeterlı..

Tabı herseyden once Java ve PHP'yıde aynı kefeye koymamak lazım ama : ) Yınede bana kalırsa PHP ıle kod yazmak muhtesem bısey ve yıne bana kalırsa PHP su halıyle bıle ıstemedıgınız kadar "nesne yonelımlı" olabılır : )

fatihhood
18/11/2003, 11:15
Php 5 ile bu durum degismeye basladi. Bence yeni Nesne Modeli tam olarak oturdugu zaman php deki kodlamada java gibi %99 oraninda classlarla olacak.

yildizib : Ayrica Ceviz.net forumdan ibaret bir site degildir. www.ceviz.net adresine daha sık girmeni tavsiye ederim.

http://www.ceviz.net/index.php?case=article&id=254

mkarabulut
18/11/2003, 11:21
Bana kalırsa PHP'nin JAVA gibi oturmuş bir dil olması için katetmesi gereken baya bi yol var..

Yine de PHP'ye laf yok bence, gerektiği yerde gerektiği performansı gösteriyor. Yapması gerekeni iyi yapıyor. Web programlama dili olarak tasarlanmış bir dilden çok da fazlasını beklemeye gerek yok.

acemi
18/11/2003, 15:29
Sun, sanirim PHP'yi enterprise ortama tasimak icin yeni bir girisimde bulundu. Java'nin yaraticisi PHP'ye guvendigine ve PHP'de gelecek gordugune gore, demek PHP pek de bos sayilmaz.

acemi
18/11/2003, 15:33
Haberin linki (http://www.newsforge.com/programming/03/11/01/1859243.shtml?tid=105&tid=140&tid=48&tid=55)

yildizib
19/11/2003, 16:31
Hmm,microsoftun asp.net'ine karşı atak olmasın bu?.net platformuna rakip bir şey için düşünülmüş olabilir mi?Kıran kırana bir savaş ve biri bir gün öne gecerken diğeri başka bişeyle skoru dengeliyor...Bakacaaz ve göreceğiz ne gösterecek zaman.

acemi
19/11/2003, 17:35
"biri bir gün öne gecerken diğeri başka bişeyle skoru dengeliyor..." mu?

PHP, en yakin rakibinin neredeyse 3 kati fazla kullaniliyor.

Bilisim dunyasinda (benim su ana kadar gozlemledigim kadariyla) bir urunun gelecegini belirlemede, yaygin kullanim, urunun teknik kapasitesinden cok daha onemli bir kriter.

yildizib
19/11/2003, 17:52
:super: Evet.Php 1 numara!

yildizib
19/11/2003, 21:00
Php'nin enterprise özelliği yok.Fakat jsp daha gelişkin özelliklere sahip, nesnelerle çalıştığı için bir defa yaratılan nesne her defasında çağrılmak zorunda değildir .Çünkü o her an hafızadadır.Oysaki php fonksiyonları öyle değil her istemci php fonksiyonlarını calıştırdığında fonksiyonlar tekrar tekrar çağrılmalıdır.İşte java burada üstünlüğünü ortaya koyuyor."3 kat fazla kullanılıyor" dedin ama şunu bilmiyor olabilirsin; büyük şirketler php'yi kullanmazlar,örneğin bir banka.Bu şirketlerde sürü halinde çalışan bilgisayarlar vardır.Örneğin müşteri verileri tek bir bilgisayarın serverinde durur ve ağa bağlı diğer bilgisayarlar bu database'i kullanabilmesi için dilin enterprise özelliğe sahip olması gerekir.Php de bu yok.

PHP'de database ve php dosyaları hepsi aynı bilgisayarda durur ve aynı server tarafından işleme konur.

Php Türkiye'de daha popüler.Oysaki Amerikan sitelerine girin bir cok site jsp iledir.Örneğin google jsp'dir.Milyarlarca veriyi tek server ve bilgisayardan işlem yaparak milyonlarca istemciye ulaştırmak nasıl bir fikir?Türkiyede kullanılmıyor çünkü jsp daha karışık.Php daha kolay geliyor.Aşüre gibi bir yapısı olduğu için "or" veyahut "||" dan ikisini de tanımaktadır.

acemi
19/11/2003, 22:34
PHP'nin henuz enterprise ortamda kullanilmaya hazir olmadigi konusunda dediklerine katiliyorum. Zaten tersini dusunsem "Sun, PHP'yi enterprise ortama tasimaya hazirlaniyor" mesajini gondermezdim. "PHP, zaten enterprise ortam icin hazir, Sun neyi tasiyacakmis" derdim...

Diger dediklerinde bazi hatalar var. Ornegin PHP dosyasi ve kullanilan veritabani, ayni makinede (veya ayni agda) olmak zorunda degil.

Birseylerin cagrildiktan sonra hafizada tutuluyor olmasi, enterprise ortam icin gerekli bir ozellik degil. PHP kodlari da cesitli cache'leme yontemleri ile hafizada tutulabilir.

PHP'nin cok popular oldugunu soylerken Turkiye'yi degil, dunya genelini dusundum.

yildizib
20/11/2003, 00:54
php sadece html üretip gönderiyor.Fakat jsp için html bunlardan herhangi birtanesi.JSP objeler de gönderir örneğin.Php de buna benzer birşey var mı?

PHP'nin kullanım açısından en yakın rakibine 3 kat fazla fark atması tartışılmaz doğrudur ama JSP'nin üstünlüğü de tartışılmaz.

Ya bu, bu arada bi sidik yarışına mı dönüştü?:rolleyes:

acemi
20/11/2003, 01:26
Ya bu, bu arada bi sidik yarışına mı dönüştü?

Ne demek istedigimi anlamaya calismazsan, oyle bir yaris varmis gibi algilayabilirsin. Hala bana JSP'nin ne kadar ustun oldugunu anlatmaya calisiyorsun ki ben bu dedigine zaten karsi cikmiyorum.

Gonderdigim ilk iki mesajda da zaten bu sekilde dusundugum acikca gorunuyor. Birinde "PHP su ana kadar enterprise ortama girememisti;, Sun, onu bu ortama tasimaya calisiyor" demek istemisim. Digerinde de "JSP, PHP'den daha ustun ama benim gozlemledigim kadariyla bir urunun gelecegi icin yaygin kullanim, teknik gelismislikten daha onemli bir kriter" demek istemisim.

Hala bana "JSP soyle ustun, boyle ustun" diye anlatmana gerek var mi?

Bununla birlikte dediklerinden, "JSP'nin teknik acidan neden PHP'den daha ustun oldugu" konusunda yeterli bilgiye sahip olmadigin sonucunu cikardim. Su ana kadar dedigin seyler, PHP'nin de sahip oldugu ve JSP'ye bir ustunluk saglamayan seyler.

Son mesajinda dedigin "PHP'nin sadece html uretebilecegi" veya web servislerini kullanamayacagi iddiasi da yanlis.

JSP'nin ustunlugu, sirtini J2EE gibi bir platforma dayamasindan kaynaklaniyor. Bunun ne anlama geldigi biraz uzun bir konu...

yildizib
20/11/2003, 01:54
"JSP'nin ne kadar ustun oldugunu anlatmaya calisiyorsun ki ben bu dedigine zaten karsi cikmiyorum."

...

"Su ana kadar dedigin seyler, PHP'nin de sahip oldugu ve JSP'ye bir ustunluk saglamayan seyler."

...

"JSP'nin ustunlugu, sirtini J2EE gibi bir platforma dayamasindan kaynaklaniyor. Bunun ne anlama geldigi biraz uzun bir konu..."

Haklısın.:super:

yildizib
20/11/2003, 07:12
"Ne demek istedigimi anlamaya calismazsan, oyle bir yaris varmis gibi algilayabilirsin. "



Yukarıda en başta yazımdan alıntı yaparak başladığın ;

"biri bir gün öne gecerken diğeri başka bişeyle skoru dengeliyor..." mu?

Öncesindeki mesajımda ben microsoft ve diğer rakip firmaları kastetmiştim.Sonrada "Beni anlamaya calışmazsan" diye başlayan cümle kurup beni kızdırıyorsun.Önce heyecana gelip yazan sensin.

Doğrusu senin kadar deneyimli değilim php'de fakat kusura bakma ama tüm bu php'nin jsp'ye üstünlük getirmediğini düşündüğün şeyler enterprise'in icinde olan seyler.
Ben de kabul ettim bundan sonra php jsp kadar iyi bir program.

Lütfen biraz dikkat.Daha da fazla konuşmak istemiyorum.:sus:

acemi
20/11/2003, 09:55
Ben de kabul ettim bundan sonra php jsp kadar iyi bir program.

Bunu iddia eden yok. Boyle birseyi kabul etmeni isteyen de... Hatta denilenlerden boyle bir sonuc cikarman, denilenlerin, bir ise yaramadigini gosteriyor.

Doğrusu senin kadar deneyimli değilim php'de
PHP'de benden kesinlikle daha deneyimlisindir. Hazir script'lerde bazi ufak tefek degisiklikler yapmak disinda benim PHP'yle bir isim olmadi.

tüm bu php'nin jsp'ye üstünlük getirmediğini düşündüğün şeyler enterprise'in icinde olan seyler.
Saydigin ozellikler, "JSP'de yok" demiyorum. Yalniz "bunlarin karsiligi PHP'de de var" diyorum. PHP'de bunlarin karsiligi oldugu icin bunlari JSP'nin ustunlugu gibi soylememek lazim. Karsiligi olmayan ustunluklerini soylemek lazim.

Bir de enterprise kelimesinin, "enterprise'in icinde olan seyler", "enterprise özelliği yok", "dilin enterprise özelliğe sahip olması" gibi cumlelerde kullanilmasi (bence) pek dogru bir kullanim degil. Her ne kadar "bir teknolojinin enterprise ortam icin uygunlugundan" bahsedildigi anlasiliyor olsa da, sanki programlama diline eklenen ayri bir "enterprise bileseni/modulu" varmis izlenimi uyandiriyor.

yildizib
21/11/2003, 18:08
"Hatta denilenlerden boyle bir sonuc cikarman, denilenlerin, bir ise yaramadigini gosteriyor."

Aslında tartışmayı uzatmamak,başımdan savmak için yazmıştım o cümleyi .Özür dilerim.

"Tüm bunlar php de var mı" diye sorduklarımın sizden bişey öğrenmek için sorduğumu varsayın.Çünkü tahmin etmiyordum php'nin bu özellikleri olacağını ki hala tatmin olmuş değilim ya.

Pekala bi soru daha sorayım örneğin;

"Database'in aynı bilgisayarda durması gerekmez" ,"php buna başka bilgisayardanda erişebilir" dedin.Peki ben bu noktada eğer kullanılacak database bir ise o zaman php=jsp dir. Database farklı bilgisayarlarda ve farklı farklı database varsa ne olacak?Kodları ve fonksiyonları tekrar yazman gerekecek.Fakat jsp bu noktada phpden ayrılıyor ve aynı kodla farklı database bağlansanda fark etmiyor.Belki php de aynısını yapabilir.Ben yine yanılıyorumdur ne dersin?.

Bide şu var cacheleme mi ne o yöntemle fonksiyonu hafızaya aldın diyelim.Bu fonksiyona diğer bilgisayardan erişim var mı?
Ben onu kullanabiliyormuyum yani bana işlem yapıp döndürebiliyor mu?obje,html vs neyse...

Bunları sadece öğrenmek için soruyorum sakın bir yarışa tutuştuğumu sanma tekrar.

acemi
21/11/2003, 18:52
Database farklı bilgisayarlarda ve farklı farklı database varsa ne olacak?

mysql_connect("212.167.23.23", "kullanici_adi", "parola")

seklinde IP adresini vererek herhangi bir sunucudaki mysql veritabanina erisebilirsin veya uygun fonksiyonu kullanarak, herhangi bir veritabanina...

Kodlarinin veritabanindan bagimsiz olmasini istiyorsan ADODB (http://php.weblogs.com/ADODB) kullanirsin. Boylece MySQL, PostgreSQL, Interbase, Informix, Oracle, MS SQL, Foxpro, Access, SAP DB, SQLite, Sybase, DB2 and ODBC ile ulasilabilen veritabanlari icin ayni kodu kullanirsin. Veritabani degisti diye, kodlarin degismez.

Aslinda bu olay, PHP veya JSP icin sadece teoride dogru. Veritabanlari arasinda %100 uyum olmadigi icin mutlaka ufak tefek degisiklikler yapmak gerekir. Hangi dil kullaniliyor olursa olsun...

Bide şu var cacheleme mi ne o yöntemle fonksiyonu hafızaya aldın diyelim.Bu fonksiyona diğer bilgisayardan erişim var mı?
Ben onu kullanabiliyormuyum yani bana işlem yapıp döndürebiliyor mu?obje,html vs neyse..

PHP'de web service'lerinin nasil yazildigi/kullanildigi ile ilgili manuel'deki XML-RPC fonksiyonlarina (http://www.php.net/manual/en/ref.xmlrpc.php) bakabilirsin.

HunTER
21/11/2003, 18:58
Bırıncısı ıkı farklı yerde ıkı ayrı verıtabanı ıle calısman gerekıcekse PHP'de, herseyden once işe, senı verıtabanından soyutlayacak bı sınıf yazmakla baslarsın.. Hatta buna bıle gerek kalmayabılır, cunku PHP'den bagımsız uygulamar ılede bu ıstenen yapılabılır..

Keslemeden anladıgım dogruysada hayır ıstedıgın seyı yanı onceden hafızaya alınmıs fonksıyonu, bırden fazla ıstek ıcın kullanman normal sartlar altında mumkun degıl.. Dıger yandan burda keslemeden kasıt, daha cok ılk ıstekle uretılen cıktıyı, ıstek degısmedıgı surece ardından gelen ıstek sahıplerıne oldugu gıbı gondermek gıbı bısey..

Yanı a.php scrıptı eger ıstek sonunda "Merhaba Dunya!!!" cıktısını uretıyorsa, ıstek sonunda bu cıktı bı alanda depolanıp, ıkıncı ıstek ıcın scrıpt kodları ıcra edılmeden dırek olarak gonderılebılır..

Hatta ıstek sonrası olusan bı nesneyı ornegın bı tabloya kaydedıp, ıkıncı ıstek ıcın nesneyı tum ıslenmıs ozellıklerıyle bırlıkte bu tablodan cekıp kullanabılmende mumkun.. Kı bunlarda "enterprise" sevıyede PHP'nın performansını arttıracaktır sanırım?

Tabı burda sorun PHP ıle bunun yapılıp yapılamıyacagı degıl belkıde.. Daha cok PHP ıle yapmanın nedenlı avantajlı oldugu? Yanı ondan daha ıyı ve bu ıslemlerı yerlesık olarak destekleyen bı alternatıf varsa elbette onu tercıh etmek bu durumda daha mantıklı olucaktır...