Peki bir uygulama geliştirici olarak hangi altyapıyı seçmemiz en doğrusudur. Ben kendimce bu üç ürünün artı ve eksilerini ortaya koyarak makale hazırlamaya çalıştım. Ayrıca olabildiğince objektif davrandım. Sonuçta şu ürün ve bu ürün demeyeceğim ama kararı verirken göz önüne alınması gereken maddeleri bu yazıda görerek kendi kriterlerinize göre karar verebileceksiniz.
Önce ürünleri tek tek masaya yatıralım. (Sıralama ilk harflerine göre)
Flash
Flash uzun yıllardır kendini web tabanlı grafik çizimlerinde uzun süre tek olmuş. Tek olmasının konumu ile pazarı domine etmiş. Tüm diğer firmalar bu alana yatırım yapmadığı dönemde bu açığı iyi değerlendirmiş. Çok geniş bir kitleye sahip. Neredeyse tüm web tabanlı oyunların flash tabanlı olması bu konuda önemli bir gösterge. Çıkış noktası daha çok grafikerlere yönelikken son yıllarda çıkardığı Flex framework'ü ile yazılım dünyasınada kılı kırk yardırmadan birşeyler üretebilme imkanı tanıyan Adobe firmasının lokomotif ürünlerinden. Aslında tek problemi firma bağımlılığı sayılabilir. Bir başka dezavantaj ise standart dışı bir dil olan ActionScript. C++ sözdizimine yakın sayılabilecek bir script ama mutlaka ek bir çalışma gerektirecektir.
Önce ürünleri tek tek masaya yatıralım. (Sıralama ilk harflerine göre)
Flash
Flash uzun yıllardır kendini web tabanlı grafik çizimlerinde uzun süre tek olmuş. Tek olmasının konumu ile pazarı domine etmiş. Tüm diğer firmalar bu alana yatırım yapmadığı dönemde bu açığı iyi değerlendirmiş. Çok geniş bir kitleye sahip. Neredeyse tüm web tabanlı oyunların flash tabanlı olması bu konuda önemli bir gösterge. Çıkış noktası daha çok grafikerlere yönelikken son yıllarda çıkardığı Flex framework'ü ile yazılım dünyasınada kılı kırk yardırmadan birşeyler üretebilme imkanı tanıyan Adobe firmasının lokomotif ürünlerinden. Aslında tek problemi firma bağımlılığı sayılabilir. Bir başka dezavantaj ise standart dışı bir dil olan ActionScript. C++ sözdizimine yakın sayılabilecek bir script ama mutlaka ek bir çalışma gerektirecektir.
Tarayıcı tarafına bakıldığında çok geniş bir perspektifte (birçok mobil cihaz flash litede olsa flash teknolojisi kullanabilmektedir) Tarayıcı tarafına player adı verilen bir eklenti yüklenmesi gerekmektedir. Ancak bu eklenti birkaç megabyte boyunda olduğundan çok hızlı kurulabilmektedir.
HTML 5
HTML 5'in en önemli avantajı herhangi bir firmaya bağımlı olmaması. Bir çok farklı firmanın talepleri doğrultusunda şu ana kadar 4. versiyonda bulunan HTML standartlarına yeni etiket (tag) eklenerek ortaya çıkarılan HTML 5 grafik özellikleri ile çok başarılı olduğunu gösteriyor. Ancak çok ciddi bir dezavantaj web tarayıcıların HTML5 etiketlerini tam anlamıyla desteklememeleri. Yani bir tarayıcıda sorunsuz çalışan HTML 5 kodu başka bir tarayıcıda hiç çalışmayabiliyor yada ortaya çıkan görsel olması gerekenden önemli farklılıklar içerebiliyor. Topluluk açısından gerçekten yeni olmasına rağmen geniş bir kitleye sahip. Ürünün yeni olması bir dezavantaj sonuçta tam olarak oturmamış görüntüsü çiziyor. Ama gelecek vaadeden bir ürün.
Dil açısından HTML 5'e eklenmiş yeni tagları öğrenmek tabiki gerekli. Ayrıca HTML ile çalışanlar için javascript bilgisininde iyi olması gerekiyor.
Java FX
Aslında bu yazıya katıp katmamakta çok kararsız kaldım. Çünkü diğerleri ile karşılaştırılabileceğini düşünmüyorum. Tek olumlu tarafı Java teknolojisi olması ve java dilini kullananlar için avantaj teşkil etmesi. Sun firmasının Oracle tarafından satın alınması Java ve tüm türevlerini artık firma bağımlı hale getirdiğinden Java FX teknolojiside arkasında bulunan geniş açık kaynak topluluğuna rağmen Oracle bağımlıdır. Java FX yeni olmasının verdiği bir çok dezavantajları barındırmaktadır. Sürekli ortaya çıkan buglar. Kaynak eksiklikleri bunların başlıcaları denilebilir.
Kullanıldığı tarayıcılara genellikle çok küçük bir eklenti yüklemesi bir avantaj ancak mobil cihazlar için eklentilerine rastlayamadım.
Silverlight
Silverlight Microsoft'un web dünyasına kazandırdığı bir framework. Bana göre birkaç büyük dezavantajı var. Birincisi firma bağımlılığı. Diğeri ise yeni bir framework olmanın getirdiği tüm dezvantajları taşıyor olması. Bunları kısaca sık sık bug çıkması. Sürümler arasında tutarsızlıklar (bir sürüme eklenen bir fonksiyonun kaldırılması yada parametrelerinde önemli değişiklikler yapılması), kaynak eksikliği ve topluluğun küçük olması denilebilir. Bu dezavantajlara rağmen çok kullanılan dillerde (vb, c#) kod yazılabilmesi bir avantaj. Visual Studio IDE'si de asp/aspx kullanıcıları için çok hızlı üretim yapmalarını sağlayacaktır. Tarayıcılarda tüm tarayıcıları destekleyememesi ciddi bir dezavantaj. Mobil cihazlarda da sınırlı görünüyor(.
Tüm Makalenin Daha kolay anlaşılabilmesi için olumlu/olumsuz yönleri tablo halinde vererek makaleyi tamamlayalım.
| Özellik | Flash | HTML 5 | Java FX | Silverlight |
| Firma Bağımlığığı | - | + | - | - |
| Bilinen Diller | - | + | + | + |
| Geniş Topluluk | + | + | - | - |
| Stabil Olma Durumu | + | - | - | - |
| Kaynak Bulabilme | + | + | -(*) | - (*) |
| Mobil Cihazlar | + | - | - | +(**) |
| Tarayıcı Desteği | + | - | + | + |
** Silverlight aslında sadece Windows tabanlı mobil cihazlarda eklentiye sahip Windows dışı mobil platformları arayan bu özelliği - olarak dikkate almalılar.
Burada Java/Java Aplet neden yok denecektir. Java tam anlamıyla konuma uymuyor. Çünkü yükleyen kişinin siteye ciddi manada güveniyor olması gerekiyor. Yine Microsoft ActiveX teknolojisinide değerlendirmeye almıyorum. Burada aranılanın karşı tarafta güven problemi oluşturmadan web üzerinde grafik çizebilmek olduğunu düşünüyorum. Java ve activeX teknolojileri tam olarak bu tanıma uymuyorlar. Java Apletler ise bayağı eski bir teknoloji ama yerini Java FX'e bırakıyor olduğundan bu makaleye dahil etmedim.
Son söz olarak geliştiricilere naçizane birkaç tavsiyem olacak. Öncelikle proje gereksinimleri net olarak ortaya konulmalı ve proje gereksiniminde bulunmayan özellikler değerlendirmeye alınmamalı. Örneğin zaten mobil bir cihazda kullanmayacağınız uygulama için mobil cihazda çalışıp çalışmaması önem taşımayacaktır. Ayrıca bazı özelliklerin karşısında + olmasına rağmen projenizdeki bir gereklilik onu - değerlendirmenizi gerektirebilir. Bana göre herhangi bir framework'ün bir diğerinden daha iyi olması diye bir kavram yoktur. Daha çok proje gerekliliklerini daha iyi karşılıyor olması yada karşılamıyor olması durumu vardır. Buda her proje için değişkendir. Ayrıca zamanda önemli bir faktördür. Bu gün kaynak yetersiz diyebileceğiniz frameworkler ileride çok fazla kaynağa sahip olabilirler.
Hiç yorum yok:
Yorum Gönder