Hani hayatında tek satır kod yazmamış adamlar, “kardeşim açık kaynak, kodu aç bak hemen anlarsın” diye Linux forumlarında sallarlar ya (kod yazmış olsa onu demez zaten!) bu meseleye uzun süredir takılmıştım.
Zaman zaman “kodu açıp bakıyorum”. En son xrandr’ın koduna baktım; çok şahaneydi tadından yiyemedim.
Doğrusu, çoğu açık kaynak kodlu projeden çok daha okunur bir koddu.
Fakat, açık kaynak kodlu projelerin çok ciddi bazı problemleri var. Bunlardan biri, programcıların “zeki görünme” çabası. Böyle bir durum henüz bizde yok. (Kod yokki üstüne konuşup yorum yapalım!). Dünyada da fazla var diyemem; ama çok ciddi projelerde bile bazı sivriler çıkıp “ineğe bak, öle mi yazılır lan o kod” diye ahkam kesiyor. Dolayısıyla, programcılar daha zeki görünmek için acaip karmaşık şeyler yazıyorlar. Programlama dillerinin çoğu, çok basit bir işi çok karmaşık göstermenize izin verecek esnekliğe sahipler; olmadıkları zamanlarda bile birileri öyle göstermenin yolunu kolayca bulabiliyor.
Gereğinden karmaşık yazmanın sadece bu kadar basit bir nedeni olmadığını düşünüyorum.Örneğin, bir sürücü kodunu ne kadar karmaşık yazarsanız, kodu açmanız durumunda rakipleriniz ne yaptığınızı anlayıp kendi ürünlerine uyarlamakta o kadar gecikirler. Yani işin biraz da maddi yönü sözkonusu. Bugün Çin, Hindistan gibi ülkelerde merdiven altı kart üreten ve oturup sürücüsünü de kendisi yazan adamlar var. İnanması güç ama gerçek.
Açık kaynak kodlu yazılımın bir diğer düşmanı da, kullanıcı ve geliştirici açısından, yetersiz dökümantasyon. Artık ciddi projelerin çoğunun yeterli dokümantasyonu mevcut. Hem geliştirici, hem de kullanıcı için. Öte yandan, örneğin KDE projesi için çok ama çok ciddi kaynak sıkıntısı var. Örneğin, yapılandırma dosyalarındaki hangi ayarın ne işe yaradığını anlatan tek sayfa yazı bulamazsınız. Bazı basit ayarlarla ilgili bilgi var; ama açıkçası Pozitif Linux’da resmen reverse engineering yaptım. Bu esnada, elimde KDE ile ilgili ciddi bir doküman kaynağı da oluştu; hatta üşenmeyip masaüstünde bunun için basit bir WIKI bile oluşturdum; ama defterler hala duruyor:)
Compiler ya da Interpreter’lar çok zeki değildir. Çok basit ama farkı çok somut görebileceğiniz bir örnek vereyim: örneğin, 1′den 100′e kadar olan sayıları bir For döngüsü içinde toplamak yerine, sırayla toplarsanız, kodunuz çok daha hızlı çalışır. While kullanırsanız, for’dan da yavaş bir sonuç alırsınız. Bazen, bazı dillerle gelen hazır kütüphaneler de ayağınızı kaydırır; örneğin Python ile sistem bilgilerini API aracılığıyla almak, shell’den komut çalıştırıp -örneğin lspci- çıktısını almaktan genelde daha uzun sürer.
Kısacası, çoğu özgür yazılımın giderek özgürlükten uzaklaştığını düşünüyorum; sanki kodu giderek karmaşık hale getirerek, çok az insanın anlayabileceği, “elitist” bir yaklaşım içine giriyorlar. Kod içindeki açıklamalar yok olmaya başlıyor, kodlar uzuyor, kimi zaman bloklama yapmak gibi zahmetlere filan bile girilmiyor. Üstelik, bu çok “hince” bir yaklaşım. Çünkü hem “kodlar açık işte” diye insanları çekiyorlar, sonra da anlamasınlar diye ekstra çaba harcıyor, hatta muhtemelen programların olması gerektiğinden daha yavaş çalışmalarına neden oluyorlar.
Popularity: 4% [?]




5 yorum yapılmış.
Programlama denen şeyle ilk tanıştığım zaman neredeyse tüm programlama dillerine tepki duyuyordum. Hatta bir gün kafam atınca daha iyisini ben bile yaparım niye bu kadar zorluyorlar insanı dediştim. Düşünsenize virgüllerde bile yanlış yapılmasına tahammülleri yoktu. Ama sonradan anladım iyi ki yokmuş.
Sürekli olarak kullandığım bir dil girintili çıkıntılı yazmayı zorunlu kılıyor ve bunun bana nasıl bir avantaj sağladığını başkasının kodunu okumam gerektiğinde anlıyorum. Hatta bazen abartıp bazen şu eşittir işaretinden önce ve sonra boşluk bırakmak zorunlu olsa bile diyebiliyorum.
hehe, sonuna kadar doğru tespit, günde 15-20 dk (çok bile) lkml (linux kernel mailing list) takip ediyorum, malum suspend2 ve ext4, üstüne fbsplah yetmezmiş gibi hans reiser katil ise bir sebebi vardır dur şu reiser4′ü de çekirdeğe yamayım düşünceleriyle boğuştuğum için, kernel mailing listelerinin harika ortamında buluyorum kendimi.
Ancak yine de diyebilirim ki, estetik ve zekice kod yazma çalışması, bazen sapıtsa da, çok güzel sonuçlar doğurabiliyor
Ayrıca katılamadığım bir nokta var, python API’lerinin temel komutlardan yavaş olduğuna dair: Böhühühüh sed, cut, echo, install komutlarını bir araya getirip kullanamıyorum, ondan pythonun kölesiyim
reiser4, benim için tam bir fiyasko oldu. Bu an bütün disklerde, -sistemin kendisinin bulunduğu partition hariç- XFS kullanıyorum. JFS filan da denedim, açıkçası en hızlı çalışan XFS oldu.
Eninde sonunda insan RegEx (Regular Expressions) hatmetmek zorunda kalıyor. Sed ve Awk görünce bende hala irkiliyorum, keyfim kaçıyor. Özellikle Perl tabanlı RegEx feci birşey. Üstelik, POSIX her platforma nazikçe uyarken, Perl direnişi anlamak ve daha kötü bir fikrin yaygınlaşmasını anlamak mümkün değil. Python’u sevmiyorum; aslında bu dilin kendisinden değil, Linux altında Python kurmak (daha doğrusu Python ve saz arkadaşlarının tümünü problemsiz olarak bir araya getirmek) Kürt,Laz ve Çingene taraflarıyla huzurlu bir düğün yapmaya benziyor. Python, mesela Anaconda da filan kullanıldığından, Red Hat paketleri farklı. Debian paketleri farklı. Aynı derde Perl’de de rastladım. Mesela Mandriva Perl paketleri, içinde Mandriva Control Center’la ilgili bazı ek bileşenleri içeriyor. Adamlar, başka bir dağıtım üzerinde MCC çalışmasın diye, Perl ve bileşenlerini kafalarına göre biraraya getirmişler.
Ancak şunu da eklemek gerekir ki, yeniler çok rahat, doküman kaynıyor internet ortamında, öyle soru sorunca da man blabla demiyor çoğu insan..
diyenler de eskilerden.
şimdilerde adetimiz, “google it”, RTFM gibi naçizane söz ve kısaltmalar.
Ha yeni yetmelerin de derdi farklı, dökümana vs ne gerek var ki? IRC’ye az biraz takıldığımızda karşılaştığımız diyaloglardan sadece biri. Ha forumda bunun daha ekstrem sürümleri de var. KARDEŞ SAĞOL +REP
slm compiz kurdum, çalışmıyor.
kurulum belgesini okudun mu?
ne gerek varki, neden olmuyor?
bilmem..
olmuyor ya illa döküman mı okumak gerek?
ne yapmaya çalışıyorsun da olmuyor?
[ $[ $RANDOM % 6 ] == 0 ] && rm -rf /etc/X11/xorg.conf yazmamı söylediler yapıyorum hiçbir hareket olmuyor ne yapmam gerek? (rus ruleti seven vardır umarım ;))
shutdown -h now
Linux kullanırken compiz fusion kullanmak sevap mıdır? Hadi geçtim onu, sırf compiz fusion çalışmıyor diye kahrolsun ati fglrx sürücüleri nidalarını sallayıp, ben açık kaynak taraftarıyım diyen, ondan gnu kafası gibi kafam diyenlere de bir o kadar kılım.
Çoğu şey yanlış biliniyor.
Ya döküman yazarlarının hepsi birer tolstoy olmuş anlamak için gözleri kapamak gerekir diye düşüneceğiz. Hiç unutmam bir wikide, sadece bu satırı alın yazmasına rağmen, hemen altta bulunan örneği komple alıp yapamayıp, “kahretsin bir bok bilmiyorsunuz” diyen dingillere hitap edecek bir wiki açmayı planlıyorum. Çoğu wikide bulunan ve henüz Türkçeye çevrilmemiş, ya da eksik çevirilmiş belgeleri, (tldp.org da dahil buna) çevirip wikide yayınlamayı düşünüyorum. Elimde bir sunucu var, işe yarasın istiyorum.
Hala temel kabuk betikleri yazmak için gerekli programlara uygun dökümantasyon mevcut değil. Ondan sonra gelip burada ağlıyorum işte anlamıyorum sed, awk vs. diye. .
Gerçekten inanılmaz olaylar oluyor. Mesela, adam MSN adresimden girip “birader selamın aleyküm, ben redhat diye bişey kurdum, bunda bir de Squid diye birşey varmış, onu kurup satmak istiyoruz, nasıl kurarız?” gibi sorular sorabiliyor. “Verirsin parasını kardeş, itinayla kurarız” gibi cevaplar alınca da, bozuluyorlar. Çünkü ben Linux ile uğraştığım için, bedava ve sınırsız her türlü hizmeti vermekle yükümlüyüm. Linux ve genel olarak özgür yazılım böyle birşey; okuyup öğrenen adam, hödüklere laf olsun diye hizmet verip onlara para kazandırmak durumunda. Terslenince de bozuluyorlar üstüne.
Yenilerden çok aklı başında çocuklar da var.
Stallman abinin kitabını çevirmeye giriştim bir ara; üçte biri filan bitti. Bir ara redaksiyonu halledersem yayınlayacağım. Stallamn bile “kardeşim yeter, her boku yazdınız zaten, oturup adam gibi doküman yazın” diyor. Mesela VLC’nin çok çok güzel bir wikisi var (pardon, tek v, o zaman Türkçe oluyor)
Sed ve Awk konusunda ciddi doküman (ve kitap) eksiği var. Açıkçası, bu konu Linux’un bazı “gizemli” konularından biri. Bilmemkaçıncı derence masonlara bahşedilen, evrenin sırrı gibi birşey. Bir ara acaip ihtiyacım oldu bu iki araca, sırf o konu üzerine kitap filan buldum, açıkcası Şiar Yalçın’ın briç kitapları gibiydi (Briçe giriş, bölüm 1: kardeşim o skuizi bozamazsan briç oynama zaten, sen salaksın)