//
Şu anda okuduğunuz...
açık kaynak kod, Özgür yazılım söyleşileri, özgür yazılım, bilişim, programlama, söyleşi

Özgür Yazılım Deneyimleri – 1: `Fuzuli Programlama Dili` Ekibi ile Söyleşi

Fuzuli adında yeni bir programlama dili geliştirmek icin yola çıktıklarını İsmail`den duyduğumda heyecanlandım. İsmail`i ve Mehmet Hakan ile kafalarındaki projeleri az da olsa bildiğimden ve `eğlenmek` amaçlı bir çalışma olduğundan heyecanlanmamak elde değil. Kesinlikle ayrıntılarını bilmemiz gerektiğini düşünüyorum. Bu söyleşi de bir süredir planladığım Özgür Yazılım Söyleşileri`lerinin ilki olacak.

–   Selamlar, öncelikle kendinizi tanıtır mısınız?

Fuzuli çekirdek ekibi başlangıçta üç kişiden oluştu. Ekibin başındaki Mehmet Hakan Satman aynı zamanda İstanbul Üniversitesi Ekonometri Bölümü Yöneylem Anabilim Dalı’nda öğretim üyesi olarak çalışıyor. Programcılığı mesleğinde bir araç ve hobi olarak icra ediyor. Hakan, Fuzuli interpreter ve çekirdek kütüphanelerini yazdı. İsmail Doğan, projenin ikinci yürütücü elemanı. UPS kargo firmasında Bilgi İşlem altyapısından sorumlu. “Data Networks”, “Servers & Storage & Virtualization” ve “Voice Networks” konularına hizmet eden 3 temel birimi yönetiyor. İsmail, test framework yazımında ve Linux paketlerinin oluşturulmasında görev aldı. A.Gökhan Satman ise ekibin en genç üyesi ve Enformatik alanında yüksek lisans yapıyor. Gökhan, web sitesi ve dökümantasyon sistemini dizayn etti. Üç proje çalışanı farklı işler yapmış gibi görünse de dilin tasarlanması sırasında sık sık bir araya gelip tartıştılar. Yukarıdaki hiyerarşi dostça bir işbirliğinin bir resmidir.

–   Neden `Fuzuli`, neden yeni bir programlama dili?

Biz boş zamanımız olduğunda mutlaka bir IT projesi geliştiririz. Bu projelerin bazıları tamamlanır, bazıları ise yarım kalır. Yarım kalanlardan ise mutlaka bir miktar deneyim yanımıza kâr kalır. Ancak bilgisayarla oyun oynuyorsanız bir stok takip veya ERP sistemi yazmak size fazlaca keyif vermez. Bir interpreter veya compiler yazmak; ucu bucağı olmayan, entelektüel gereksinimleri ve bunun karşılığında sağladığı manevi fayda ile diğer işlerle kıyaslanamayacak bir iş. Bu yüzden bir programlama dili yazmaya koyulduk. Ancak tabi ki rasyonel bir gereksinim değildir bu. İnsanlığın bizce yeni bir dile ihtiyacı yoktur. Var olan bilgisayar mimarilerine göre hali hazırdaki diller istenen verimi zaten vermektedir.

Bunun yanında milletçe “Amerika’yı yeniden mi keşfedeceğiz” mantığından sıyrılıp bazı şeylere sıfırdan başlamamız ve bebek gibi temelden öğrenmemiz gerekiyor. Yoksa bir gün ipin ucunu kaçırabiliriz. Bu bağlamda da Fuzuli, faziletli bir iş gibi durur. Ama şunu mutlaka söylemek gerekir: Bizim ulvi amaçlarımız yoktu. Ancak yapılan işin ulvi sonuçları olabilir. En azından bir başlangıçlar silsilesi.

– Bu programlama dili hakkında ayrıntılı bilgiyi nereden edinebiliriz?

Fuzuli’nin anasayfası http://www.fuzuliproject.org . Sitenin Türkçe ve İngilizce dil seçenekleri var ancak Türkçe kısım biraz zayıf. Malum, dili yazanlar Türk olabilir ama İngilizce baskın anlamda bir milletin değil, şu an için dünyanın dilidir. Tüm dünyaya “Bakın biz ne yaptık” demenin yolu olarak çoğunlukla İngilizce içerik oluşturduk. Bunun eksik bir hâl olduğunun farkındayız ve Türkçe dil desteğini sonradan katılacak arkadaşlarla gidermek istiyoruz. Anasayfanın yanında http://stdioe.blogspot.com/search/label/fuzuli adresinde İngilizce, http://stdioe-tr.blogspot.com ve http://stringtokenizer.blogspot.com adreslerinde ise Türkçe makaleler bulunuyor. Ve sanırım bizim dışımızda Fuzuli’yle ilgili yazılıp çizilmeye başlanmış yeni içerikler de oluşuyor.

 – Sizce insanlar neden bu dili denemeliler?

Özellikle bilgisayar bilimlerinde eğitim gören ve kendini yazılım alanında geliştirmek isteyen kişilerin derinlemesine bilmesi gereken bazı diller vardır. Örneğin C diline hakim olmayan bir yazılım uzmanının diğer dillerdeki hakimiyeti projenin büyüklük derecesine göre tartışılabilir. C, C++ ve Java aynı dil ailesinin ünlü birer üyeleridir. Diğer bir taraftan Lisp ve Scheme özellikle yapay zeka uygulamalarında kullanılagelmiş yine başka bir ailenin ünlü üyeleridir. R dili istatistiksel hesaplamalarda kullanılan Scheme ‘i temel alan başka bir dildir. Fuzuli ise şu ana kadar kullandığımız ve hoşumuza gitmiş ne kadar güzel özellik varsa içine entegre etmeye çalıştığımız bir dildir. Onda yazılan programlar Lisp’e benzer ancak C bilen biri hemen kodu okumakta zorluk çekmez. Fuzuli bu kapsam içinde faydalı bir deneyimdir. Ancak Fuzuli’yi hiç denememiş iyi bir C++ programcısı, hiçbir şey kaybetmemiş demektir.

–  Projenin (ya da isterseniz eğlencenin diyelim) planlanmış(ya da emprovize) bir sonraki aşamaları ne olabilir?

Fuzuli şu an için derlenmiş dinamik kütüphanelerden fonksiyon çağırabiliyor. Bu özelliği sayesinde onu hızlıca geliştirebiliyoruz. Bunun yanında Java virtual machine ile entegrasyonu sağlayıp Fuzuli ‘ye Java dünyasına açılan bir kapı koymayı düşünüyoruz.

Yavaş çalışan bir artık toplayıcımız var. Dili ilk duyurduğumuz günden çok daha iyi olmasına rağmen hala hızlı değil. Referans sayma metodu gibi genel geçer bir yöntem kullanıyoruz. Ancak implementasyon bu konuda biraz zayıf gibi.

Belki, ileriki bir dönemde compiler yazmak istiyoruz. Dil üzerinde bir şeyler yazmayı daha kolay hale getirecek bir IDE yazmayı da düşünüyoruz. Ve tabi, 3 kişiyiz. İşlerden arta kalan vakit neye izin verirse ona el atacağız. Biz dilden ne beklenir iyi biliyoruz. Bu beklentiyi de 3 kişiyle asla karşılayamayız, onu da biliyoruz. Ama zaten eğlence amaçlı yola çıktık… Özetle projenin bir sonraki aşamasında da eğlenmeyi planlıyoruz.

– Özgür yazılımcı olduğunuzu biliyorum. Neden Özgür yazılım, neden açık kaynak kod?

Bu, üzerine oldukça fazla araştırma yapılan ama tam olarak cevaplandırılamayan bir konu. İnsanlar açık kaynak yazılım projelerinde çalışanları paraya ihtiyacı olmayan tuzu kuru insanlar gibi görme eğiliminde oluyorlar. Durum böyle değildir. Batıdaki açık kaynak yazılım projeleri, proje elemanlarının daha iyi bir işe girmesi için iyi birer referanstır. Firmalar da bu projelerde elemanlarını çalıştırırlar. Çünkü bu projeler gerçekten hiçbir firmada elde edilemeyecek kadar derin deneyimler sağlar. Ancak ülkemizde durum böyle değildir, özgür yazılım “bedava kullanılabilen” bir yazılımdır. Kişiler yazdıkları üç satır kodu herkesten gizlemek eğilimindedir. Firmalar bu projelerde kazanılan deneyimleri göz ardı edebilmektedir. Bu iş amme hizmeti olarak görülür ve bu tür işlerde çalışanlar ticari zekaya sahip olmamakla suçlanabilir.

Fuzuli ‘nin ticari bir beklentisi yoktur. “Bakın biz ne yaptık” demenin en güzel yolu onun kaynağını açıp özgürleştirmekti ve böyle yaparak da “Gelin birlikte yapmaya devam edelim” demiş olduk.

– Fuzuli`yi Microsoft ortamına uyarlama konusunda düşünceleriniz?

Microsoft ürünleri bizim zayıf karnımız. Fuzuli ‘yi CYGWIN ile derleyebildiğimizde sevindik ancak CYGWIN, yapay bir Linux ortamı sunduğu için X sunucusuna da ihtiyaç duyuyor. Bu yüzden Fuzuli ‘ye GUI kütüphanesi eklediğimiz günden beri Windows’tan biraz ümidi kestik. İçinde Fuzuli kurulu gelen 50 mb civarında minik bir Linux dağıtımını Windows’ta çalışacak şekilde dağıtmaya karar verdik, bu iş hazırlanıyor, yakında sunacağız. Bunun yanında Fuzuli ‘yi Windows’ta tüm paketleriyle birlikte derleyebilecek arkadaşlara ihtiyacımız var. Microsoft desteği vermek istiyoruz. Hatta MacOsX ‘de çalışan bir Fuzuli hiç de fuzuli olmazdı 🙂

 – Sizce istekliler bu projeye destek vermek için neler yapabilir?

Sitemizde `Support Us` kısmındaki logolardan birini sitelerine yerleştirebilirler. Dili öğrenip bug bulma, dökümantasyonu tamamlama, çeviri yapma, yeni örnekler geliştirme, Fuzuli hakkında Türkçe ve İngilizce bilgilendirici makaleler yazma (blog sitemizde) gibi konularda destek almaya hazırız. İstekliler mhsatman@yahoo.com ve İsmail@ismaildogan.com.tr adreslerine mail atabilirler.

Teşekkürler ve başarılar

Bu sitede sunulan yazıların belge lisansları aksi belirtilmediği sürece: by-nc-sa. (CC lisansları hakkında detaylı bilgi için tıklayınız). 
Bütün yazılar kaynak göstermek şartıyla çoğaltılabilir, yazılardan alıntı yapılabilir. 
Özgür yazılım söyleşileri - https://enisden.wordpress.com/2012/06/26/ozgur-yazilim-deneyimleri-ve-soylesileri/

About enisden

Muğla Sıtkı Koçman Üniversitesi Bilgisayar Mühendisliği Bölümünde öğretim üyesiyim. "Bilgiyi paylaştıkça artar." ilkesine inanıyorum. Bu blogda; akademik dünya, araştırma yöntemleri, eğitim ve bilgisayar mühendisliği çoğunlukta olmak üzere, hayata dair deneyim ve bilgilerimi paylaşmayı hedefliyorum.

Tartışma

Trackbacks/Pingbacks

  1. Geri bildirim: Özgür Yazılım Söyleşileri « enisden - 29 Haziran 2012

  2. Geri bildirim: Özgür Yazılım Deneyimleri ve Söyleşileri « enisden - 29 Haziran 2012

Yorum bırakın

“Tanrım, Bana değiştirebileceğim şeyler için CESARET, Değiştiremeyeceğim şeyler için SABIR, Ve her iki şey arasındaki farkı anlayabilmek için BİLGELİK ver.”

“God grant me the serenity to accept the things I cannot change; courage to change the things I can; and wisdom to know the difference.”
(P.R. Niebuhr)

Özgürlük ve bağımsızlık benim karakterimdir.” (Mustafa Kemal ATATÜRK)

TEGV

TEGV - eĞİTİM İÇİN BEN DE VARIM

Kategoriler