İçindekilerGirişİndex
YukarıİlkÖncekiSonraki YokSon
Geriİleri
Yazdır

PET STORE SAVAŞLARI

BENİMKİ DAHA HIZLI ÇALIŞIYOR!

Her şey Microsoft'un Sun'ın Pet Store'unun aynısını .NET'te 28 kat daha hızlı çalıştığını söylemesiyle başladı. Pet Store, Sun'ın EJB'de geliştiricilere örnek olsun diye ürettiği yalandan bir e-ticaret sistemi. Güya bir web sitesinden çeşitli evcil hayvanlar satılıyor. Bu uygulama, standart bir e-ticaret uygulamasında bulunan temel bileşenleri içeriyor. Java'nın yavaşlığı zaten herkesin en bildiği özellği. Java için sözlüklerde "iyi ama yavaş bir programlama dili ve platformu" diye tanımlar bile veriliyor. Ancak .NET'in 28 kat daha hızlı olması performans'a hassas olanların dışındakilerin da şaşkınlıkla karşıladığı bir gelişme.

KADI KIZININ KUSURU : YAVAŞLIK!

Java, bilindiği gibi nesneye-yönelik, platformadan bağımsız bir programlama dili. Standart bilgisayarlar için üretilen bir sürümü dışında el cihazları için üretilen bir 'micro' sürüm, server piyasası için de 'enterprise' sürümü bulunuyor. Programlama alanında bir devrim olarak algılanan Java platformunun kadının kızı misali küçücük (!) bir kusuru var : çok yavaş. Java dışındaki dillerin taraftarları ve Java platforumunu kendi geliştirme platformu olarak görmeyenlerin en çok 'saldırdığı' bir özelliği. Java'yı hızlandırmak için bir çok kişi ve kuruluş çaba sarfediyor. JIT (Just-In-Time - Tam Zamanda) ve HotSpot (Sıcak Nokta) derleyiciler'le bu yavaşlık giderilmeye çalışılmış. Tam bir zafer kazanılamasa da, büyük ölçüde de başarılı olunmuş. Bu çalışmaların sonucu olarak, C programlama dili dışındaki dillerle arasındaki performans farkı giderek azaldı. C'nin performansına hiç kimse zaten erişemiyor. Ancak bu dil hata yapmaya çok elverişli olduğu için sadece çok deneyimli ve vakit/sabır sahibi programcıların tercih ettiği bir dil olarak değerlendiriliyor. E-Ticaret gibi güvenliğin, sağlamlığın ve kolaylığın hızdan daha önemli olduğu sistemlerde giderek Java kullanılır hale geliyor. Herkes yavaşlığından şikayet ediyor ama kullanmaya da devam ediyor. Çünkü bir çok konuda alternatifi yok(tu).

TAKLİT ASLINI GEÇEBİLİR Mİ?

Yavaşlığına rağmen, diğer özelliklerinden dolayı hemen hemen dünyadaki bütün işletim sistemi ve veritabanı üreticileri Java'ya yöneliyor. Bir tanesi hariç : Microsoft. Aslında Microsoft da Java'ya önce 'tu kaka' deyip sonra Java'ya balıklama atlayanlar firmalardan biri. Ancak Java'nın yaratıcısı Sun, bu platform'u kendi sadece kendi platformunda çalışacak şekilde bozduğu iddiasıyla Microsoft'un elinden Java'yı aldı. Microsoft kendi sistemlerinde sadece eski bir Java versiyonunun kullanabiliyor ki onu en sonunda Windows XP'yle birlikte vermeyerek bu platformdan temelli uzaklaştığını gösterdi. Java Enterprise Edition'a karşı .NET adı verilen bir çerçeve ortaya çıkardı. Java platformunun mantığında C++ sözdiziminde çalışan C# adlı yeni bir dil çıkardı. Kendi geliştirme ortamı Visual Basic'i de bu ortama entegre etti. Ortaya Java'nın sahip olmakla övündüğü bir çok şeyi içeren ama Microsft'tan başka kimsenin karışmadığı bir platform çıktı. Bir çok uzman .NET'in J2EE'nin ve C#'ın da Java'nın benzeri olduğunda hem fikir. Bazıları buna 'taklit' derken bazıları da 'evrim' diyor. Bu açıdan .NET ifadesinin Sun firmasının ortaya attığı .COM ismine karşılık geldiği zaten aşikar.

Microsoft dahil kimse .NET'le J2EE arasındaki benzerliği inkar etmiyor. Java'nın paketlerine karşılık .NET'te hangi paketlerin geldiği tablolarla gösteriliyor. Hatta Microsoft Java dilinin sözdizimiyle .NET'te çalışan J# diye bir dil çıkardı. Bu atakla Java kullananların %10'unu kendi sistemlerine çekmeyi planlıyor. Ortaya atılan iddia şu : C# (veya herhangi bir .NET dili) hem Java kadar güçlü hem de kat kat daha hızlı. Bu performans farkını Microsoft bir propaganda aracı olarak üstüne basa basa kullanıyor. İşte Sun'ın Java'daki örnek uygulaması Pet Store'u alıp kendi sistemlerinde gerçekleştirmeleri bu kapsamda değerlendiliyor. Sonuç korkunç : .NET'inki J2EE'ninkinden 28 kat daha hızlı.

YOĞURTÇU YOĞURDUM EKŞİ DER Mİ?

.NET'in bu atağına karşılık Sun doğrudan bir yanıt vermiyor. Sadece Pet Store'ın Sıkça Sorulan Sorular'ında kısmi bir yanıt var. İlk olarak Pet Store'un performans düşünülerek değil öğretici amaçlarla yapıldığını, kodu anlaşılır kılmak için hiç bir performans arttırıcı önlem alınmadığını söylüyor. İkinci ve daha önemli olan karşı çıkış da Pet Store'un pattern (desen) öğretmek için kullanıldığı belirtililmesi. Yani, hızlı çalışan uygulamalar yerine "iyi" uygulamalar için bir örnek olduğunu söylüyor. Peki yavaş bir uygulmama iyi olabilir mi? Bir uygulama geliştirme yönteminin çalışma hızından daha önemli özellikleri olması gerektiği yazılım mühendisliği açısından artık tartışılmayan bir gerçek. Java'nın yavaş olamsına karşı programcılar arasında bu kadar popüler olması, giderek Java'ya doğru bir yöneliş olması bunu kanıtlıyor. Microsft'un uygulaması son derece hız olmasına rağmen, "bakımı imkansız" bir kod olduğu konusunda uzmanlar hemen hemen görüş birliği içinde. İyi bir uygulama, değişikliğe elverişli, açık seçik anlaşılır durumda olmalı diye düşünülüyor. Pet Store, herkesin kolaylıkla anlayabileceği, üzerinde kolaylıkla değişiklik yapabileceği tarza tasarlanmış. Microsoft'un uygulamasının kimsenin çözemeyeceği veya değiştiremeceği sadece hızlı çalışması için yazılmış, porgramlama tekniği açısında çok kötü bir uygulama olduğu bir çok yorumcu tarafından belirtiliyor.

Sun'ın Pet Store'u üzerine söylenen bir başka olumlu söz de platformdan bağımsızlığı. Burada sadece işletim sistemi anlamındaki bir platform bağımsızlğı değil veritabanından da bağımsız kod yazılmasından bahsediliyor. Pet Store piyasada J2EE'yi destekleyen bütün veri tabanları üzerinde hiç bir değişiklik yapmadan çalışıyor. Zaten Sun, standart EJB özelliklerini desteklemeyen üreticilere J2EE lisansı vermiyor. Bu da firmalaraın istedikleri anda başka bir vertabanı veya işletim sistemine geçebilmelerini sağlıyor. Microsoft'un uygulaması ise sadece bu firmanın ürettiği SQL Server'da çalışmak üzere tasarlanmış. Ayrıca Microsoft'un, Pet Store'da application düzeyinde gerçekleştirilern işlemleri stored procedure'lere veritabanına yıkarak 'hile' yaptığını söyleyenler bile var.

KRALDAN FAZLA KRALCILAR!

Microsoft'un meydan okumasına karşı Sun nispeten sessiz kalırken Oracle ve BEA gibi Java destekleyicileri karşı saldırıda bulunmakta çekinmediler. Oracle kendilerinin de bir Pet Store yazdıklarını ve Microsoft'unkinden de hızlıçalıştığını açıkladı. Microsoftsa bunu reddediyor ve Oracle'ı tarafsız firmalarca yapılacak perforrmans testlerine çağırarak meydan okuyor. Ancak bu kez Microsoft kendi uygulamalarının Oracle'ınkinden sadece 'daha hızlı' olduğunu söylüyor. 28 kat daha hızlı olmasının yerine bu kez, 10 kat daha hızlı olduğunu belirtmekle yetiniyor. Oracle da kendi uygulamalarının Microsoft'unkinden 22 kat daha hızlı olduğu iddiasında. Tabii iki taraf ta birbirlerinin yaptıkları testlerdeki 'hile' yapmakla suçluyor. EJN destekleyen WebLogic üreticisi BEA da kendi uygulamalarının Oracle'ınkinde de hızlı çalıştığını iddia ediyor. Neyseki sadece 1.5 kat daha hızlı olduğunu söylemiş. Nerde 28 kat nerde 1.5!

SONUÇ

Tarafsız gözlemciler 28 kat gibi rakamlara şüpheyle yaklaşırken, .NET'in performans açısından J2EE'den üstün olduğunu belirtiyorlar. C# ve diğer .NET nesneye yönelik , multi-threaded, network ready diller olduğu da bir gerçek. Ancak Java'nın platoform bağımsızlının yanırısıra daha sağlam ve güvenli bir dil olduğu konusunda hemen hemen herkes hemfikir. Kesin olan Sun, IBM, HP, Oracle, Sybase gibi firmaların sarıldığı J2EE'ya karşı .NET'in ciddi bir rakip olduğudur. Zaten Microsoft'un pazarlama gücü, bir ürünün piyasada tutulmasını sağlamak için ille de iyi olması gerekmediğinin defalarca kanıtlamış durumda. Ancak bu sefer işi gerçekten zor, zira J2EE yıllardır piyasada ve oldukça tutulmuş. Microsoft bu kez çok mu geç kaldığı yorumları yapılıyor. Java'nın yavaş olup olmadığını tartışılırken, piyasaya çıkmakta .NET'in bu kadar yavaş olması herhalde o kutsal serbest rekabeti sağlamak için kurulmuş ilahi bir denge! İki yavaştan hangisi mi daha fazla tutulacak? Acele etmeyin canım, o da yavaş yavaş belli olacak!

1 Eylül 2002
İçindekilerGirişİndex
YukarıİlkÖncekiSonraki YokSon
Geriİleri
Yazdır