J2ME nedir?
J2me(java 2 micro edition) cep telefonları, pda’ler, printerlar gibi gömülü sistemler için üretilmiş bir java teknolojisidir. J2ME de kullanılan temel kütüphaneler topluluğu olan cldc (connected limited device configuration ) 512 kb tan ufak hafızası ve sınırlı ağ bağlantısı olan cihazlar için tasarlanmış şu an için tercih edilen konfigürasyondur.midp(mobile information device profile ) cldc için kullanılan en yaygın profildir ve ikisi birlikte j2me nin ana yapısını oluşturup hedeflenen cihazlar için uygulama ortamı sunarlar. cldc nin versiyonları arasında cldc 1.0 ve cldc 1.1 bulunmaktadır. midp versiyonları arasında ise midp 1.0, midp 2.0, midp 3.0 bulunmaktadır. şuan için en çok kullanılan versiyonları cldc 1.1 ve midp 2.0 dır. bunların üstüne üreticiler ihtiyaçları olan opsiyonel paketleri eklerler (advanced multimedia api gibi).
J2ME nin Avantajları
1. birçok çihaz tarafından desteklenmesi; blackberry, nokia, samsung ve sony ericsson gibi bir çok telefon üreticisi tarafından bugün desteklenmektedir.
2. öğrenme zamanının kısa olması; java diline hakim bir uygulama geliştirici j2me dilini çok zorlanmadan öğrenebilir.
3. takip eden topluluğun ve döküman kaynağının çokluğu ; i̇nternetten birçok dökümana ulaşabilir ve uygulama geliştirme ortamını kullanırken bir ücret ödemezsiniz. yani geliştirme ortamıda ücretsizdir. yine bir çok açık kaynak kodlu projeler bulabilmek mümkün. örn https://lwuit.dev.java.net/J2ME nin Dezavantajları
1. Performansının nisbeten düşük olması; özellikle native uygulamalar ile kıyaslandığında yavaş olması. telefonun işletim sistemi ile uygulamanız arasına java kvm girdiği için uygulamanızın performansı nisbeten düşmektedir.2. Cihazın özelliklerine ulaşımdaki limitasyon; j2me üzerinde uygulama geliştirirken sadece j2me nin yeteneklerini kullanabilirsiniz. dolayısıla işletim sisteminin yeteneklerine (vibration, application list vs..) erişemezsiniz. yine arka tarafta servis gibi çalışabilecek uygulamalar geliştiremezsiniz.
3. Üreticilerin uyarlamadaki (implementation) tutarsızlıkları; bence en önemli sorunlardan bir tanesi budur. java nın bildiğimiz “bir kere geliştir, her yerde çalıştır” yaklaşımı j2me için çok geçerli olan bir durum değil. üreticilerin j2me yi cihazlara uyarlarken tutarsız davranmaları markalar bazında, hatta model bazında sorunlar doğuruyor.
4. Yeni gelişen mobil i̇şletim sistemleri j2me desteği vermiyor; meego, iphone, blackberry qnx gibi işletim sistemleri j2me desteği vermeyecek. örnek olarak nokia qt teknolojisiyle native geliştirmeyi tavsiye ediyor. bu gelişme bundan once j2me deki yaşadığı deneyimlerin nokia yı yeterince tatmin etmediğinin bir göstergesi olabilir.
J2ME nin Geleceği
Oracle java teknolojisini satın aldıktan sonra j2me yi iyileştirme adına yapacağı yeniliklerini duyurdu. http://www.oracle.com/technetwork/java/javame/overview/javameroadmap-173077.htmlama bu yeni teknolojiler entegre edilse dahi j2me deneyimi diğer özgün platform (native platform) deneyimleri kadar etkili olamayacaktır. bu noktada özgün platform deneyimi sunan cross-platformlar alternatif olarak kullanılabilir. örneğin türk mühendisler tarafından geliştirilen smartface designer size bu deneyimi sunuyor ve ayrıca cross-platform mantığıyla uygulamanız bir çok platformda özgün mimaride çalışıyor. i̇sterseniz smartface designerın ücretsiz lisansını kullanarak uygulamalar geliştirebilir ve bu uygulamalardan para kazanabilirsiniz.