Makale Adı Java ve Symbian Platform Karşılaştırması
Derleyen Mobilpro
Tarih 11.11.2004


Bu dökümandaki amaç , geliştiricilerin , tasarımcıların uygulama geliştirme platform seçiminde kolaylık sağlamak amacı ile J2ME ve Symbian Platformlarının benzerlikleri , farklılıkları hakkında bilgi vermektir.

Platform Tanımları

J2ME
J2ME (Java 2 Micro Edition) mobil telefonlar için geliştirilmiş ve temel olarak atası Java gibi yorumlanmış bir dildir. Java uyumlu cihazlar giderek daha çok üretilmekte ve piyasada yer bulmaktadır. Mobil cihazlar üzerinde çalışan başka yorumlanmış dillerde olsa J2ME ; öğrenim kolaylığı , açık standarları ve geniş cihaz desteği ile en çok tercih edilen geliştirme ortamıdır.

Symbian OS
Güçlü telefonlar için bir işletim sistemi olan Symbian işletim sisteminde uygulamalar C++ ile geliştirilir ve makine diline derlenir. SmartPhone diye isimlendirilen ve bir işletim sistemine sahip telefonlar J2ME destekleyen telefonlara göre piyasa sayıca azda olsalar , komplike uygulama desteği ve telefonun tüm yapısını kullanabilme gibi özellikleri ile ön plan çıkmaktalar. Symbian nında J2ME gibi piyasada rakipleri olsada , piyasanın %70 ten fazlasını temsil eden üreticiler (Nokia , Sony-Ericsson , Siemens , Panasonic) ürettikleri SmartPhonelarda Symbian ı destekleme ve diğer işletim sistemlerine göre daha çok öncelik verme teyidinde bulunmuşlardır.
Temel olarak Symbian telsiz haberleşme cihazlarında kullanılmak üzere özel olarak tasarlanmış açık bir standarttır ve her donanım üreticisi tarafından kullanılabilir.

Karşılaştırma Tablosu
J2ME Symbian OS
İzin Verilen Uygulama Boyutu Birkaç yüz kilobyte Megabyte
Açık Standart Evet Evet
Yaygınlaşma Yükse ve giderek artıyor Düşük ama giderek artıyor
Büyük üretici Desteği Var Var
OTA ile kurulum Evet (*) Evet (1)
Runs Natively Hayır Evet
Programlama Dili Java C++
Uzak (Remote) Sunucu ile bağlantı Evet Evet
2B Animasyon Evet Evet
3B Animasyon Hayır Evet
Video Gösterim Hayır (2) Evet, Telefon desteklerse
MIDI Ses Evet (*) Evet
Yüksek Kalite Ses Genelde Hayır Evet
SMS erişimi Genelde Hayır (3) Evet (MMS erişimide dahil)
Irda ve BlueTooth erişimi Hayır Telefon desteklerse
Takvim ve Rehbere erişim Hayır Telefon desteklerse
Telefon Çevirme Hayır Evet
Çapraz platfom geliştirme Evet Evet
İzin verilen uygulma boyutu Birkaç yüz KB MegaByte
(*) Bazı eski model telefonlar hariç
(1) Symbian uygulamalarının boyutları büyük olduğundan OTA ile download pratik değildir.
(2) J2ME sadece Java MultiMedia API sini destekleyen 3650 gibi modellerde video gösterebilir.
(3) J2ME ile SMS yapısına ulaşmak için telefonun 3410 gibi SMS API yi yada 3650 gibi Wireless Messaging API yi desteklemesi gereklidir.


J2ME

J2ME , mobil telefon gibi küçük cihazlar için geliştirilecek olan Java uygulamalarının standartını belirler. J2ME , Standart J2SE nin bir alt grubu gibidir. Mobil telefonların kullandıkları J2ME standartları MIDP olarak bilinir ve telsiz cihazlar gibi küçük cihazların gerek duydukları metodları içerirler.

3.1 J2ME nin Güçlü Tarafları
Java teknolojisini kullanan telefonların piyasadaki sayısı , Symbian kullanan telefonlara göre çok fazladır. Bu sayı fazlalığı , Java için uygulama geliştirme yapanları bu platforma çekmektedir.

Birçok Java uygulaması OTA ile telefonlara indirilebilir ve kurulabilir. Buda telefon kullanıcılarına serbestlik sağlar. Bir telefon kullanıcısı operatör yada bir başka şirket tarafından sağlanan listeden seçtiği oyunları kolaylıkla telefonuna indirebilir. Bu indirmelerden ortaya çıkan ücretler operatör tarafından kolaylıkla izlenebilir ve gerektiğinde geliştirici firmların gelir paylaşımında kullanılır. Kısacası Java ile iş modelini kurmak daha kolaydır.

Standart Java bilen geliştiriciler için J2ME adaptasyonu kısa zaman alacaktır.

J2ME ile ağ bağlantısı kurmadan telefon üzerinde oyun oynamak yada uygulama çalıştırmak imkanlıdır.

Ağ bağlantısı göz önüne alındığında J2ME nin önemli avantajları vardır :

1. Önceki teknolojilerde (SMS ve WAP gibi) tüm bilgi server tarafında işlenmekte ve sadece sonuçlar telefona gönderilmekte idi. Telefon sadece bir gösterim cihazı idi. Fakat Java uygulamaları ile telefonda çalışan uygulama bilgiyi aldıktan sonra kendisi işleyebilir. Böylece uygulamanın ağ bağımlılığı azalır ve server tarafındaki uygulamaların yükü azalır.
2. J2ME nin desteklediği kullanıcı arayüzü (user interface) oluşturma özelliği ile geliştiriciler kendi istedikleri gibi bir görsel yapı hazırlayabilirler.

Symbian kullanan telefonlar J2ME desteği verirler. Bu yüzden J2ME uygulamaları Seri 60 gibi Symbian işletim sistemi içeren telefonlarda çalışır.

3.2 Kısıtlar
J2ME her türlü uygulama için uygun değildir.

J2ME destekli birçok telefonda saklanabilecek olan MIDletlerin boyutu için sınırlar vardır. Bu sınırlar hem toplam telefon hazıfası için , hemde tek bir MIDletin boyutu içindir. Bazı telefonlar tek bir MIDlet boyutunu 30 KB olarak kısıtlasalarda genelde 64 KB sınıra rastlanır. Genelde operatörler indirilecek MIDlet boyutunu sınırlarlar.

Java dili yorumlanmış bir dildir. Bu yüzden derlenmiş olan Symbian uygulamaları daha hızlı çalışarak performans olarak J2ME uygulamalarından daha iyi olacaklardır.

J2ME , standart Javanın desteklediği JNI (Java Native Interface) yı desteklemez. Bu yüzden uygulama geliştirenler Java ile telefonun diğer yapılarına (SMS gibi) ulaşamazlar. Bu yapıları kullanmak için telefonun özel API lere sahip olması gereklidir. Nokia nın SMS API si gibi buna imkan veren API lerde tüm telefonlar olmadığından , uygulamaların tüm telefonlarda aynı şekilde çalışması mümkün olmamaktadır.

J2ME nin dökümantasyonu iyidir ve açık standartları destekler ama buna rağmen J2ME geliştiricilerini bazı sorunlar beklemektedir :
1. Mobil telefonların ekran boyutları farklıdır ve J2ME uygulamaları bu ekran boyutlarını algılayarak ekrandaki görüntüleri ayarlamak zorundadır. Fakat firmalarını geliştirdiği farklı ekran özellikleri yüzünden aynı programın farklı telefonlar geliştirilmiş birçok farklı versiyonu olmaktadır.
2. Nokia nın User Interface 'i ve SMS API si gibi firmaların kendi geliştirdiği Java ek özellikleri yüzünden telefonların özelliklerini tam olarak kullanmak için MIDletin farklı platformlar için farklı versiyonları olmak zorundadır.

Nokia bu bahsedilenleri aşmak için belirli bir standart geliştirmiştir. Öncelikle Seri 30,40,60,80 cihazlarda ekran boyutu hep aynıdır. Seri 60 gibi açık standartları olan ve diğer firmalarada lisanslanan cihazlardaki kodlar tüm cihazlarda aynen çalışacaktır.

Nokia nın stratejisi Nokia ya özel API ler geliştirmek değildir. Her yerde aynı yapıya sahip yazılım ortamları sektördeki dinamizmi artıracak ve büyümeye yardımcı olacaktır.

2003 yılı sonunda Dünyada 50-100 milyon kadar seri 40 ve 60 telefon olacağı tahmin edilmektedir.

3.3. Sonuç

J2ME ; birçok yerde kullanılacak olan , az hafıza ihtiyacı gösteren ve yüksek performans beklenmeyen uygulamalar için ideal bir yazılım ortamıdır.



Symbian

Nokianın iki serisi Symbian desteklemektedir : iki elle kullanım için tasarlanmış , tam bir klavyeye sahip olan 80 serisi (9200 Communicator) ve daha standart telefon görünümünde olan 60 serisi (6600 , N-Gage)
Seri 60 platformu Symbian için bazı standartlar sunar. Örneğin Grafik kullanıcı arayüzü gibi. Böylece Seri 60 platformunu kullanan telefonlar için temel bir alt yapı hazırlanmış olur. Nokia , Seri 60 'ı açık bir standart olarak tanımlamış ve diğer üreticilerinde kullanımı ve telefonlarında desteklemeleri için lisanslanabilir bir yapı olarak düzenlemiştir.

4.1 Symbian nın Güçlü Yanları
Symbian işletim sistemini destekleyen telefonlarda hafıza boyutları megabytelar boyutlarında olduklarından geliştiriciler J2ME kullanan telefonlara göre çok daha komplike ve zengin uygulamalar geliştirebilirler.

Symbian geliştirme dili olan C++ çok tanınan bir dil olduğundan ve bu konuda bilgisi olan normal bir C++ geliştiricisini Symbian ortamına adapte etmek kolaydır.

Symbian işletim sistemi altında çalışan programlar ile telefonun tüm özelliklerine erişmek mümkündür : SMS , MMS , WAP , kızılötesi ve BlueTooth portlar ve hatta telefondaki takvim ve rehber gibi uygulamalar. Böylece J2ME ye göre daha entegre ve efektif uygulamalar geliştirilebilir. Genede Symbian ile SIM Kart ve video hafızası gibi bölümlere erişmek imkanlı olmayabilir.

Symbian uygulamaları doğal makina kodunda derlendiğinden uygulamalar J2ME ye göre daha hızlı çalışır.
Birçok Symbianlı telefonda olan SyncML desteği ile telefonlar , PDA ler ve bilgisayarlar arasında rehber , takvim ve email paylaşımı ve senkronizasyonu kolayca gerçekleştirilebilir.
Birçok Symbian lı telefonda kızılötesi ve BlueTooth desteği olduğundan , Telefon şebekesine ihtiyaç kalmadan hızlı bir lokal bağlantı sağlanabilir ve uygulamalar arası veri transferi hızlı olur.
Symbian destekli telefonlardaki yüksek işlemci gücü ve hafıza nedeni ile işlemciyi çok yoğun kullanan ve performans gerektiren uygulamalar , 3 boyutlu oyunlar gibi , geliştirilebilir.

4.2 Kısıtlar
Şu an piyasadaki Symbian lı telefon sayısı J2ME li telefon sayısına göre çok azdır. Yani Symbian lı telefonların pazardaki yeri kısıtlıdır. (Symbian telefon listesi için tıklayınız.)
Symbian işletim sistemi için yazılabilecek olan büyük ve komplike uygulamalar daha fazla bütçe ve geliştirme zamanı gerektirir.
Symbian için yazılan ve cihazların özel bölümlerine (Kızılötesi port gibi) erişen uygulamalar , muhtemelen yeni ve farklı yapıdaki cihazlar için tekrar gözden geçirilmelidir. Çünkü farklı model ve marka telefonlarda bu özel bölümlere erişimler farklı olabilir. Ama Seri 60 destekleyen farklı marka ve modeller var ise bunlar için bir sorun olmaz ve biri geliştirilen bir uygulama hepsi için çalışacaktır.
Nokia Seri 60 için geliştirilmiş olan bir uygulama , Seri 80 için olan bir cihazda çalıştırılmak istenirse , cihazların Kullanıcı arabirimleri ve diğer özellikleri açısından sorun çıkabilir. Fakat donanım uyumsuzluğu yaşanmaz.
C++ ile geliştirilen Symbian uygulamalarında Çöp Toplama (Garbage Collection) ve Hafıza Yönetimi gibi konularda dikkatli olmak gereklidir ve uygulama geliştiren bu konuyu kendi halletmek zorundadır. Oysa J2ME de bu konular daha kolaydır.
Symbian uygulamalar genelde boyut olarak büyük olduklarından OTA ile telefona yüklenemez. Uygulamayı internet üzerinden bilgisayara oradanda Kızılötesi , Blutooth yada kablo yardımı ile telefona yüklemek gereklidir.Uygulama bilgisayar üzerine indirildikten sonra istenildiği kadar kopyalanabilir. Bu kopyalama olayı OTA ile yapılan J2ME yüklemelerinde yapılamaz. Tabiki Symbian uygulamalarının kanunsuz olarak yayılması için bazı çözümler bulunur ama hepsi geliştirme maliyetlerini artırmaktadır.

4.3 Sonuç
Symbian ile uygulama geliştirmek aşağıdaki durumlarda tercih sebebidir :
* Uygulama telefonun üzerindeki kızılötesi veya BlueTooth gibi yapıları kullanarak diğer telefonlar ile bağlantı kuracak ise bu tip bir uygulamayı J2ME yerine Symbian ile geliştirmek gereklidir. Yani telefonun özel yapılarını kullanacak olan uygumalar.
* Uygulama işlemciyi çok kullanıyorsa ve fazla hafıza ihtiyacı var ise ,


Oyun Geliştiricilere Tavsiyeler

Birçok oyun geliştirici J2ME yi daha çok telefonda kullanıldığı için Symbian a tercih etmektedir. Fakat Symbian nında önemli avantajları vardır :

5.1 Kızılötesi ve BlueTooth
Kızılötesi ve BlueTooth bağlantıları telefon hatlarına nazaran hızlı olduklarından Symbian ile çok oyunculu ve fiziksel olarak kullanıcıların belirli bir bölgede olduğu zaman oynanabilen hızlı oyunlar yazılabilir. Bunu J2ME de yapmak mümkün değildir. Ancak J2ME telefonlar bu yapıları desteklerse bu olabilir.
5.2 Hafıza ve İşlemci Gücü
3 boyutlu oyunlar gibi yüksek hafıza ve işlemci gücü gerektiren uygulamaları Symbian ile geliştirmek daha kolaydır. J2ME deki MIDlet boyutu kısıtlamaları ve işlemci güçleri şu an J2ME oyunlarını 80 li yılların bilgisayar oyunlarının özelliklerine benzetmektedir. Oysa Symbian lı telefonlar günümüzdeki oyun kosollarına benzer özellikler göstermek ve hatta belirli bir ağa bağlı olduklarından avantajları artmaktadır. Örneğin N-Gage bu avantajı iyi kullanmış ve ağa bağlı bir oyun konsolu olarak çalışmaktadır.


Yararlanılan Kaynaklar
1. J2ME & Symbian OS : A Platform Comprasion - Forum Nokia -> Version 1.0 (Ocak 2003)