DİJİTAL İLETİŞİM | SOSYAL MEDYA | İÇERİK PAZARLAMA

2 Şubat 2008 Cumartesi

On 21:26 by Murat Kahraman in , , , ,    3 comments
Bu yazı ilk konuk yazımız. ekolay oyun'da beraber çalıştığımız, Action Script geliştirme ve yazılım uzmanımız Oğuz Sandıkçı, kendi uzmanlığıyla ilgili ve birçok kişinin merak ettiği bir konuda son derece aydınlatıcı bir yazı yazdı:

Silverlight Flash'a karşı (mı?)


Microsoft S2B kapsamında ve Daron Yöndem'in eğitmenliğinde gerçekleşen üç günlük Silverlight eğitimi yeni bitti. Eğitim öncesinde pek çok insan gibi benim de kafamı bu soru (Silverlight Flash'a karşı mı?) kurcalıyordu. Edindiğim yeni bilgiler ve biraz araştırmadan sonra bir yazı yazmak istedim. İstediğim kadar kapsamlı bir yazı olmadı ama giriş için yeterli sanırım ;)

İlk bakışta iki teknoloji de neredeyse aynı gibi gözüküyor. İkisi de vektörel grafik kullanıyor, video oynatabiliyor, kullanıcı ile etkileşimde bulunabiliyor, sunucudan veri alıp-yollayabiliyor... Fakat temel tasarım amaçları ve geliştirici kitleleri birbirinden farklı. Bir de araya şirket politikaları girince bu fark iyice açılıyor.

Bazı bölümler sonuna burası gibi italik ile yazılmış notlar ekledim. Bunlar teknik detay ve kendi düşüncelerimi içeriyor. İlgilenmeyenler buraları okumadan geçebilirler.

Web'e Entegrasyon

Şunu önceden kabul edelim; amacınız geniş bir kitleye ulaşmak ise Flash şu anki tek seçeneğiniz. İnternet kullanıcılarının neredeyse hepsi flash oynatabilen tarayıcılara sahip. Sanırım bu tarafta başka söze gerek yok (:

Silverlight sahnesinde ise durum şu an pek iç açıcı gözükmüyor. Özellikle 1.0 versiyonundaki eksikliklerden dolayı geliştiricilerin bir kısmının da 2.0 versiyonunu beklediğini düşünürsek, yaygınlaşması biraz zaman alacak gibi. Yeni versiyonun çıkması, Windows güncelleme ile dağıtılması, internetteki silverlight içeriğinin zenginleşmesi gibi zincirleme bir senaryo gerçekleşse bile yeterli yaygınlığa ne zaman ulaşacağını tahmin etmek için henüz erken. Ama 2.0 versiyonun çok şey vaat ettiğide bir gerçek.

Geliştirme ortamı

Silverlight'ın yazılımcıları en çok memnun eden özelliklerinden biri çok tanıdık ortamda geliştirilebilmesi. Her zaman kullandığınız Visual Studio ile kod tamamlamanın da yardımıyla rahatlıkla uygulamalarınızı geliştirebiliyorsunuz. Gerekli görsel bilgiyi Expression Studio’nun Blend ve Design programlarından alabiliyorsunuz.

Flash'a karşı ise bir ön yargı olduğunu düşünüyorum. Çünkü yazılımcılarda çizim arayüzlerine karşı bir antipati vardır :). Sırf bu ön yargı yüzünden, Flash'ın arayüzünü açıp sahne, zaman ekseni ve çizim araçlarını gördükten sonra kaçan çok yazılımcı olduğuna eminim :) Oysa zaman ekseninin ilk karesine tıkladıktan sonra Action Penceresini açarak (kısayoltuşu F9) bir çizgi bile çizmeden uygulamanızı geliştirmeye başlayabilirsiniz. Flex bu sebepten dolayı birçok yazılımcının ilgisini çekecektir ki Silverlight ile onun karşılaştırılması daha uygun olur. Ama Flex şu an konumuz dışında, belki başka bir yazıda ele alınabilir.

Özetle Microsoft'un Silverlight'la yaptığını Adobe'un Air'ine benzetebiliriz. Air, web geliştiricilere bildiği yazılımlar dışına çıkmadan masaüstü uygulamaları geliştirmelerini sağlıyor. Silverlight aynı rahatlığı yazılımcıların görsel web uygulamaları geliştirmesinde sunuyor.

Görsel elementlere sahip yazılım geliştirme araçları çok kullanışlı olabiliyor. Flash sadece uygulama geliştirmede değil, arge çalışmalarımda da işimi oldukça hızlandırıyor. Çünkü müdahale etmem gereken herşey tek programda ve ulaşması çok kolay.

Kodlama

Silverlight 2.0 da gelecek olan C#.net ve VB.net ile programlama sayesinde hem çok daha hızlı çalışacak hem de hazırda bulunan C# kodları kullanılabilecek. Özellikle Sunucu-istemci arasında ortak yapılan bir işlemde tek kod kullanılabilecek. Şahsen ben dört gözle bekliyorum kendisini :).

Flash'ın ActionScript'ini öğrenmek istemeyen yazılımcılar olabilir. Eminim iki teknolojiye de yabancı olanlara Silverlight daha kabul edilebilir geliyordur. Buna bir yorumum yok, haklılar ama bir dil öğrenip tüm hayatına onunla devam etmek isteyenlere kolay gelsin diyorum :)

Burada biraz profesyonel davranmak gerekiyor. Herkesin kendini rahat hissettiği bir dil mutlaka vardır. Ama diller ve yazılımlar aslen araçlardır, amaçlar değil. Yeniliklere ve değişikliklere açık olmadığımız sürece bir dile, firmaya, veya platforma ve bunların sunduklarına bağımlı kalırız. (Bu genel bir düşüncedir, bir hedefe ithafen söylenmiyorum)

Video

Silverlight'ın video oynatabilme yetenekleri şu an onu Flash'ın önüne geçiriyor. Windows Movie Maker gibi herkesin bilgisayarında bulunabilecek yazılımlarla oluşturacağınız wmv uzatılı birçok formattaki videoyu oynatabiliyor. Flash ise sadece kendi formatını destekliyor ve piyasada benim bulabildiğim ücretsiz dönüştürücü yok. Ücretli olanlarla ilgili de bazı sorunlar olduğunu okumuştum. Flash'ın yeni versiyonunda bir çözüme gidilmezse, webdeki video oynatıcıları yavaş yavaş Silverlight'a dönüşebilir.

Vektörel çizim

Silverlight'ı ele alalım; Microsoft'un vektörel arayüz standardı olan Windows Presentation Foundation'ın bir alt sınıfı olarak geliştirildi (eski adı WPF/E - Windows Presentation Foundation/Everywhere idi). Amacı daha çok internette ve mobil araçlarda vektörel arayüze sahip medya uygulamaları geliştirmek diyebiliriz.

Flash'ın vektörel tabanlı bir kare animasyon programından gelme bir yapısı var. Çizim ve animasyon için çok daha geniş ve rahat araçlar sağladığı bir gerçek. Karmaşık çizimler yaptığınız zaman Flash sahip olduğu araçlarla (movieclip,symbol,group,layer..) sahne yönetimini çok rahatlaştırırken Silverlight bu konuda epey zayıf kalıyor.

Silverlight'ta oluşturduğunuz görsel objeler özel bir XML olan XAML ile tutuluyor. İçerisinde her nesnenin her özelliği açık ve kod ile ulaşıp müdahale edebiliyorsunuz. Bir derleme söz konusu olmadığı içinde kodla kullanıcı tarafında rahatlıkla generate edilebiliyor. Hatta tagleri sunucuda oluşturup yollamak bile mümkün. Bu da size sınırsız bir esneklik sağlıyor. Fakat XML formatından kaynaklanan açıklığı ve içeriğin karmaşıklaştıkça boyutun şişmesini göze almanız gerekiyor.

Flash dosyalarının derlenmiş olmasının artı ve eksi yanları burada karşımıza çıkıyor. Boyuttu çok küçük ve yardımcı bir program kullanmadan içeriğinin tekrar kullanım için dışarı aktarılması mümkün değil. Fakat dinamik vektörel şekiller kullanmak için nesneleri silip baştan istediğiniz değişiklerle tekrar oluşturmalısınız. Kulağa yavaş gelsede derlenmiş kodlar bunu yeterince hızlı yapabiliyor. Ama kodda değişiklik gerektiren her durumdan sonra bir derleme yapmak zorunlu.

Animasyon

Flash ilk versiyonundan beri kare animasyon yapmak için tasarlanmış bir araç. Ardarda karelere istediğiniz içeriği yerleştirip oynatmanız mümkün. Hatta karelere kod yazılarak uygulamanın akışının kontrol edilmesi Flash için çok genel bir kullanım.

Burada gözleri Silverlight'a çevirdiğimizde malesef bu ihtiyacı karşılayacak hazır bir çözüm yok. Çünkü Silverlight'ın animasyon sistemi karelerle değil zaman aralıklarıyla çalışıyor. Animasyon için video kullanmak, eğer dosya boyutunun büyüklüğü ve ölçütü değiştirildiğindeki kalite kaybı sorun teşkil etmiyorsa, bir çözüm olabilir. Fakat iş sıralı işlemler yapmaya geldiğinde programcılara kodlamanın yolları gözüküyor.

Kare animasyon her zaman uygun bir teknik değildir, özellikle geçen zaman aralığına ihtiyacımız olduğu durumlarda. Herhangi bir şekilde bilgisayar kasılıp, flash oynatıcısı geri kaldığında önceden tahmin edemeyeceğimiz zaman atlamaları oluşması çok yüksek ihtimallidir. Tabi kısmen kod içerisinden müdahale edilip tekrar senkronizasyonu sağlayabilirsiniz. Genede kare animasyonlu bir sistemde zaman aralığı bulmak, zaman aralıklı bir sistemde kare animasyon oynatmaktan çok daha kolaydır :).

Sonuç

Biraz kısa ve eksik bir yazı olmasına rağmen özet olarak şunu diyebiliriz. İhtiyaçlara çözümler üretmenin çok yolu olduğundan zor veya kolayda olsa iki teknolojide her tür uygulama için kullanılabilir. Bana sorarsanız seçim kriterimiz bu teknolojilerin sağladıkları benzer özellikleri kimin daha iyi yaptığının yanında, birbirinin sağlayamadıkları da olmalı. Böylece ilerde "Flash mı, Silverlight mı?" sorusu "Ne zaman Flash, ne zaman Silverlight?" sorusuna dönüşebilir. Yakın gelecekte internette Flash ve Silverlight ortak ürünü siteler bile görebiliriz. Her şey programlarımızın yeni sürümlerine ve geliştiricilerin seçimlerine bağlı ;).

Oğuz Sandıkçı

3 yorum:

  1. Yazıdan önce Silverlight hakkında çok bilgim yoktu. Çoğu web geliştiricini de haberi olduğunu pek düşünmüyorum. Bence çok güzel bi yazı olmuş. Dediğiniz gibi başlangıç için yeterli.
    Ayrıca yazıda katılmam gereken bir yer olduğunu düşünüyorum ki oda
    "Herkesin kendini rahat hissettiği bir dil mutlaka vardır. Ama diller ve yazılımlar aslen araçlardır, amaçlar değil. Yeniliklere ve değişikliklere açık olmadığımız sürece bir dile, firmaya, veya platforma ve bunların sunduklarına bağımlı kalırız."

    Yazılarınızın devamını ve daha ayrıntılı incelemelerinizi de bekliyoruz.

    YanıtlaSil
  2. Anıl Burak Sağlam9 Şub 2008 00:32:00

    Oğuz Bey çok teşekkürler, gerçekten aydınlatıcı olmuş.
    Murat Bey, size de bu güzel yazıyı bizimle paylaştığınız için teşekkürler.

    YanıtlaSil
  3. Yazınız gerçekten çok aydınlatıcı. Devamını bekleriz.

    YanıtlaSil