Serkan Kaba

Karalama Defteri

‘eclipse’ Kategorisi için Arşiv

AmaterasUML: Açık kaynak ve uyumluluk üzerine bir hikaye

Yazan: Serkan Kaba 20 Nisan 2009

Bytecode uyumluluğu ve API uyumluluğu

Java kodlarımızı derlerken derleyiciye -source ve -target parametrelerini vererek belli bir sürüme ait bytecode a derleyebiliyoruz. Tabi burada yeni sürüme ait DİL özelliklerinden feragat ediyoruz. Örnek olarak kodumuzu Java 1.4 için derlemek istersek Generics, Boxing gibi özellikleri kullanamayız. Ancak bu işlem aynı garantiyi JDK’nın sunduğu API için sağlamamaktadır. Örnek olarak Java6 ile yeni gelen bir sınıfı kullanıp Java5 ile çalıştırdığımızda ClassNotFoundException, Java6 ile yeni gelen metodu Java5 ile çalıştırdığımızda NoSuchMethodError hatası alırız. Bu durumda en emin yöntem geliştirirken hedef aldığımız minimum majör sürümü (Örn: Java5) kullanmamız olacaktır. Artık pek çok IDE proje bazında  kullanılan JRE/JDK sürümünü seçmemize izin vermektedir.

AmaterasUML Eclipse eklentisini Java5 ile çalıştıtırken aldığım hata

Gelelim hikayemizin gelişme bölümüne. Eclipse için geliştirilmiş açık kaynaklı bir UML eklentisi olan AmaterasUML tam olarak da bu sorundan müzdarip. Eklenti ikili dosyaları Java5 sisteminde çalışmasına rağmen UML oluşturması için sınıfları ekrana sürüklediğimizde java.lang.NoSuchMethodError: java.util.Arrays.copyOf([Ljava/lang/Object;I)[Ljava/lang/Object; hatası alıyoruz. Bunun sebebi ise Arrays.copyOf() metodunun Java6 ile yeni gelmiş olması.

Nasıl düzelttim?

Gelelim çözüme. Şanslıyız ki eklentimiz açık kaynak kodlu. Aslında bahsetmedim ama sorunun kaynağını bulabilmek için de projenin kaynak kodunu inceledim. Şimdi tek kalan şey bunu düzeltmek, test etmek ve geliştiriciye yollamak. Bunun için Proje kodunu SVN’den indirip açtım ve JDK 1.0′dan beri varolan System.arraycopy() metodunu kullandım. Daha sonra düzenlenmiş kod ile eklenti dosyasını yeniden oluşturup kendi oluşturduğum dosyadan kurdum. Ve, evet eklenti olması gerektiği gibi çalıştı ve sınıflarda UML diyagramı oluşturdu. Ardından yamayı oluşturarak projenin ulaştığım iki sitede (Sourceforge ve Java.net) yer alan hata kayıt sistemlerine bildirdim.

Hata Kayıtları

Yazı kategorisi: eclipse, gezegen, java | 1 Yorum »

İki Kule

Yazan: Serkan Kaba 19 Mart 2009

Dolaşan haberlere[1][2] göre IBM uzun süredir ekonomik sıkıntı yaşayan Sun Microsystems’i 6.5 milyar dolar gibi bir rakama almak için kolları sıvamış durumda. Bundan dolayı da herkes geleceğin ne getireceği konusunda düşünmeye başladı. IBM ve Java pek çok alanda rekabet içinde ürünlere sahip. Donanım alanından çekilmeye başlayan IBM’in Sun’ın donanımdan çok yazılım teknolojilerine göz diktiği söylenmekte.

Şimdi düşündüğümüzde daha kararsız olduğunu gözlemlediğim ancak daha çok platformda çalışan IBM JDK ile Sun JDK’nın birleşmesi ile OpenJDK/IcedTea’nin boşlukları tamamen kapanabilir ve gerçekten pek çok platformda çalışan özgür bir JDK’e kavuşabiliriz. Unutmayalım ki IBM temel platformun özgür olmasını destekliyor. Ama bence Openoffice o kadar şanslı gibi durmuyor. Açık kaynak kodlu olduğundan yokolmasa da IBM Lotus Symphony’ye karşı Openoffice’e destek vermeyebilir. (Zemberek Symphony entegrasyonunu araştırmalı mıyız ne?) Bir de Eclipse platformuna karşılık Netbeans var. Görsel geliştirme ortamı daha iyi olmasına rağmen (ancak hiçbir zaman görsel geliştirme ortamlarının ürettiği kod optimum değildir) yarattığı ekosistemle Eclipse daha geniş bir destek bulmayı başardı. Bu sebepten muhtemelen üstün yanları Eclipse’e entegre edilerek yokolacaklar listesinde yerini alacak. Hatta Adobe Flex’e karşı JavaFX de kaybedenler arasına girebilir.

Bakalım haber gerçekleşir ve iki kule güçlerini birleştirirse neler olacak? Bence en önemli etkisi .Net ve Java kutuplaşmasının derinleşmesi olacak.

1: http://www.nytimes.com/2009/03/19/technology/companies/19sun.html?_r=2&ref=technology
2: http://online.wsj.com/article/SB123735124997967063.html

Yazı kategorisi: eclipse, gezegen, linux, lotus symphony, netbeans, openoffice, yazılım | » yorum bırak;

eclipsIST 2007 ardından

Yazan: Serkan Kaba 30 Nisan 2007

Java ve Eclipse ile ciddi miktarda uğraşan benim için eclipsIST 2007 kaçırılmaz ciddi bir fırsat idi. Hem duyamadığım kaçırdığım bazı gelişmeleri takip etmek hem de camiadan insanlar ile beraber olmak açısından güzeldi. Seminerlerden genel olarak aklımda kalan satır başları şu şekilde.

SWT nin başlattığı platformdan bağımsız ama platformun “native” özellikleri ile uyumlu grafik arayüzü anlayışı masaüstü platformundan diğer alanlara da yayılmış durumda. Web’de RAP (Rich AJAX Platform) için RWT altyapılaki tarayıcıların özelliklerinden geliştiriciyi soyutlamayı hedeflemekte. Mobil platformlar için eRCP altında eSWT ise aynı API kullanılarak her mobil cihazda o cihazın alışılagelmiş davranışını koruyarak aynı fonksiyonaliteyi sağlamaya çabalamakta.

Aslında pek çok kişiye tanıdık gelebilir ama açık kaynak kodlu yazılımlarla ilgili Eclipse topluluğununda uyguladığı yöntemden bahsedildi. Çekirden platform üzerinde herkesin ortak çalışarak ortak bir katma değer üretmesi ve bunun üzerine ticari ürünler üreterek pazara sunması. Evet bu konuda Eclipse büyük bir başarı elde etti. Eskiden “Meta IDE” diye tabir ettiğim Eclipse artık üzerine masaüstü ve web tabanlı uygulamaların da geliştirildiği bir “Platform” halini aldı.

Jochen Krause‘nin RAP sunumu gerçektenbeni en çok etkileyen ve zevkle dinlediğim sunum oldu. Eclipse çekirdeğinin sunucu tarafına yerleştirilmesi üstüne RWT yazılması ile tarayıcı neredeyse (dağıtık yapı ve ağ gecikmelerinden dolayı masaüstü uygulamalarına göre bazı kısıtlara sahip) bir masaüstü ekranı haline getirilmiş durumda (Bu Haziran’da çıkacak sürümde ne yazık ki yer almayacakmış)

Bunun dışında başarı hikayeleri kısmında TCMB’nin deneyimlerini dinledim. Yaklaşık 10-12 adet Java çatısını (herkes framework kelimesini farklı çeviriyor) entegre olarak kullanacak şekilde yeni bir kurum kültürü oluşturmuşlar. Kendileri alçakgönüllü yaklaşsa da kemikleşmiş COBOL kültürü olan için bence büyük bir başarı bu radikal değişim.

Birde Haziran’da diğer Eclipse projeleri ile eş zamanlı çıkacak WTP 2.0′da yer alacak yenilikleri görme şansımız oldu. JSF ve JPA için gerçekten hoşuma giden araçlar geliyor. Bu arada bu sunu sayesinde daha önce sadece adını duyduğum JPA ile tanışma fırsatı yakaladım. Bu konuda ayrıca araştırma yapmak istiyorum.

En son olarak Görkem Ercan‘ın dile getirdiği bir sıkıntıyı aktararak kapatayım yazıyı. eSWT Mobil QT portunda ciddi anlamda insan kaynağı eksiği varmış. Bu konuda destek bekliyorlar.

Yazı kategorisi: eclipse, gezegen, java | 1 Yorum »