{"id":9094,"date":"2004-07-01T01:05:11","date_gmt":"2004-06-30T22:05:11","guid":{"rendered":"http:\/\/109.232.216.219\/~bilimvegelecek\/?p=9094"},"modified":"2017-05-16T17:12:55","modified_gmt":"2017-05-16T14:12:55","slug":"bilisim-bilgisayar-yazilim-ve-ozgur-yazilim-bilgisayarinin-bilesenleri","status":"publish","type":"post","link":"https:\/\/bilimvegelecek.com.tr\/index.php\/2004\/07\/01\/bilisim-bilgisayar-yazilim-ve-ozgur-yazilim-bilgisayarinin-bilesenleri","title":{"rendered":"Bili\u015fim, bilgisayar, yaz\u0131l\u0131m ve \u00f6zg\u00fcr yaz\u0131l\u0131m bilgisayar\u0131n\u0131n bile\u015fenleri"},"content":{"rendered":"<p><em>Yaz\u0131l\u0131m\u0131 kamuya a\u00e7t\u0131\u011f\u0131n\u0131z zaman, ihtiyac\u0131 olan insanlar bu yaz\u0131l\u0131m\u0131 al\u0131p kullanmaya ba\u015flayacakt\u0131r. Hatta yaz\u0131l\u0131m\u0131 kullanan bir k\u0131s\u0131m insanlar, ona kendi de\u011fi\u015fikliklerini ekleyerek halka a\u00e7ma yoluna gideceklerdir. Bu \u015fekilde \u00f6n\u00fcne ge\u00e7ilmez bir geli\u015fme ve daha iyiye gitme s\u00fcreci, yaz\u0131l\u0131m\u0131n \u00f6mr\u00fc boyunca ve o yaz\u0131l\u0131ma ilgi oldu\u011fu s\u00fcrece devam edecektir.<\/em><\/p>\n<p>\u00d6zg\u00fcr yaz\u0131l\u0131m\u0131n ne oldu\u011funu anlayabilmek i\u00e7in, \u00f6ncelikle bilgisayar\u0131n yap\u0131ta\u015flar\u0131n\u0131n neler oldu\u011funu yinelemekte fayda var. G\u00fcndelik hayat\u0131m\u0131zda giderek daha kal\u0131c\u0131 bir yer edinen bilgisayarlar, donan\u0131m ve yaz\u0131l\u0131m olmak \u00fczere iki ana gruptaki \u00fcr\u00fcnlerin birlikte \u00e7al\u0131\u015fmalar\u0131 sonucu kendilerine verilen g\u00f6revi yerine getirir.<\/p>\n<p><strong><em>Donan\u0131m ve yaz\u0131l\u0131m nedir?<br \/>\n<\/em><\/strong><em><strong>Donan\u0131m<\/strong><\/em>, bilgisayar\u0131m\u0131z\u0131 bir araya getiren fiziki (elle tutulur) par\u00e7alara verilen genel add\u0131r. \u00d6rnek olarak bilgisayar\u0131n ana i\u015flemcisi, haf\u0131zas\u0131, sabit diski, klavyesi ve monit\u00f6r\u00fc donan\u0131m \u00fcr\u00fcnleridir. Ana donan\u0131m bile\u015fenlerinden baz\u0131lar\u0131n\u0131n eksik olmas\u0131 durumunda bilgisayar i\u015flevselli\u011fini yitirecektir. \u00d6rne\u011fin ana i\u015flemcisi olmayan bir bilgisayar\u0131n \u00e7al\u0131\u015fmas\u0131 beklenemez. \u00d6te yandan ikincil dereceden \u00f6nemli baz\u0131 donan\u0131m bile\u015fenlerinin yoklu\u011funda bilgisayar daha az becerili de olsa \u00e7al\u0131\u015fmas\u0131na devam edecektir. \u00d6rne\u011fin, ses kart\u0131 olmayan bir bilgisayar, ses \u00fcretme yetene\u011finden yoksun olsa da di\u011fer ama\u00e7lar i\u00e7in h\u00e2l\u00e2 kullan\u0131labilir.<\/p>\n<p>Bilgisayarlar\u0131m\u0131z ana kartlar\u0131, i\u015flemcileri ve son model ekran kartlar\u0131 ile bir teknoloji harikas\u0131 olabilirler. Fakat bu bile\u015fenlerin i\u015flev kazanmas\u0131n\u0131 sa\u011flayacak di\u011fer \u00f6nemli bile\u015fen yaz\u0131l\u0131m olmadan, bilgisayar\u0131m\u0131z 2 ile 2\u2019yi \u00e7arp\u0131p 4 sonucuna ula\u015fmaktan bile acizdir.<\/p>\n<p><em><strong>Yaz\u0131l\u0131m<\/strong><\/em>, insanlar\u0131n anlayaca\u011f\u0131 dilden olan problemleri, istekleri ve i\u015fleri bilgisayarlar\u0131n anlayaca\u011f\u0131 dile \u00e7eviren arac\u0131d\u0131r. Verimli bir bilgisayar oturumu i\u00e7in, kulland\u0131\u011f\u0131n\u0131z yaz\u0131l\u0131m\u0131n ihtiya\u00e7lar\u0131n\u0131za uygun olmas\u0131, en az kulland\u0131\u011f\u0131n\u0131z donan\u0131m kadar \u00f6nemlidir. Hatta, bilgisayar teknolojisinin ileri bir seviyeye ula\u015ft\u0131\u011f\u0131 g\u00fcn\u00fcm\u00fczde, iyi donan\u0131m bulmak nispeten kolay iken, iyi yaz\u0131l\u0131ma ula\u015fmada b\u00fcy\u00fck sorunlarla kar\u015f\u0131la\u015f\u0131labilmektedir.<\/p>\n<p>Yaz\u0131l\u0131m\u0131 da, kendi i\u00e7inde \u00e7e\u015fitli s\u0131n\u0131flara ay\u0131rmak m\u00fcmk\u00fcnd\u00fcr. G\u00fcn\u00fcm\u00fcz bilgisayarlar\u0131 asgari olarak \u201ci\u015fletim sistemi\u201d denen ve \u00e7e\u015fitli donan\u0131m bile\u015fenleri ile ileti\u015fim ve i\u015fbirli\u011fini sa\u011flayan ana yaz\u0131l\u0131ma gereksinim duymaktad\u0131r. Temelde i\u015fletim sistemi yaz\u0131l\u0131m\u0131n\u0131n g\u00f6revleri olduk\u00e7a k\u0131s\u0131tl\u0131 oldu\u011fu halde, genelde b\u00fct\u00fcn i\u015fletim sistemi \u00fcreticileri bu i\u015fletim sistemini kullan\u0131c\u0131lar\u0131n g\u00fcnl\u00fck hayat\u0131n\u0131 kolayla\u015ft\u0131racak \u00e7e\u015fitli yaz\u0131l\u0131m \u00fcr\u00fcnleri ile peki\u015ftirir. Ho\u015f\u00e7a vakit ge\u00e7irmek i\u00e7in oynad\u0131\u011f\u0131m\u0131z bilgisayar oyunlar\u0131, arkada\u015flar\u0131m\u0131zla ileti\u015fim i\u00e7in kulland\u0131\u011f\u0131m\u0131z an\u0131nda ileti sistemleri, web sitelerini gezmek i\u00e7in kulland\u0131\u011f\u0131m\u0131z taray\u0131c\u0131lar, bilgisayarda m\u00fczik dinlemek i\u00e7in kulland\u0131\u011f\u0131m\u0131z programlar da i\u015fletim sistemi d\u0131\u015f\u0131nda olan yaz\u0131l\u0131mlara \u00f6rnektir (Ger\u00e7ekte yaz\u0131l\u0131m\u0131n s\u0131n\u0131fland\u0131rmas\u0131 biraz daha karma\u015f\u0131k ama bizim konumuz i\u00e7in bu kadar bir ayr\u0131m yeterli).<\/p>\n<p><strong><em>Yaz\u0131l\u0131m ciddi ve zor bir i\u015ftir<br \/>\n<\/em><\/strong>Yaz\u0131l\u0131m \u00fcretmek belli bir bilgi birikimi ve bu alanda yeterli beceri ve yetenek gerektiren bir i\u015ftir. Program yazarken yaz\u0131l\u0131mc\u0131 akla gelebilecek b\u00fct\u00fcn olas\u0131l\u0131klar\u0131 hesaba kat\u0131p, bu olas\u0131l\u0131klar\u0131n tamam\u0131n\u0131 uygun bir \u015fekilde ele almal\u0131 ve program\u0131n kar\u015f\u0131la\u015f\u0131labilecek her ko\u015fulda gerekti\u011fi gibi tepki vermesini sa\u011flamal\u0131d\u0131r. Bilgisayar genel kan\u0131n\u0131n aksine, zek\u00e2 sahibi bir makine olmad\u0131\u011f\u0131ndan, bizim kar\u015f\u0131 kar\u015f\u0131ya kald\u0131\u011f\u0131m\u0131zda ak\u0131l ve tecr\u00fcbelerimizden bir \u00e7\u0131kar\u0131ma giderek do\u011fru yolu bulaca\u011f\u0131m\u0131z durumlarda dahi, k\u00f6r bir \u015fekilde kendisine yaz\u0131l\u0131mc\u0131 taraf\u0131ndan iletilen ad\u0131mlar\u0131 takip edecektir. \u00d6rne\u011fin, beklenmedik bir \u015fekilde, yaz\u0131l\u0131mc\u0131n\u0131n \u00f6ng\u00f6rmedi\u011fi halde ger\u00e7ekle\u015febilecek bir durum \u00f6rne\u011fi olarak, bilgisayar\u0131n\u0131z kendisini \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z b\u00fct\u00fcn dok\u00fcmanlar\u0131 silmeye y\u00f6nelik bir ad\u0131m ile kar\u015f\u0131 kar\u015f\u0131ya buldu\u011funda, zek\u00e2 sahibi varl\u0131klar\u0131n tersine, bu ad\u0131m\u0131 seve seve takip edecektir.<\/p>\n<p>Makul b\u00fct\u00fcn olas\u0131l\u0131klar\u0131 \u00f6ng\u00f6rmeye ilaveten, yaz\u0131l\u0131mc\u0131n\u0131n ayr\u0131ca bilgisayar\u0131n ger\u00e7ekle\u015ftirmesi gereken her i\u015flemi tek tek ve a\u00e7\u0131k olarak s\u0131ralamas\u0131 gerekmektedir. Bilgisayar ne bir ad\u0131m\u0131n eksik oldu\u011funu ne de takip etti\u011finde istenmeyen sonu\u00e7lar do\u011furacak bir ad\u0131mla kar\u015f\u0131 kar\u015f\u0131ya oldu\u011funu fark etme yetene\u011fine sahiptir. Bu y\u00f6nden bak\u0131ld\u0131\u011f\u0131nda bilgisayar, yaz\u0131l\u0131mc\u0131n\u0131n emirlerine itaat eden, ola\u011fan\u00fcst\u00fc h\u0131z\u0131 ve s\u0131k\u0131lmadan ve yorulmadan \u00e7al\u0131\u015fma azmine ra\u011fmen kendi kendine d\u00fc\u015f\u00fcnme yetene\u011fi olmayan bir makineden ibarettir. Bilgisayar\u0131n b\u00fct\u00fcn bu \u00f6zelliklerinden dolay\u0131, yaz\u0131l\u0131m \u00fcretmek, -\u00f6zellikle iyi yaz\u0131l\u0131m \u00fcretmek-, neredeyse kendince bir sanat say\u0131labilecek, zor bir i\u015ftir.<\/p>\n<p><strong><em>\u00d6zg\u00fcrl\u00fck nedir?<br \/>\n<\/em><\/strong>Bilgisayar\u0131m\u0131z\u0131n bile\u015fenleri, yaz\u0131l\u0131m\u0131n bilgisayar kullan\u0131m\u0131ndaki yeri ve kaliteli yaz\u0131l\u0131m \u00fcretimindeki zorluklar konusuna k\u0131saca de\u011findik. Fakat esas olarak \u00f6zg\u00fcr yaz\u0131l\u0131m\u0131n ne oldu\u011funu anlamak i\u00e7in yola \u00e7\u0131km\u0131\u015ft\u0131k. Yaz\u0131l\u0131m\u0131 anlad\u0131\u011f\u0131m\u0131za g\u00f6re, geriye \u201c\u00f6zg\u00fcrl\u00fck\u201d kavram\u0131 kal\u0131yor. Nedir bu \u00f6zg\u00fcrl\u00fck? Yaz\u0131l\u0131m gibi bir konuyla ne ilgisi olabilir?<\/p>\n<p><em>T\u00fcrk Dil Kurumu S\u00f6zl\u00fc\u011f\u00fc<\/em>\u2019ne g\u00f6re <em>\u201c<\/em><em>\u00d6zg\u00fcrl\u00fck<\/em>: 1) Herhangi bir k\u0131s\u0131tlamaya, zorlamaya ba\u011fl\u0131 olmaks\u0131z\u0131n d\u00fc\u015f\u00fcnme veya davranma, herhangi bir \u015farta ba\u011fl\u0131 olmama durumu. 2) Her t\u00fcrl\u00fc d\u0131\u015f etkiden ba\u011f\u0131ms\u0131z olarak insan\u0131n kendi iradesine, kendi d\u00fc\u015f\u00fcncesine dayanarak karar vermesi durumu, h\u00fcrriyet\u201d olarak tan\u0131mlanm\u0131\u015ft\u0131r.<\/p>\n<p>Amerika\u2019daki \u00d6zg\u00fcr Yaz\u0131l\u0131m Derne\u011fi\u2019ne g\u00f6re bu \u00f6zg\u00fcrl\u00fck tan\u0131m\u0131 yaz\u0131l\u0131m kavram\u0131na \u015f\u00f6yle uyarlanabilir: \u201c\u00d6zg\u00fcr yaz\u0131l\u0131m\u0131n temelinde kullan\u0131c\u0131n\u0131n bir yaz\u0131l\u0131m\u0131 \u00e7al\u0131\u015ft\u0131rma, kopyalama, da\u011f\u0131tma, inceleme, de\u011fi\u015ftirme ve geli\u015ftirme \u00f6zg\u00fcrl\u00fckleri yatar. Daha kesin ve a\u00e7\u0131k bir ifadeyle, kullan\u0131c\u0131lara \u015fu haklar tan\u0131nm\u0131\u015ft\u0131r:<\/p>\n<p>\u201c- Her t\u00fcrl\u00fc ama\u00e7 i\u00e7in program\u0131 \u00e7al\u0131\u015ft\u0131rma \u00f6zg\u00fcrl\u00fc\u011f\u00fc.<br \/>\n\u201c- Program\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 inceleme ve kendi gereksinimleri do\u011frultusunda de\u011fi\u015ftirme \u00f6zg\u00fcrl\u00fc\u011f\u00fc. Program kaynak koduna eri\u015fim bunun i\u00e7in bir \u00f6n \u015fartt\u0131r.<br \/>\n\u201c- Yeniden da\u011f\u0131tma ve toplumla payla\u015fma \u00f6zg\u00fcrl\u00fc\u011f\u00fc.<br \/>\n\u201c- Program\u0131 geli\u015ftirme ve geli\u015fmi\u015f haliyle topluma da\u011f\u0131tma \u00f6zg\u00fcrl\u00fc\u011f\u00fc. B\u00f6ylece yaz\u0131l\u0131m b\u00fct\u00fcn toplum yarar\u0131na geli\u015ftirilmi\u015f olur. Program kaynak koduna eri\u015fim bunun i\u00e7in de bir \u00f6n \u015fartt\u0131r.\u201d<\/p>\n<p><strong><em>Kaynak kodu nedir?<br \/>\n<\/em><\/strong>Yukarda yer verdi\u011fimiz \u00d6zg\u00fcr Yaz\u0131l\u0131m Derne\u011fi\u2019ne g\u00f6re \u00f6zg\u00fcr yaz\u0131l\u0131m\u0131n gereklerine bakt\u0131\u011f\u0131m\u0131zda, tekrar tekrar kaynak kodu denen bir \u015feyden bahsetti\u011fini ve \u0131srarla bu kaynak kodunu talep etti\u011fini g\u00f6r\u00fcyoruz. Peki nedir bu kaynak kodu? \u00d6zg\u00fcrl\u00fckten s\u00f6z ederken bu kadar \u0131srarla \u00fczerinde durulmas\u0131n\u0131n sebebi ne olabilir? Acaba \u00d6zg\u00fcr Yaz\u0131l\u0131m Derne\u011fi laf aras\u0131nda bir punduna getirerek normalde vermeyece\u011fimiz bir \u015feyi bizden hileyle almaya m\u0131 \u00e7al\u0131\u015f\u0131yor?<\/p>\n<p>Yaz\u0131l\u0131m \u00fcretmenin zor oldu\u011fundan s\u00f6z ederken, yaz\u0131l\u0131mc\u0131n\u0131n bizim anlayaca\u011f\u0131m\u0131z i\u015fleri, ama\u00e7lar\u0131 ve \u00e7\u00f6z\u00fclmesi gereken sorunlar\u0131 bilgisayar\u0131n anlayaca\u011f\u0131 bir \u015fekilde s\u0131ralamas\u0131 gerekti\u011fine de\u011finmi\u015ftik. Bizim kelimeleri bir araya getirerek konu\u015fmam\u0131z ve bu \u015fekilde -\u00e7o\u011fu zaman- anla\u015fabilmemize benzer olarak bilgisayarlar da kendi dillerini konu\u015furlar. Bu dil bizim dilimize g\u00f6re olduk\u00e7a k\u0131s\u0131tl\u0131d\u0131r ve yaln\u0131zca iki kelime, iki harf veya iki se\u00e7enek olarak basite indirgeyebilece\u011fimiz 0 (s\u0131f\u0131r) ve 1 (bir) de\u011ferlerinden olu\u015fur. Bu iki yap\u0131ta\u015f\u0131yla donan\u0131m seviyesinde, a\u00e7\u0131k ya da kapal\u0131, var ya da yok, do\u011fru ya da yanl\u0131\u015f kavramlar\u0131 kullan\u0131larak bilgisayara ne yapmas\u0131 gerekti\u011fi s\u00f6ylenmelidir. Bilgisayar cevap verirken yine ayn\u0131 dili kullanacakt\u0131r.<\/p>\n<p>Bili\u015fim tarihinin ilk g\u00fcnlerinde yaz\u0131l\u0131m \u00fcretme i\u015fini sadece bu dili ger\u00e7ek anlamda bilen, ba\u015fka bir deyi\u015fle bilgisayarca konu\u015fabilen insanlar ger\u00e7ekle\u015ftiriyorlard\u0131. Yaz\u0131l\u0131mc\u0131 0 ve 1\u2019ce konu\u015farak bilgisayardan ne istedi\u011fini ad\u0131m ad\u0131m anlat\u0131yor, bilgisayar\u0131n cevab\u0131n\u0131 ise yine ayn\u0131 \u015fekilde 0 ve 1\u2019ce olarak al\u0131p sonuca ula\u015f\u0131yordu. 0 ve 1\u2019ce zaman\u0131nda, yaz\u0131l\u0131m \u00fcretmek ger\u00e7ekten zordu. Bili\u015fim alan\u0131nda geli\u015fmeler olduk\u00e7a, yine bilgisayarca konu\u015fabilen yaz\u0131l\u0131mc\u0131lar taraf\u0131ndan terc\u00fcme arac\u0131 denebilecek yaz\u0131l\u0131mlar \u00fcretilmeye ba\u015flad\u0131. Derleyici (compiler) diye tabir etti\u011fimiz bu yaz\u0131l\u0131mlar\u0131n g\u00f6revi, yar\u0131 insanca-yar\u0131 bilgisayarca olarak tan\u0131mlayabilece\u011fimiz yeni bir dilde yaz\u0131lan ad\u0131mlar\u0131, bilgisayar\u0131n anlayaca\u011f\u0131 0 ve 1\u2019ceye \u00e7evirmektir. Bilgisayar kendi b\u00fcnyesinde ve bile\u015fenleri aras\u0131nda h\u00e2l\u00e2 bilgisayarca konu\u015fmaya devam etmekte, fakat bu terc\u00fcman yard\u0131m\u0131 ile en az\u0131ndan yeni nesil yaz\u0131l\u0131mc\u0131lar\u0131n ne dedi\u011fini anlayabilmektedir.<\/p>\n<p>\u0130\u015fte bu insanlar\u0131n da anlayabilece\u011fi terc\u00fcme \u00f6ncesi metne, kaynak kodu diyoruz. Kaynak kodunun g\u00fczelli\u011fi, gerekli e\u011fitimi alm\u0131\u015f insanlar\u0131n bu metni okuyup anlayabilmesi, gerekirse kendi metnini \u00fcretip bilgisayara derdini anlatabilmesidir. Dileyen yaz\u0131l\u0131mc\u0131 ba\u015fka birinin yazd\u0131\u011f\u0131 kaynak kodunu al\u0131p ona ufak tefek de\u011fi\u015fiklikler yaparak bilgisayara derdini uzun uzun yeniden anlatmak zorunda kalmadan kendi i\u015fini de halledebilir.<\/p>\n<p><strong><em>Kaynak kodu her bilgisayarda var m\u0131?<br \/>\n<\/em><\/strong>Bilgisayar\u0131m gayet ola\u011fan bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131na ve bilgisayar da programlar\u0131m\u0131n dilini anlad\u0131\u011f\u0131na g\u00f6re, bende zaten bu kaynak kodu denen metin halihaz\u0131rda yok mu? \u00d6zg\u00fcr Yaz\u0131l\u0131m savunucular\u0131 neden s\u00f6z ediyorlar? Daha ne istiyorlar?<\/p>\n<p>Buraya kadar okuyup bu sonuca ula\u015fman\u0131z gayet do\u011fal, \u00e7\u00fcnk\u00fc yukardaki terc\u00fcme i\u015fleminde ger\u00e7ekle\u015fen bir ad\u0131m\u0131 atlad\u0131k. Ger\u00e7ekte yeni nesil yaz\u0131l\u0131mc\u0131 bilgisayarcaya terc\u00fcme edilmek \u00fczere \u00f6zel bir dilde yazd\u0131\u011f\u0131 metni kullan\u0131ma haz\u0131r hale getirmek i\u00e7in, birka\u00e7 belli i\u015flemi ger\u00e7ekle\u015ftirmeli. Birinci ad\u0131m, metnin dil kurallar\u0131na uygun oldu\u011fundan emin olmak. Metin dil kurallar\u0131na uyuyorsa, terc\u00fcme edilmeye haz\u0131r demektir. Terc\u00fcme i\u015flemini derleyici ile yap\u0131yoruz ve bilgisayarcaya terc\u00fcme edilmi\u015f bir \u00fcr\u00fcne ula\u015f\u0131yoruz. Bu a\u015famada elimizde ba\u015fta kendimiz yazd\u0131\u011f\u0131m\u0131z kaynak kodu ve tamemen bilgisayarca olan son \u00fcr\u00fcn var. Son \u00fcr\u00fcn\u00fcn ne demek istedi\u011fini bilgisayar\u0131m\u0131z \u00e7ok iyi anl\u0131yor ve ondan istedi\u011fimiz her i\u015flemi g\u00fczelce ger\u00e7ekle\u015ftiriyor. Bu a\u015famada bilgisayarca olan \u00fcr\u00fcn\u00fc bir arkada\u015f\u0131m\u0131za versek, elinde kaynak kodu olmad\u0131\u011f\u0131 halde bunu kendi bilgisayar\u0131nda \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131nda, bilgisayar bize itaat etti\u011fi gibi ona da itaat edecek ve bizim i\u00e7in ger\u00e7ekle\u015ftirdi\u011fi i\u015flemleri onun i\u00e7in de ger\u00e7ekle\u015ftirecektir. G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi bir program\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in kaynak kodunun da haz\u0131r bulunmas\u0131 gerekmiyor. Terc\u00fcme edilmi\u015f metni ayn\u0131 i\u015f i\u00e7in yeniden kullanabilmek \u00e7ok g\u00fczel bir \u00f6zellik, fakat ne yaz\u0131k ki \u00f6zg\u00fcrl\u00fck s\u00f6z konusu oldu\u011funda yeterli de\u011fil.<\/p>\n<p><strong><em>Kaynak kodunun varl\u0131\u011f\u0131\/yoklu\u011fu ne sa\u011fl\u0131yor?<br \/>\n<\/em><\/strong>Arkada\u015f\u0131n\u0131zdan size b\u00f6yle bir yaz\u0131l\u0131m \u00fcr\u00fcn\u00fc geldi\u011fini d\u00fc\u015f\u00fcn\u00fcn. Elinizde kaynak kodu yok. Program\u0131 kullan\u0131yorsunuz ve aynen arkada\u015f\u0131n\u0131z\u0131n size anlatt\u0131\u011f\u0131 gibi \u00e7al\u0131\u015f\u0131yor. Fakat program ekran\u0131nda arkada\u015f\u0131n\u0131z\u0131n size bahsetmedi\u011fi bir tu\u015f var. Sizce bu tu\u015f ne yap\u0131yor olabilir? Program\u0131 a\u00e7\u0131p okumaya giri\u015fseniz, daha \u00f6nce s\u00f6z etti\u011fimiz 0 ve1\u2019lerle kar\u015f\u0131la\u015facaks\u0131n\u0131z ve ne demek istedi\u011fini anlayamayacaks\u0131n\u0131z. Tu\u015fa basarak deneyebilirsiniz, fakat ya bu tu\u015f istemedi\u011finiz bir i\u015flem ger\u00e7ekle\u015ftirirse? Tu\u015f \u00f6rne\u011finden daha k\u00f6t\u00fcs\u00fc, programda varl\u0131\u011f\u0131n\u0131 g\u00f6rmedi\u011finiz fakat yine de orada olan bir \u00f6zellik veya bir hata olmad\u0131\u011f\u0131n\u0131 nereden biliyorsunuz? Arkada\u015f\u0131n\u0131za g\u00fcvenebilirsiniz diyelim, fakat y\u00fczlerce dolar vererek ald\u0131\u011f\u0131n\u0131z program\u0131n\u0131z\u0131n \u00fcreticisine ne kadar g\u00fcvenebilirsiniz? Daha program\u0131 kullanmaya ba\u015flarken lisans anla\u015fmas\u0131nda her t\u00fcrl\u00fc sorumlulu\u011fun size ait oldu\u011funu ve \u00fcreticinin hi\u00e7bir \u015fekilde sorumlu tutulamayaca\u011f\u0131n\u0131 s\u00f6yleyen onlar de\u011fil miydi? Oysa elinizde kaynak kodu olsayd\u0131, o kodu kendiniz okuyabilir veya arkada\u015f\u0131n\u0131za okutup neler olup bitti\u011fini \u00f6\u011frenebilirdiniz. Belki d\u00fcnyan\u0131n en kolay i\u015fi olmazd\u0131, ama en az\u0131ndan m\u00fcmk\u00fcn olurdu.<\/p>\n<p><strong><em>Kaynak kodu ve a\u00e7\u0131kl\u0131k ilkesi<br \/>\n<\/em><\/strong>Demek ki sadece kaynak kodunda olan, bu koddan derlenen programda olmayan ilk \u00f6zellik, kaynak kodunun insanlar taraf\u0131ndan anla\u015f\u0131labilecek bir dilde yaz\u0131lm\u0131\u015f olmas\u0131. Bu \u00f6zellik kaynak kodundan \u00fcretilen programa ola\u011fan\u00fcst\u00fc bir a\u00e7\u0131kl\u0131k kazand\u0131r\u0131yor. Kaynak kodu elinizde oldu\u011fu s\u00fcrece, program sizden gizli bir i\u015flem veya -\u00fcreticinin herhangi bir k\u00f6t\u00fc niyeti olmad\u0131\u011f\u0131 halde yine de programda mevcut olan- istenmeyen bir ad\u0131m ger\u00e7ekle\u015ftirmeden \u00f6nce, kaynak koduna bak\u0131p \u00f6nlem alabiliyorsunuz. Beklenmeyen bir sonu\u00e7la kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda kaynak kodunu okuyarak sebebini ara\u015ft\u0131rabiliyorsunuz. K\u0131saca yaz\u0131l\u0131m amac\u0131n\u0131, kulland\u0131\u011f\u0131 y\u00f6ntemleri, belli \u015fartlarda izleyece\u011fi yolu, beklenmedik bir olayda hareket edece\u011fi \u015fekli ve zay\u0131f ve sorun yaratabilecek yerlerini sizden gizleyemiyor; sizi g\u00f6z\u00fc kapal\u0131 bir \u015fekilde, ne olaca\u011f\u0131ndan emin olmadan program\u0131 kullanmaya zorlam\u0131yor.<\/p>\n<p>Yukarda g\u00f6zler \u00f6n\u00fcne sermeye \u00e7al\u0131\u015ft\u0131\u011f\u0131m\u0131z a\u00e7\u0131kl\u0131k ilkesi, bir\u00e7ok y\u00f6nden \u00f6zg\u00fcrl\u00fck ilkesi ile \u00f6rt\u00fc\u015fmektedir. Se\u00e7me \u00f6zg\u00fcrl\u00fc\u011f\u00fcn\u00fcn gerek \u015fartlar\u0131ndan belki en \u00f6nemlisi, mevcut se\u00e7eneklerin a\u00e7\u0131k olarak incelenebilmesi ve se\u00e7enekler hakk\u0131ndaki \u00f6nemli b\u00fct\u00fcn bilgilere se\u00e7im a\u015famas\u0131nda ula\u015f\u0131labilmesidir.<\/p>\n<p><strong><em>Yaz\u0131l\u0131m\u0131 de\u011fi\u015ftirebilme \u00f6zg\u00fcrl\u00fc\u011f\u00fc<br \/>\n<\/em><\/strong>A\u00e7\u0131kl\u0131k kavram\u0131 tek ba\u015f\u0131na vazge\u00e7ilmemesi gereken bir niteliktir. Kulland\u0131\u011f\u0131 yaz\u0131l\u0131m\u0131n kaynak koduna eri\u015fimi olan kullan\u0131c\u0131 veya yaz\u0131l\u0131mc\u0131, yaz\u0131l\u0131m\u0131 kulland\u0131k\u00e7a, yaz\u0131l\u0131mda eksikler, geli\u015fmeye a\u00e7\u0131k noktalar oldu\u011funu fark etmeye ba\u015flayacakt\u0131r. Benzer bir \u015fekilde, kullan\u0131c\u0131 yaz\u0131l\u0131m\u0131 g\u00fcndelik olarak kulland\u0131k\u00e7a, yaz\u0131l\u0131m\u0131n \u00f6zg\u00fcn halini yaz\u0131p derleyen \u00fcreticinin \u00f6ng\u00f6rmedi\u011fi ihtiya\u00e7lar\u0131n\u0131 da bu yaz\u0131l\u0131m ile kolayca giderebilece\u011fini fark edecektir. Bu ihtiya\u00e7lar\u0131 yaz\u0131l\u0131ma ilave etmek, \u00fcreticinin \u00e7\u0131karlar\u0131 bak\u0131m\u0131ndan her zaman tercih edilen bir durum olmayabilir. \u00dcreticinin istenen konuda yeterli tecr\u00fcbesi olmayabilir; \u00fcretici ba\u015fka bir konu \u00fczerinde b\u00fct\u00fcn kaynaklar\u0131n\u0131 kullan\u0131yor ve sizin istedi\u011finiz konuya ay\u0131racak zaman\u0131 bulam\u0131yor olabilir; \u00fcreticinin bu ek \u00f6zellik i\u00e7in talep etti\u011fi \u00fccreti kar\u015f\u0131layamayabilirsiniz. En \u00f6nemlisi \u00fcretici bir kere yaz\u0131p milyonlarca kere \u00e7o\u011falt\u0131p da\u011f\u0131tt\u0131\u011f\u0131 bu yaz\u0131l\u0131m \u00fczerinde sizin istedi\u011finiz de\u011fi\u015fikli\u011fi yapmaya tenezz\u00fcl etmeyebilir. En nihayetinde, sizin ihtiyac\u0131n\u0131z di\u011fer \u015fah\u0131slar i\u00e7in ayn\u0131 \u00f6nemi ta\u015f\u0131mayabilir.<\/p>\n<p>B\u00f6yle bir durumda elinizde kaynak kodu yoksa, hayalinizin ger\u00e7ekle\u015fme ihtimali yok denecek kadar azd\u0131r. Mevcut teknoloji ile kaynak kodu olmayan son kullan\u0131c\u0131ya y\u00f6nelik bir program \u00fczerinde de\u011fi\u015fiklikler yapmak veya programa yeni \u00f6zellikler eklemek m\u00fcmk\u00fcn de\u011fildir!<\/p>\n<p>E\u011fer \u015fansl\u0131 iseniz ve elinizde yaz\u0131l\u0131m\u0131n kaynak kodu varsa, olaylar \u00e7ok farkl\u0131 ve sizin \u00e7\u0131kar\u0131n\u0131za geli\u015febilecektir. Derleyicilerin anlad\u0131\u011f\u0131 yaz\u0131l\u0131m dillerini biliyorsan\u0131z; kaynak kodunu okuyup, ihtiyac\u0131n\u0131z olan de\u011fi\u015fikli\u011fi yap\u0131p, yeni kaynak kodunu tekrar derleyerek i\u015finizi g\u00f6rebilirsiniz.<\/p>\n<p>Kendiniz yaz\u0131l\u0131mc\u0131 olmayabilirsiniz. Yaz\u0131l\u0131m i\u015finin ciddi ve zor bir i\u015f oldu\u011funu ba\u015fta s\u00f6ylemi\u015ftik. \u015eimdi de kesinlikle herkesin yaz\u0131l\u0131m\u0131 kendi ihtiya\u00e7lar\u0131na g\u00f6re kendisinin de\u011fi\u015ftirebilece\u011fini ima etmiyoruz. E\u011fer kendiniz yaz\u0131l\u0131m\u0131 de\u011fi\u015ftirecek bilgi ve beceriye sahip de\u011filseniz, se\u00e7ece\u011finiz ki\u015fi veya kurulu\u015flara gerekli de\u011fi\u015fiklikleri \u00fccretini \u00f6deyerek yapt\u0131rabilirsiniz. Sonu\u00e7ta esas olan de\u011fi\u015fikli\u011fi kimin yapt\u0131\u011f\u0131 de\u011fildir. Sizin kulland\u0131\u011f\u0131n\u0131z bir programa herhangi bir de\u011fi\u015fikli\u011fi ger\u00e7ekten yap\u0131p yapmayaca\u011f\u0131n\u0131z da de\u011fildir. Esas olan gerekli olabilme olas\u0131l\u0131\u011f\u0131na kar\u015f\u0131, yaz\u0131l\u0131m\u0131 de\u011fi\u015ftirme \u00f6zg\u00fcrl\u00fc\u011f\u00fcn\u00fcn mevcut olmas\u0131d\u0131r. Zaten \u00f6zg\u00fcrl\u00fckleri \u00f6zg\u00fcrl\u00fck yapan \u00f6zelliklerden biri de, uygulama zorunlulu\u011fu olmay\u0131p, uygulamak isteyenlere de k\u0131s\u0131tlama getirmemesi de\u011fil midir?<\/p>\n<p><strong><em>Yaz\u0131l\u0131m\u0131 insanlar\u0131n geli\u015ftirmelerine a\u00e7mak<br \/>\n<\/em><\/strong>D\u00fcnyadaki hi\u00e7bir bilgisayar kullan\u0131c\u0131s\u0131, bilgisayar\u0131n\u0131 bir di\u011feriyle tamamen ayn\u0131 ama\u00e7larla ve tamamen ayn\u0131 \u015fekilde kullanmaz. Bu ki\u015filerin bilgisayar kullan\u0131\u015f ama\u00e7lar\u0131 da ayn\u0131 de\u011fildir. Bu kadar farkl\u0131l\u0131k g\u00f6steren bir kullan\u0131c\u0131 kitlesine ra\u011fmen, yine de bir\u00e7ok noktada ihtiya\u00e7lar ve ama\u00e7larda bir ortakl\u0131k mevcuttur. Sizin kaynak kodunu de\u011fi\u015ftirerek ekledi\u011finiz \u00f6zellik belki ba\u015fkalar\u0131n\u0131n da i\u015fini kolayla\u015ft\u0131rabilir.<\/p>\n<p>Bunu anlaman\u0131n en g\u00fczel yolu, de\u011fi\u015ftirilmi\u015f program\u0131 internet ortam\u0131na koyup, ihtiyac\u0131 olanlar\u0131n eri\u015febilmesini sa\u011flamakt\u0131r. Bu de\u011fi\u015fikli\u011fi ba\u015fkalar\u0131yla payla\u015fman\u0131n size bir zarar\u0131 olamayaca\u011f\u0131na g\u00f6re, neden yapmayas\u0131n\u0131z? Yaz\u0131l\u0131m\u0131 kamuya a\u00e7t\u0131\u011f\u0131n\u0131z zaman, ihtiyac\u0131 olan insanlar bu yaz\u0131l\u0131m\u0131 al\u0131p kullanmaya ba\u015flayacakt\u0131r. Bir\u00e7ok ki\u015fi i\u00e7in yaz\u0131l\u0131m\u0131 kullanan ki\u015filerden al\u0131nan bir te\u015fekk\u00fcr, ki\u015finin harcad\u0131\u011f\u0131 \u00e7abalar\u0131n kar\u015f\u0131l\u0131\u011f\u0131 olmaya yeterlidir. Yaz\u0131l\u0131m\u0131n\u0131z\u0131 kullanan insanlar\u0131n yapabilece\u011fi bir ba\u015fka \u015fey de, kendileri programlama yapamad\u0131klar\u0131 i\u00e7in size yeni fikirler sunmak olacakt\u0131r. Hatta yaz\u0131l\u0131m\u0131 kullanan bir k\u0131s\u0131m insanlar, ona kendi de\u011fi\u015fikliklerini ekleyerek halka a\u00e7ma yoluna gideceklerdir. Bu \u015fekilde \u00f6n\u00fcne ge\u00e7ilmez bir geli\u015fme ve daha iyiye gitme s\u00fcreci, yaz\u0131l\u0131m\u0131n \u00f6mr\u00fc boyunca ve o yaz\u0131l\u0131ma ilgi oldu\u011fu s\u00fcrece devam edecektir.<\/p>\n<p><strong><em>Kaynak kodunda de\u011fi\u015fiklik yapman\u0131n \u00f6n\u00fcndeki engeller<\/em><\/strong><\/p>\n<p>Ne yaz\u0131k ki, insanl\u0131\u011f\u0131n bir b\u00fct\u00fcn olarak ilerlemesini garanti eden kaynak kodunda de\u011fi\u015fiklik yap\u0131p da\u011f\u0131tma i\u015flemi, ger\u00e7ek hayatta bu kadar kolay ger\u00e7ekle\u015ftirilememektedir. \u00d6ncelikle g\u00fcn\u00fcm\u00fczde geni\u015f \u00e7apta kullan\u0131lan yaz\u0131l\u0131mlar\u0131n ezici bir \u00e7o\u011funlu\u011fu, kaynak kodu olmaks\u0131z\u0131n da\u011f\u0131t\u0131lmaktad\u0131r. Bu yaz\u0131l\u0131mlar \u00fccretli veya \u00fccretsiz da\u011f\u0131t\u0131labilir. \u00d6denen \u00fccrete ba\u011fl\u0131 olmaks\u0131z\u0131n, kaynak kodu olmadan da\u011f\u0131t\u0131lan yaz\u0131l\u0131m\u0131n, \u00fcreticinin kendisinin yapmay\u0131 ye\u011fleyece\u011fi geli\u015ftirmeler hari\u00e7, geli\u015ftirilmesi m\u00fcmk\u00fcn de\u011fildir. Neredeyse b\u00fct\u00fcn bir yaz\u0131l\u0131m sekt\u00f6r\u00fc, \u00fccretli veya \u00fccretsiz da\u011f\u0131t\u0131lan yaz\u0131l\u0131mlar\u0131n kaynak kodunun gizli tutulup sadece derlenmi\u015f \u00fcr\u00fcnleri da\u011f\u0131tmak \u00fczerine kurulmu\u015ftur.<\/p>\n<p>Kaynak kodunun program ile birlikte da\u011f\u0131t\u0131lmas\u0131 her ne kadar sadece derlenmi\u015f \u00fcr\u00fcn\u00fcn da\u011f\u0131t\u0131lmas\u0131ndan nispeten iyi bir durum ise de, tek ba\u015f\u0131na beklentileri kar\u015f\u0131lamaya yeterli bir y\u00f6ntem de\u011fildir. G\u00fcn\u00fcm\u00fczde yaz\u0131l\u0131m konusunu d\u00fczenleyen kanunlar, kaynak kodu elinizde olsa bile ona de\u011fi\u015fiklik yapman\u0131z\u0131, de\u011fi\u015ftirilmi\u015f veya \u00f6zg\u00fcn hali ile kaynak kodunu ve derlenmi\u015f \u00fcr\u00fcn\u00fc da\u011f\u0131tman\u0131z\u0131 yasad\u0131\u015f\u0131 sayabilecek yap\u0131dad\u0131r. Bu gibi durumlarda kaynak kodunun elinizde olup olmamas\u0131 ula\u015f\u0131lacak sonucu de\u011fi\u015ftirmeyecektir.<\/p>\n<p>\u00d6zg\u00fcr yaz\u0131l\u0131m kavram\u0131na ve bize neler getirebilece\u011fine k\u0131sa bir g\u00f6z att\u0131k. B\u00fct\u00fcn toplumun yarar\u0131na oldu\u011fu a\u00e7\u0131k olan bu ak\u0131m\u0131n neden h\u00e2l\u00e2 b\u00fct\u00fcn d\u00fcnyada yaz\u0131l\u0131m konusundaki tek d\u00fc\u015f\u00fcnce tarz\u0131 olmad\u0131\u011f\u0131n\u0131 merak ediyor olabilirsiniz. Ne yaz\u0131k ki, ger\u00e7ek hayatta bizim de\u011findi\u011fimizden \u00e7ok daha fazla de\u011fi\u015fkeni g\u00f6z \u00f6n\u00fcne almak gerekiyor. \u00d6zg\u00fcr yaz\u0131l\u0131m konusunda bilgi vermeye ve bu de\u011fi\u015fkenleri incelemeye devam edece\u011fiz.<\/p>\n<p><em>Bu yaz\u0131, (<a href=\"http:\/\/ozguryazilim.org\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/ozguryazilim.org<\/a>) adl\u0131 siteden al\u0131nm\u0131\u015ft\u0131r.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yaz\u0131l\u0131m\u0131 kamuya a\u00e7t\u0131\u011f\u0131n\u0131z zaman, ihtiyac\u0131 olan insanlar bu yaz\u0131l\u0131m\u0131 al\u0131p kullanmaya ba\u015flayacakt\u0131r. Hatta yaz\u0131l\u0131m\u0131 kullanan bir k\u0131s\u0131m insanlar, ona kendi de\u011fi\u015fikliklerini ekleyerek halka a\u00e7ma yoluna gideceklerdir. Bu \u015fekilde \u00f6n\u00fcne ge\u00e7ilmez bir geli\u015fme ve daha iyiye gitme s\u00fcreci, yaz\u0131l\u0131m\u0131n \u00f6mr\u00fc boyunca ve o yaz\u0131l\u0131ma ilgi oldu\u011fu s\u00fcrece devam edecektir. \u00d6zg\u00fcr yaz\u0131l\u0131m\u0131n ne oldu\u011funu anlayabilmek i\u00e7in, \u00f6ncelikle [&hellip;]<\/p>\n","protected":false},"author":54,"featured_media":9097,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[43,453,31],"tags":[255,454,402],"class_list":["post-9094","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-5-sayi","category-bilisim","category-teknoloji","tag-bilgisayar","tag-bilisim","tag-yazilim"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/bilimvegelecek.com.tr\/index.php\/wp-json\/wp\/v2\/posts\/9094","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bilimvegelecek.com.tr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bilimvegelecek.com.tr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bilimvegelecek.com.tr\/index.php\/wp-json\/wp\/v2\/users\/54"}],"replies":[{"embeddable":true,"href":"https:\/\/bilimvegelecek.com.tr\/index.php\/wp-json\/wp\/v2\/comments?post=9094"}],"version-history":[{"count":0,"href":"https:\/\/bilimvegelecek.com.tr\/index.php\/wp-json\/wp\/v2\/posts\/9094\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bilimvegelecek.com.tr\/index.php\/wp-json\/wp\/v2\/media\/9097"}],"wp:attachment":[{"href":"https:\/\/bilimvegelecek.com.tr\/index.php\/wp-json\/wp\/v2\/media?parent=9094"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bilimvegelecek.com.tr\/index.php\/wp-json\/wp\/v2\/categories?post=9094"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bilimvegelecek.com.tr\/index.php\/wp-json\/wp\/v2\/tags?post=9094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}