Görüşler

Salih Cenap Baydar yazdı: Yerli ve milli yazılım meselemiz

Salih Cenap Baydar yazdı: Yerli ve milli yazılım meselemiz

Teknoloji uzmanı Salih Cenap Baydar, kısa süre önce tanıtımı yapılan PTT Messenger uygulamasına ‘açık kaynak lisanslarındaki sözleşme maddelerinin ihlal edildiği gerekçesiyle’ sert eleştiriler yöneltiyor.

Başbakan Yardımcısı ve Hükümet Sözcüsü Bekir Bozdağ, 5 Şubat 2018’de Bakanlar Kurulu sonrası düzenlenen basın toplantısında, PTT Genel Müdürlüğü’nce yüzde yüz yerli ve milli olan yeni bir haberleşme sistemi geliştirildiğini söyledi. Bozdağ, güvenli iletişim konusunda dışa bağımlılığı gideren, “yüzde yüz milli” mühendislik imkanlarıyla geliştirilen, anlık mesajlaşma, anlık grup mesajlaşması, sesli ve görüntülü görüşme, fotoğraf, video, konum ve dosya paylaşımını tek bir platformda güvenli bir altyapıyla sağlayan, kurumların kendi güvenli ağları ve sunucularında çalışan bu yeni haberleşme sisteminin “yerli whatsapp” olarak düşünülebileceğini ifade etti. Ne kadar güzel, ne kadar heyecan ve umut verici değil mi? Açıklamanın üzerinden daha bir gün bile geçmeden bir ekşisözlük kullanıcısı “yüzde yüz yerli ve milli” diye lanse edilen mobil uygulamanın https://messenger.ptt.gov.tr/apps/pttmessenger.apk adresinde yayınlanan kurulum (apk) dosyasını inceleyerek, pek de öyle “yerli ve milli” olmadığını ifşa ediverdi.

PTT Messenger isimli mesajlaşma yazılımı -bırakın tamamen yerli olmayı- neredeyse yüzde yüz oranında -ismi gibi- yabancı menşeliydi. PTT, apar topar uygulamanın kurulum dosyasını sitesinden kaldırdı. Artık https://messenger.ptt.gov.tr/ adresine girenler şu açıklamayla karşılaşıyor:

Sitemizde kullanıcıların doğrudan indirebileceği bir uygulama dosyası bulunmamaktadır. PttMessenger’ı yalnızca kurumlar kullanabilir. Çeşitli internet sitelerinde sunulan PttMessenger adlı dosyalar, PTT A.Ş.’nin kurumsal anlık mesajlaşma ve haberleşme çözümü olan PttMessenger değildir.

Belli ki projenin başındakiler, yaşanan skandalı, uygulamaya erişimi kısıtlayarak örtbas edebileceklerini düşündüler. Peki, gerçekte olan biten neydi? Konuyu merak edip, teknik detaylar içinde boğulmadan anlamak isteyenler için izah etmeye çalışacağım...

18-02/19/screenshot_1.jpg

YERLİ YAZILIM NE DEMEK?

Cep telefonlarımızda kullandığımız WhatsApp, Twitter, Facebook gibi uygulamaların, hatta oyunların hepsi birer yazılım. Başka bir deyişle belli bilgisayar dillerinde yazılıp geliştirilen programlar. Böyle bir uygulama geliştirmek isteyen birinin, ilgili bilgisayar dilini iyice öğrenmesi ve -mesela bir mesajlaşma programı yapabilmek için- o dilde binlerce satır kod yazması gerekiyor. O satırlarda programın nasıl açılacağını, nerelerle iletişim kuracağını, ekranda hangi anda neler görüntüleyeceğini, nereye, hangi düğmeye, hangi noktaya dokunulursa ne işlem yapılacağını tek tek belirlemesi icap ediyor. İşte “yüzde yüz yerli ve milli” bir uygulama denildiğinde tüm bu kodların yerli yazılımcılarca sıfırdan yazmış olduğu bir yazılım anlaşılıyor.

Bir otomobil benzetmesiyle anlatmaya çalışalım: “Yüzde yüz” yerli ve milli bir otomobil ürettik diye bir iddia ile ortaya çıkarsanız, düz bir mantıkla, ürettiğiniz otomobilin motorundan kaportasına, vites kutusundan, farlarına, lastiklerinden antenlerine, camlarından fren pedallarına kadar istisnasız her parçasını sizin üretmiş olmanız beklenir. Sokaktaki adamın beklentisi bu yönde olacaktır. Endüstriyi biraz olsun bilenler ise hemen bunun pek de gerçekçi bir beklenti sayılmayacağını söyleyeceklerdir.

Bugün küresel düzeyde satış yapan otomobil üreticilerinin hiçbiri yüzde yüz yerli olmak iddiasında değildir. Otomobillerin parçaları onlarca değişik ülkede üretilebilir. Tasarım ve motor gibi birkaç temel unsur dışında kalan parçaların her birini yerli olarak üretmeye kalkmak anlamsız bir çaba, gereksiz bir yük gibi algılanır. Neticede belirleyici (ve yerli ve milli olması arzu edilen) zekâ, her bir parçayı tasarlayıp bir araya getiren ve bir arada verimli şekilde işletmeyi başaran zekâdır.

Yazılım mühendisliğinde de durum çok farklı değildir.

Tıpkı otomobiller gibi yazılımlar da alt bileşenlerden oluşur ve yine tıpkı otomobil üretiminde olduğu gibi tüm parçaları kendiniz üretmezsiniz. Bir uygulamayı geliştirirken en temel işlevler için yeniden kod yazmak, tekerleği yeniden keşfetmek gibidir. Mesela dokunmatik ekranda parmağınızı ekranın neresine dokundurduğunuzu algılayacak kodu baştan yazmanıza gerek yoktur. Bunun için üzerinde çalıştığınız platform, bir takım hazır kütüphaneler sağlar. Bu kütüphaneleri kablolara, cıvatalara, vidalara, çarklara, rulmanlara benzetebiliriz. Otomobil üretiminde, tarif ettiğimiz temel bileşenler kullanılarak -mesela vites kutusu gibi- fonksiyonu belirlenmiş daha üst seviye bileşenler üretilir. Ama bunları üretmiş olmak hala otomobil üretimini tamamlamış olmak anlamına gelmez.

Yazılım geliştirmede de orta seviye bileşenler için kullanılan kütüphaneler vardır. Bunların bazıları ücreti mukabili satılan ticari ürünlerdir, bazıları ise açık kaynak kodlu, ücretsiz kütüphanelerdir. İşte PTT Messenger skandalının doğru anlaşılabilmesi için “açık kaynak kodlu yazılım” ne demektir bilmek, anlamak gerekir.

AÇIK KAYNAK KODLU YAZILIM

Açık kaynak kodlu yazılımları anlatmak için bir pasta benzetmesine başvuracağız. Pastaneden satın aldığımız bir çikolatalı yaş pasta düşünelim. Bu lezzetli pastaya, yapımı süreci hakkında hiçbir şey bilmeden sahip oluruz. Pasta şefinin kullandığı tarif sırdır. Pastamız üretilirken hangi yağın, ne marka unun, ne tür çikolatanın kullanıldığını, içine hangi koruyucu, lezzet arttırıcı sunî kimyasalların konulduğunu bilmemiz imkânsızdır. Üretim şartlarını bilmek de mümkün değildir. Hijyen kurallarına dikkat edildi mi? Kullanılan malzemeler farelerin, böceklerin erişemeyeceği yerlerde depolandı mı? Pastacı pastamızı hazırlarken ellerini temizce yıkamış mıydı bilemeyiz. Yapabileceğimiz biraz pastacımıza güvenmek, biraz da konu üzerinde fazla düşünmemektir.

Şimdi başka türlü bir pastane tasavvur edelim. Satılan pastalar ulaşamayacağımız yerlerde, kapalı kapılar ardında değil gözümüzün önünde yapılıyor. Kullanılan bütün malzemeleri tek tek inceleyebiliyoruz. Dahası, istersek kullanılan malzeme listesiyle birlikte, yaptıkları pastanın en ince detaylarına kadar yazılmış bir tarifini de ücretsiz veriyorlar. Bu malzemeleri ve bu tarifi kullanarak ürettiğimiz pastanın aynısını siz kendiniz de üretebilirsiniz, hatta eğer dilerseniz tarifi geliştirip pastanıza yeni lezzetler katabilirsiniz diyorlar. Yalnız tek şartımız var: eğer kendi pastanenizi açıp bizim tarifimizle ürettiğiniz pastaları satmaya başlarsanız, tarifin bize ait olduğunu söyleyecek ve isteyen herkese de tarifi vereceksiniz!

NASIL? RÜYA GİBİ DEĞİL Mİ?

İşte açık kaynak kodlu yazılım bu rüyanın adıdır. Yazılan kodun kaynakları tamamen açıktır. Hiçbir ücret vermeden alınıp kullanılabilir, değiştirilebilir, geliştirilebilir. Büyük firmalar geliştirdikleri kodları ticari sır olarak görürler. Microsoft, Apple gibi yazılım devleri kodlarını büyük bir kıskançlıkla gizli tutmaya, müşterilerine “hazır pasta” vermeye devam ediyorlar. Bilgisayarların yaygınlaşmaya başladığı ilk yıllarda hemen herkesçe paylaşılan bu anlayış özellikle internet devriminden sonra değişmeye başladı. Bir kez üretilen yazılımın her yeni kopyasının -kopyalanma maliyeti sıfıra yakın olduğu halde- fahiş fiyatlardan satılıyor olması bazı yeni nesil yazılımcıları rahatsız etmişti. Ayrıca siber güvenlik endişeleri “pastanın içinde ne olduğunu” bilmenin önemini her geçen gün biraz daha arttırıyordu. Bu yazılımcılar bazen tek başlarına, bazen ortaklaşa ürettikleri yazılımları açık kaynak kodlu olarak yayınlamaya başladılar. Bunu yaparken başka faydaları da keşfettiler. İnsanlar birçok pahalı ürünün yarıştığı bir pazarda ücretsiz alternatifleri daha kolayca fark edip deniyorlardı. Zaman içinde ateş pahası yazılımlardan daha fazlasını mükemmelen yapan ücretsiz açık kaynak kodlu yazılımlar çıktı ve yaygınlaştı. Böylece özgür yazılım taraftarları hem devler liginde varlık gösterme şansı yakalamış hem de şeffaf, denetlenebilir, test edilebilir bir teknolojik çözüm sunmuş oluyorlardı.

*Skandal, PTT’nin açık kaynak kodlarıyla telif haklarını ihlal etmesinden ibaret değildi, onu bir kat daha büyüten ikinci bir katman daha vardı! WhatsApp’ın sağladığı bütün işlevleri sağlayan, açık kaynak kodlu “Signal” isimli bir ürün var. Bu bir alt bileşen, bir kütüphane değil. Basbayağı tamamlanmış, hazır bir ürün. Hem android bazlı telefon ve tabletlerde hem iphone ve ipadlerde çalışmaya hazır uygulamalar, açık kaynak kodlu olarak sunuluyor. Bu işlerden biraz anlayan bir yazılımcı, tüm kodları bilgisayarına indirip çok kısa sürede bir klon üretebiliyor.

Tahmin ettiğiniz gibi, PTT’nin “yerli ve milli” mühendislerine, orta seviye bileşenleri kullanan yeni bir mimari tasarım yapmak da zor gelmiş, bunun yerine zaten yazılıp bitmiş bir uygulamayı allayıp pullayıp piyasaya sürmeyi uygun görmüşlerdi. Fakat PTT Messenger uygulaması incelendiğinde “Signal” uygulamasının yanısıra “Zebrachat” diye ikinci bir uygulamanın izleri görülebiliyordu. O izleri sürünce, bir Türk girişimci tarafından 2016 yılının Nisan ayında “Zebrachat” ismi ile yayınlanmış başka bir Signal klonuna erişiliyordu. PTT’ciler Signal’in hazır kodları üzerinde çalışma yapmaktan bile imtina etmiş olacak ki doğrudan bu Zebrachat uygulamasını alıp birkaç değişiklik yapmayı tercih etmişlerdi. Yani açık kaynak lisanslı kütüphaneler üzerine bir yapı, bir mimari tasarlayıp kendi ürünlerini geliştirmek yerine, zaten tamamlanmış bir ürünün (kendisini değil) klonunu alıp Türkçeleştirmişlerdi!

Kısa zamanda durum ortaya çıkıp inkâr edilemez hale gelince PTT, Twitter’daki kurumsal hesabından şu mesajı paylaştı:

18-02/19/ekran-resmi-2018-02-19-002813.png

Bu açıklamayı bir itiraf olarak okumak gerekiyor: Evet biz kendimizi yerli ve milli bir uygulama geliştirmedik, hazır “Signal” uygulamasının üzerine bir şeyler ekleyerek piyasaya sürdük! İşin ilginç tarafı “Signal” uygulamasının ‘GPLv3’ lisanslı bir ürün olmasıydı. Bu lisans sözleşmesi MIT lisansından farklı olarak şöyle bir kısıtlama getiriyordu:

Haklarınızı korumak için, diğerlerinin sizi bu haklardan mahrum etmesini ve bu haklardan vazgeçmenizi istemelerini engellemek durumundayız. Bu nedenle, yazılımın kopyalarını dağıttığınız ya da yazılımı değiştirdiğinizde bazı sorumluluklar üstlenirsiniz: Diğerlerinin özgürlüğüne saygı göstermekle yükümlüsünüz. Örneğin, böyle bir programın kopyalarını ücretli ya da ücretsiz dağıttığınızda, devraldığınız özgürlükleri bir sonraki alıcılara da devretmek zorundasınız. Onların da bu yazılımların kaynak kodlarına erişimini ya da isterlerse kaynak kodların onlara sunulmasını taahhüt etmek durumundasınız. Ayrıca bu şartları haklarını bilmeleri açısından onlara göstermelisiniz.

Yani -Signal gibi- GPLv3 lisansıyla dağıtılan açık kaynak kodlu bir yazılım üzerinde çalışıp bir ürün geliştirdikten sonra onu kamuoyunun kullanımına açarsanız yaptığınız tüm değişikliklerin kaynak kodlarını da kamuoyuna açmak zorundasınız! Fakat tabi ortada kamuoyuna sunulan kod filan yok! Açık kaynak kodlu yazılımın ne demek olduğunu anlamaktan hayli uzak görünen yöneticiler, muhtemelen yaptırdıkları değişiklikleri kamuoyu ile paylaşmanın bir güvenlik açığı yaratacağını düşünüyorlardır. Hulasa, PTT Messenger skandalının iki büyük ayağı var. Birincisi kamuoyunun, bakanlar kurulunun, başbakanın ve cumhurbaşkanının, “yüzde yüz yerli yazılım yaptık” denerek açıkça aldatılması, ikincisi de açık kaynak lisanslarındaki sözleşme maddelerinin ihlal edilmesi. Ne yazık ki ülkemizin e-devlet projeleri konusunda alması gereken daha çok uzun bir mesafe olduğu görülüyor. Peki biz nasıl gerçekten yerli ve milli bir yazılım sanayii kuracağız? Hiç ümit yok mu? Var tabi! Ama bu da başka bir yazının konusu…

AÇIK KODLU KAYNAKLAR MIT LİSANSLI

PTT Messenger uygulamasını yapmaya soyunanlar açık kaynak kodlu bileşen kullanmıştı ancak bu açık kaynak kodlu kütüphanelerin hemen hepsi MIT lisanslı.

İşte PTT Messenger uygulamasını yapmaya soyunanlar da tekerleği yeniden keşfetmiş olmamak için açık kaynak kodlu bileşenler aramışlar ve bulmuşlardı. Hemen söyleyelim: Kurallara uyulduğu müddetçe bu yapılanda yanlış bir şey yok. Hatta akıllı her kişinin tutacağı yol budur. Peki nedir bu uyulması gereken kurallar? PTT’cilerin buldukları açık kaynak kodlu kütüphanelerin hemen hepsi MIT lisanslı. MIT lisansı, 1988 yılında Amerika’daki meşhur Massachusetts Teknoloji Enstitüsü tarafından hazırlanmış, en yaygın kullanılan özgür yazılım lisanslarından birisi.

Bu lisansın kısacık metni şöyle:

Telif Hakkı

Hiçbir ücret talep edilmeden burada işbu yazılımın bir kopyasını ve belgelendirme dosyalarını (“Yazılım”) elde eden herkese verilen izin; kullanma, kopyalama, değiştirme, birleştirme, yayımlama, dağıtma, alt lisanslama, ve/veya yazılımın kopyalarını satma eylemleri de dahil olmak üzere ve bununla kısıtlama olmaksızın, yazılımın sınırlama olmadan ticaretini yapmak için verilmiş olup, bunları yapmaları için yazılımın sağlandığı kişilere aşağıdakileri yapmak koşuluyla sunulur:

Görüldüğü üzere PTT’nin hatası kurallara uyulmamasındaydı! MIT lisansı ile yazılımlarını yayınlayan kişiler, yazdıkları kodları kullanmak isteyenlere her türlü izni verirken sadece basit bir şart koşuyorlardı: Telif hakkı sahibinin (yani kendilerinin) isimlerinin açıkça belirtilmesi! Ve PTT’ciler “yüzde yüz yerli yazılım” iddiasıyla ortaya çıktıklarında tam da bu şartı ihlal etmişlerdi. Bu imkânı kendilerine -hem de bedava olarak- sağlayan kimselerin isimlerini saklamış, onların emeklerinin üzerine oturmuşlardı!

YORUMLAR
YORUM YAZ
UYARI: Hakaret, küfür, rencide edici cümleler veya imalar, inançlara saldırı içeren, imla kuralları ile yazılmamış, Türkçe karakter kullanılmayan ve büyük harflerle yazılmış yorumlar onaylanmamaktadır. (!) işaretine tıklayarak yorumla ilgili şikayetinizi editöre bildirebilirsiniz.
Bunlar da İlginizi Çekebilir