22 September 2023

Açık Kaynak Kodu - Geçmiş Zaman Olur ki Cihan Değer

Açık Kaynak Kodu

Geçmiş zaman olur ki, hayali cihan değer” atasözümüz, konumuza yakıştı mı bilemedim. Anlamını ne kadar beğendiğimi her fırsatta ifade etmekten kaçınmadığımı söylemek isterim. Günümüzde kazandığımız tüketim toplumu alışkanlıklarımızla, bırakın yakın geçmişi dünü bile hatırlamayarak yaşamanın, kaçınılmazlığı deneyimliyoruz. Unutmamak gerekir. Geleceği tasarlamanın cazibesi böylesine geniş kapsamlı tarihi hikâyelerle ancak renkleniyor. Yazılım alanında öyle süreçlerden geçildi ki şimdi dönüp bakılacak olunsa, incelense, araştırılsa hayal bile edemeyecek değerlerin nasıl fayda sağlandığından ders çıkarılabilir.

1972/77 yılları arasında üniversite öğrencilik yaşamımda üst seviye dillerden Fortran ile tanışmış ve yazılım derslerini iple çeker olmuştum. Samimiyetle itiraf etmeliyim ki anabilgisayarı “mainframe”, gelişmiş bir hesap makinesi olarak algılamıştım. Kalbim elektronik için atmaya programlanmıştı ve vazgeçmem akıl dışıydı.

1980 - 40 yıl önce elektronik mühendisleri donanım ağırlıklı ürün geliştirme yetilerini kusursuz mantık devreleri üzerine kurguluyorlardı. Matematiksel girdi ve çıktı fonksiyonları ve hesapları neticesinde çözümler beklenen sonuçları isabetle yerine getiriyordu. Yalnızca devre üzerinde işaretlerin akış hızına bağlı olarak bir çırpıda karar bilgisine erişiliyordu. Fizik en yakın kapsama alanı ve komşu bilim dalı olarak öne çıkmaktaydı.

Devre analizleri, sentezler, sinyal işleme düzenekleri geleneksel yapının temel taşlarını oluşturuyordu. Hele bir devrenin yüksek frekanslara verdiği tepkinin dikkate alınması başlı başına kaygıya sebep oluyordu.

Mutluyduk, planlar, hizmet sağlayan verimli ve etkin çalışan çözümlerle neticeleniyordu. Telekom altyapısını oluşturan, kesintisiz işleyen ağ, böylesine karmaşık bir uğraşın eseri olarak hayatımızda yerini almıştı. İletişimin bugünkü şartlara dönüşeceğini hayal ediyor muyduk? Soruya o zamanlarda cevap oluşturabilecek yeterli veri ve öngörü olmadığı bir gerçekti. Hayranlık kısa zamanda yerini hüsrana terk etmeye başlamıştı. Her defasında tutkuyla bitirilen çözümler esnek olmaktan uzaktı. En küçük istek yadırganıyor ve mücadele sürdürülebilirlikten uzaklaşıyordu. Çeşitlilik, değişiklik kontrol sınırlarına dayanmış, yalınlaştırma ihtiyacı en üst seviyeye çıkmıştı.

5 yıl sonra 1985 yıllarına varıldığında donanım bileşenleri tamamen yenilenmiş ve mikro işlemcilerle tanışıklığımız olağan boyutlara ulaşmıştı. Düşünmüşümdür, yeni buluşlar ve icatlar bize huzursuzluk yaşattı mı? Tüm devreler “CMOS” ve yazılım taptaze araçları kullanımımıza sunmuştu. Tertemiz beyaz sayfa açılmış yaygın esneklik ufkumuzu genişletmişti. Evet, tedirgin olunmuştu, ancak özveri, öğrenme merakı, yekpare ortamı sarmalamıştı. Üniversitelerden yeni mezun arkadaşlarımız ucu ucuna yetişmişlerdi teknoloji kırılımına. Hepimizin kolları sıvamış ve seyir yönümüzü vakit yitirmeden değiştirmeye çalışıyorduk. Hevesle masa başına dönülmüş ve büyülenircesine öğrenme küreklerine asılmıştık.

Mikro elektronik yazılım çağını tetiklemişti.

Mikro işlemciyi seçmek projenin kaderini belirliyordu. Tercih beraberinde marka bağımlı “Asambler” diline de karar vermek anlamını taşıyordu. Ortak komut dizisi olmadığı gibi derleyiciler de (asambler/makine dili dönüştürücü yazılım) bütünün parçasıydı. Teknoloji yönetim sistemleri kurgusunu fazlasıyla vurgulayarak yeniden biçimlendiriyordu. Dolayısıyla sürüklenişe izin verilmemiş, yönetsel kabiliyetlerin güncellenmesi belirlenmiş ve planlanmıştı. Yazılım geliştirme süreci, mimari yapının şekilsel olarak modellenmesi neticesinde başlatılıyordu. Ardından parçaların belirlenmesi ile amaç açık ve net olarak tanımlanır oldu. Akış tabloları çizilir, belgeler yazılır, tartışılır, onaylar alınır, sonrasında kodlama gerçekleştirilirdi. Amaçlanan görevi yerine getirecek kodlar dizisi makine diline çevrilir ve kalıcı belleklere yakılırdı.

Bu noktada önemli bir aşamaya değinmeden geçemeyeceğim. İşlemciler kalıcı bellekten almış oldukları komutları icra sürecinde elbette kusurlar oluşmaktaydı. Testler yanlışlığın veya hatanın yazılım kodları sıralamasında hangi satırda oluştuğunu ortaya koyamamaktaydı. Böylece böcekleri bulmak ve düzeltmeleri yeni sürümlere eklemek zahmetliydi.

İmdadımıza kod analiz cihazları yetişmişti. Vantuzlarını mikro işlemcilerin ayaklarına yerleştiriyor ve o anda icra edilen komut asambler dilinde ekrana yansıyordu. Mucizevi bu araçlar ters mühendislikle bozuklukları tespit ediyordu.

Şimdi düşünüyorum da açık kaynak kodu daha o zaman mı icat edilmişti. İkili “Binary” veriden kod üretmek imkânlı hale gelmiş ve kolayca uygulanıyordu. Dileyen her uzman ve kuruluş işlemcide koşan kodu asambler diline çevirebiliyor ve anlamını çıkarmayı başarabiliyordu. Açıkçası kâğıt üzerine taşınan fikirlerin doğrulanması kuvvetli olasılık dâhilindeydi. Kodların karşılarına açıklama yazmanın zorunlu olduğu bir dönemden bahsediyoruz.

Açık kaynak yaklaşımından faydalanma kuşkusuz ciddi fayda sağlamıştı. Öte yandan alınan risklerin farkındalığı sıkıntıların doğmadan çözülmesinde öncü rol oynamıştır. Getirileri kısaca sıralamak isterim.

Ayrıntılı belgelendirilmiş, test edilmiş yazılımın kurgusunu anlamak kolaylaşmıştı. Değişen sorumluluklar çerçevesinden yeni mühendislerin uyumluluğu hızlanmıştı. Aradığımız kıt insan kaynağını daha kolay bulabiliyor ve öğrenim süresini kısaltabiliyorduk. Birimler arasında iletişim araştırma/geliştirme ile saha ve fabrika, düzgün ve pürüzsüz yürütülüyordu. İlerleyen zamanda yazılım yamalarının servis ve üretim mühendisliği bünyesinde gerçekleştirilmesi yeni ürün geliştirme zamanlaması üzerinde inanılmaz verimliliğe sebep olmuştu.

Geçmiş zaman olur ki - kaynak kodları şirket içinde paylaşılmış ve üstün beceriler ile özlenen kıvrak koşu yöntemi benimsenmiştir. İzleme ve takip sistemleri sayesinde kimin hangi kodu ilave ettiği bilinir olmuştur. Böylece anlaşılırlık artarken dağınıklık da ortadan kaldırılmıştır. Yetiştirici yanı ile öğrenme aşaması kesintisiz, zincirleme devam edecek kabiliyete kavuşmuştu.

Rekabetçiliği yitirmemek ve yarışta ön sıralarda yer almak için, kitle katılımcı geliştirme, bakış açımızı genişletmektedir. Özünde müşteri ile buluşmayı hızlandıracak sistemleri barındıran açık kaynak kodu girişiminden kamu seviyesinde yararlanmak kaçınılmaz olacaktır. Her projede, neredeyse aynı varsayımla, baştan itibaren modelin ve prensiplerin beyan edilmesi ve kısıtlamaların duyurulması gereklidir. Prensipler; hassas, gizli içeriklerin ayrıştırılması, güvenliği ve belirlenmesinde yol gösterici araçları tanımlamaktadır. Açık kaynak kodlu ürünleri Yazılım Hizmeti “SAAS” olarak pazarlanması ve düzgün bir iş planına dayandırılması, ticari gereksinimi karşılayacaktır. Yukarı ve çapraz satışlar, tabandan yayılan ortak altyapı çizgisinin üzerinde yeşerecektir.

Yıllar önce hareket programının özgünlük esasına dayandırıldığını hayal edebildiğinizi düşünüyorum. Cihana değer mi? kıymetlendirmeyi sizin yetenekli bilgeliğinize bırakıyorum.

İcrayı San’at Eyle

Sağlıcakla kalın.