Ürettikçe Gelişeceğiz
Neden kavramlar ve teknolojik gelişmeler için hep dışa bağımlıyız? Neden üretmeyi, geliştirmeyi, kod yazmayı, kendi kütüphanelerimizi oluşturmayı sevmiyoruz veya tercih etmiyoruz?
Staj yaptığım 1995 senesinde çalıştığım yerin yöneticisi geliştirdiğim programlara haklı olarak “Niye Amerika’yı tekrar keşfediyorsun?” demişti. Çünkü yazdığım uygulamalar Windows’a benzer küçük bir işletim sistemi, Türkçe Derleyici, işletim sistemleri arası dosya transfer ve uzak makineyi kontrol uygulamaları gibi o zamanlar için uçuk kaçan uygulamalardı. Haklıydı aslında. Kısa vadeli düşünürsek çok doğru bir yaklaşım. Hatta uslanmadım 1998 yılında popüler bir Remote Desktop uygulaması olmasına rağmen Panda Future Connection uygulamasını, o zamanlar ICQ olmasına rağmen ChatPhone uygulamasını, Norton Disk Doctor olmasına rağmen CleanDisk uygulamasını yazdım. VideoCapture, OCR okuyucu olan CardReader, Multi-Email Sender, WinPerfect ve onlarca uygulama geldi peşinden. Belki bir çok kişi için bu yaptıklarım zaman öldürmesiydi. Ne gerek vardı orjinalleri var iken bunları yazmaya? Hem de hepsi freeware, shareware kategorisinde ve para kazandırmayan uygulamalar. Aynı yönetici bana Türkiye’de bir yerlere gelmek istiyorsan ERP uygulamaları yazacaksın. Sistem uygulaması veya oyunlar tutmaz, sadece finans uygulamaları tutar demişti. O zamanlar için gerçekten çok doğruydu. Hala da doğru diyebiliriz.
Şimdi diyeceksiniz ki o zaman niye uygulama isimlerini İngilizce seçtin. Hiç sormayın. O ayrı bir konu. Belki de bu yazının ana fikrini pekiştiren bir durum. Yola çıkarken Türkçe isimle çıktığım uygulama ne yazık ki o yıllardaki medyamızın azizliğine uğradı. İsimleri İngilizceye çevirip yurt dışında popülerlik sağlayan bu uygulamalar sonradan aynı medya tarafından alkışlandı. Trajikomik bir durum. Hem dışa bağımlıyız hem de kendi kodumuza güvenmiyoruz değil mi? Ama isim seçerken CEYD-A da aynı hataya düşmedim. İyi gelişme.
Şimdi düşünüyorum da hiç pişman değilim. Eğer bu kadar farklı alanda uygulamalar geliştirmeseydim CEYD-A’yı yazmaya başlayamayacaktım. Tecrübe ve birikim gerçekten çok önemli. Yine aynı mantıkla para kazanmayı ikinci plana atıp freeware türünde geliştiriyorum ama elimde çok iyi bir platform var onu biliyorum. Oluşturduklarım hem tecrübe hem çalıştığım şirkete yazdığım uygulamalarda yardımcı oluyor. Sözüm meclisten dışarı Türkiye’de gerçekten çok iyi yazılımcılar var ama ne yazık ki hep dışa bağımlıyız. Kullandığımız kütüphaneler bir kaç tane hariç hep dış kaynaklı. Umarım yeni nesil kendi kütüphanelerini yazar ve dışa bağımlı olmaktan çıkarız.
Hayatım boyunca yazılımda şu felsefeyi uygulamaya çalıştım:
Kendi kodunu yaz, platformunu kendin yap ama dengeyi sağlamak için yardımcı araçlardan da faydalan. Mümkünse kendi algoritmalarını yaz ki özel performansı ara. Bağımlı olma. Olursan, onun hatası senin de hatan olur.
80’li yılların başında yazılıma başladığım için, her 10 senede bir durum değerlendirmesi yaparım. Ben bu 10 senede ne yaptım diye. Genelde gördüğüm şu idi: Ben kendi çapımda geliştirmeler yaparken, dış dünya da alternatif çözümler yapıyor. Onlar yeni bir kavram geliştirirken de ben alternatifini yazıyorum. Ama geliştirmelerin ilk aşamalarında birbirimizden habersiz ilerliyoruz, benzer yapılar oluşturuyoruz ama oluşan kavramlara farklı isimler veriyoruz. Sonuçta artısıyla eksisiyle benzer kalıplar oluşuyor. Örneğin chatbot geliştirmek için dış dünya Intent ve Entity kavramları oluşturmuş. Ben ise yolumda ilerlerken aynı yapılaşmayı Kurgu ve Şablon Parametreleri olarak adlandırmışım. Sonuçta ikisi de aynı kavram aslında. Buradan şunu çıkarabiliyorum: Çözüm ararken yol sizi aynı çözümlere sürükler.
Kendi kodumuzu yazmak zor biliyorum ama lütfen az da olsa bu konuya eğilelim. Yoksa tamamen dışa bağımlı olacağız.