İlk kez Bilgi Üniversitesi´nin bilgisayar bilimleri e-posta listesinde görmüştüm
tspell projesinin adresini, sanırım Mart ayı civarıydı, gidip baktığımda ortada henüz bir şey yoktu. Geçen hafta uğradığımda ise Java ile geliştirilmiş ve hiç de küçümsenmeyecek bir sistem ve güzel bir web sayfası karşıladı beni. Bilişsel bilim (cognitive science) ve doğal dil işleme (NLP - Natural Language Processing) konuları ile uğraşan biri olarak heyecanlandığımı inkâr edemem.
İki Türk programcı tarafından başlatılan ve Türk diline ciddi bir teknolojik hizmet olarak gördüğüm böyle bir projenin varlığı, açık kodlu olması ve paylaşıma açık olarak sunulması beni çok sevindirdi.
Bir hayli iddialı olan projenin
0.2 numaralı sürümü hem doğrudan çalışabilir olarak (200 KB) hem de istenirse Java kodları ile birlikte Internet´ten çekilebiliyor. Geliştiricilerin
Eclipse yazılım geliştirme platformunu önermeleri ve tspell Java kaynak kodlarının Eclipse üzerinden nasıl çekilip derlenebileceğini anlatan teknik bir makale yazmış olmaları ise benim gibi konuya hızlı bir giriş yapmak isteyen ancak Eclipse ve Java konusunda çok deneyimli olmayan programcılar için çok ciddi bir artı puan. Görebildiğim kadarı ile Eclipse bir hayli güçlü bir platform, CVS işlevselliği de dahil olmak üzere her türlü aracı bünyesinde sunuyor ve entegre olarak ekip çalışmasınız kolaylaştırıyor.
Geçenlerde iki dostum PHP ile bir şey yapmaya çalışıyordu. Elemanlardan biri diğerine "şöyle bir şey lazım" dedi. Bunun üzerine çalıştılar ve bir çözüm geliştirdiler. Bu çözümü de elemanlardan birinin bilgisayarında kurulu Apache + MySQL + PHP sistemi üzerinde epey bir denediler, test ettiler. Çalıştığını görüp mutlu oldular. Sistemi uzaktaki makinaya yolladılar.
Mutlulukları pek uzun sürmedi. Sorun çıkmıştı. Epey bir süre uğraştıktan sonra ne olduğunu anladılar. Kullandıkları bir PHP fonksiyonu ofisteki makinada farklı, uzaktaki makinada farklı çalışıyordu. Ama bu nasıl olabilirdi ki? Bir süre sonra bunun da sebebini buldular. Ubuntu geliştiricilerinden biri "ah ne güzel bu açık kodlu sistemler istediğimiz gibi yama yapabiliyor, yamalı bohçaya çevirebiliyoruz, dur ben filanca PHP fonksiyonu daha güzel çalışsın diye ona bir yama yapayım ve PHP'yi o şekilde derleyeyim ve insanlara bunu sunayım herkes faydalansın," demişti. Nitekim ofisteki makinada Ubuntu ve dolayısı ile söz konusu yamayı barındıran bir PHP çalışıyordu. Uzaktaki makina ise Debian idi ve söz konusu yamayı barındırmayan bir PHP çalıştırıyordu.
Şimdi geriye dönüp baktığımıza görüyoruz ki olup bitenlerin PHP ile alakası yok... mu acaba? Basit gibi görünen bu problem bir yanı ile aslında epey çetrefil ve girift bir yönetim + mühendislik (kalitesi) problemi gibi görünüyor bana. Milyonlarca insanın kullandığı bir sistemi geliştirirken akıllıca ve pek çok bakımdan doğru kod yazmak kolay bir iş değil (olsa idi ilgili Ubuntu geliştiricisi PHP'nin o fonksiyonuna bakıp "doğru davranışı bu olmalı!" demez ve yama yapmazdı). Açık kodlu sistemlerde koordinasyon ve yönetim kolay bir iş değil (olsa idi Debian GNU/Linux ve ondan epey şey miras almış olan Ubuntu GNU/Linux'u bir arada kullanmak böyle kritik ve beklenmedik bir probleme yol açmazdı). Taşınabilir olduğu söylenen sistemler mutlak surette taşınabilir değil (olsa idi "o da PHP x sürüm, bu da PHP x sürüm, o halde sorun çıkmaz" cümlesi kolayca kurulabilirdi). Velhasıl kelam, bu mevcut ortam... hala epey bir gerilim barındırıyor çünkü iş yapma kültürü ve mühendislik kalitesi açısından bazı şeylere gözü kapalı güvenemeyeceğimizi gösteriyor (gözü kapalı güvendiğimiz köprüler, asansörler, gökdelenler, metro sistemleri ve benzerlerinden farklı olarak). Denilebilir ki "özgür kod, açık kod ve aynı zamanda beleş kod, beğenmiyorsan kullanma", bu durumda denebilir ki "beleş de bir yere kadar, örneğimizdeki en az iki oluşum yani PHP ve Ubuntu, para kazanmakla da yani 'iş' ile de ilgili oluşumlar o yüzden bu bağlamda ele alınmayı hak ediyorlar."