Kendi meşrebinde hem blog, hem Türkçe dökümantasyon

Etiketler

11 Eylül 2010 Cumartesi

Herkes "KODIR" herkes "KOD YAZIYOR"

Evet, ben kıl ve gıcık biriyim. Neden mi? doğruları söylediğim için. Çok uzunca zamandır süper nefret ettiğim, sinir olduğum, hatta delirdiğim bir konu hakkında yazmak istiyorum. Pek çok kez de fikrimi çeşitli ortamlarda belirtmiş olmama rağmen, "söz uçar, yazı kalır" misali, bir kez daha bu konudaki fikirlerimi belirtmek istiyorum.

"KOD YAZIYORUM" demek havalıdır!

Öncelikle dünyanın oluşumuna kadar geri dönüyor ve "CODE" ( kod ) nedir kısaca bu konuya değinmek istiyorum.

Bilgisayarın ilk çıktığı dönemlerden gelen bir tabirdir. Günümüzdeki modern programlama dillerinin olmadığı çağlarda (!) bilgisayarı programlamak için kullanılan, gerçekten de "KOD"lardan oluşan yazım dilidir Assembly. ( Yani makine dili )

Benim şahsen tanışmam 1985-1986 yıllarına tekabül eder. 2010 yılı itibariyle ekrana bir yazı ( hello world ) yazırabilmek için yapmanı gereken;
// Commodore 64 BASIC ise
PRINT "HELLO WORLD"

// php ise
echo "hello world";

// asp ise
response.write "hello world"

// python ise
print "hello world"
şeklindedir. Ama bu işlemi, gerçekten "kod" yazarak Commodore 64'te yapmak için; önce hafızada bir yere bu yazıyı koymalı ve daha sonra ekranın ilgili koordinatına byte byte harfleri taşıyıp adreslemeniz gerekmektedir.

HAYDİ BİRAZ KOD YAZALIM


Hafızanın durumu: "M 2000 2020" yani $2000 ile $2020 arasındaki byte'lar görüntüleniyor. Gördüğünüz gibi 08-05-0C-0F gibi gerçektende "KOD"lar bulunuyor. Bunlar, 0-255 arasında ( yani $00-$ff arasında HEXDECIMAL yani 16'lık sayı sistemi ) ki byte'ları ifade eder. $0C aslında 10'luk sistemde 12, $0F'de 15'i ifade eder.

Hani bugün bu tarz şeyleri CSS renk kodlarında ( background-color: #ff0; )da kullanıyorsunuz... Hafızaya "I 2000 2020" komutu ile baktığımızda ( CBM-CODE olarak hafızaya bakarız ) HELLO WORLD yazdığını görürüz.
Yukarıdaki "CODE"da, minik bir loop ( döngü ) ile $2000'den önce 0. sonra 1. daha sonra 2., 3. ... harfi alıp, $0400'e, $0401'e $0402'ye yerleştiriyoruz. Ne zamana kadar, X 11 olana kadar. ( 11 = $0B )

Sonuç olarak ekranın sol üst köşesine "HELLO WORLD" yazdırıyorsunuz CODE yazarak.

Eğer bu işi Amiga'da yapmak isteseydik, iş çok daha korkunç boyutlara ulaşacaktı. Önce grafik ekranını açacaktık ( ekran moduna göre - hi/lo/med res ) daha sonra rom'dan ilgilili library'i kullanarak ekranın ilgili yerine byte byte harfleri taşıyacaktık. ( ki ben bile şuan bunu nasıl yaparım hatırlamıyorum (: )

Olur olmaz her duyduğunuz lafı kullanmayın!

Bugün 2010 itibariye, ne makine dili kaldı, ne makine kodu ne Assembly ne Assembler vs... Çünki bu şekilde "code" yazmak gerçekten de çok zahmetli ve gereksiz. Günümüzün modern programlama dilleriyle çok rahat yazılım geliştirmek mümkün...

PHP gibi, PYTHON gibi, JAVASCRIPT hatta C, JAVA, C++, C# vs vs vs bu yazılım dillerinin hiç biriyle yazılım geliştirdiğiniz zaman KOD YAZMIŞ OLMAZSINIZ! lütfen bunu unutmayın...

2005 yılında Gameboy Advance ( GBA ) ve Playstation Portable ( PSP ) için "INTRO" / "DEMO" yaparken ( Ansi-C dilinde ) örneğin çizgi çizdirme rutinlerini ( rutin lafı bile eski bir terimdir ve "code yazma" geleneğinden gelir ) çok daha hızlı olması için ASSEMBLY dilini kullanarak yapmıştım. Bunların dışında da son 5 yıldır ( Commodore 64 / Amiga dışında ) ne kod yazdım ne de etrafta "CODER" gördüm. ( 2010 Breakpoint Demoscene Party Commodore 64 Demo-Compo 1.si GLANCE grubunu hariç tutuyorum bu mevzulardan... Gerçek coder'lar halen yaşıyor! )

Zamanında, Amiga'da grafik işlerini, Blitter'ı DMA'yı Audio işlerini hızlı yapmak ve MULTI-TASK işlem yapabilmek için, arada YORUMLAMA olmadan, bilgisayarın, işlemcinin, ANA-DİLİNDE yazılım geliştirmek için kullanırdık makine dilini.

Amiga'da PASCAL, C vs vardı fakat bunların çalışması için önce derlenmesi ve daha sonra da makine diline çevrilmesi gerekiyordu. Demo/Intro gibi grafik/ses özelliklerini kullanmak ve hızlı işler yapmak için tek yok "CODE" yazmaktan geçiyordu.

Sonuç olarak "code" yazmak "coder" işidir. Lütfen herkes haddini bilerek kelime sarfetsin. Sırf havalı orijinal bişi diye, yada insanların anlamadığı ama "koool" bişi diye "KOD yazıyorum" denmesi benim delirmemi sağlıyor. Çünki hiç biriniz "CODE" yazmıyorsunuz!

Twitter'dan yüzlerce developer'ı takip ediyorum. Çoğu da çok acaip işlere imza atan, çığır açan insanlar... Objective-C'yi yemiş yutmuş, tonla framework yazmış onlarca API'da contributer olarak çalışıyor, işletim sistemi geliştiriyor filan... 2-3 yıldır takip ediyorum daha bir tanesi de kalkıp "kod yazıyorum" gibi bişi demedi...

Ey TÜRK YAZILIM GELİŞTİRİCİLERİ...

LÜTFEN haddinizi bilerek konuşun. Yaptığınız iş altı üstü script yazmak. ( keza ben de uzunca zamandır evime ekmeği script yazarak götürüyorum ve bundan da gurur duyuyorum ) Hava olsun diye, karizma olsun diye ulvi mertebe "CODER"lığı harcamayın lütfen!

Teşekkürler...

7 yorum:

Ragnor dedi ki...

Hmm peki ya yazdığımız şeyler programların kaynak "kod"ları değil mi? Yani ne demek istediğini anlıyorum abi ama şöyle de bi durum var, Assembly coder'larından önceki nesil direk bilgisayarın dilinde yazıyordu kodunu. O zamanlar yazılan kodun derlenmesi bile gerekmiyormuş, direk çalışıyormuş makinalarda.

Terminolojiye girdik mi işler karışıyor bence. Çok takmamak lazım. Gittik baktım wikipedia ne diyor diye, (coder başlığına baktım, programmer'a yönlendirdi :)) "A programmer, computer programmer or coder is someone who writes computer software." demiş. Bana yeterli geldi :).

Uğur "vigo" Özyılmazel dedi ki...

ragnor'um, demek istediğim "text oriented" dilleri kullananlar, hani aynı BASIC gibi, if/else gibisinden, for/each filan... bunları yazanların hiç biri CODER değil... YAZILIM GELİŞTİRİCİ ya da BİLGİSAYAR PROGRAMCISI... dikkat ediyorsan OPEN SOURCE yani açık kaynak, kaynağını göster manasında... yazılan şey ise YAZILIM, code değil... keza, wiki'de her okuduğun şeyin doğru olduğuna inanma... yani senin benim gibi insanlar yazıyor wiki'de...

LastWisher dedi ki...

Üstadım kusura bakmayın, kodlama katmanından bi habersiniz, php ile yapılanda pytonla yapılanda kodlamadır, scripting bile kodlamadır, root yazılım dilleri ile kodlama yapmak size kime kodır kime değil yargı verme hakkını vermez, hele ki yanlış bilgilendirme yapmanıza hiç müsade etmez.


ps: Commodore 64 ile tanıştığımızdan beri bende assembly yazıyorum(dum)..

ps: apple mobilme ile ilgili yazınıza girmiştim bi bakayım dedim bloğunuza şimdi çıkıyorum, rahatsız ettim.

Adsız dedi ki...

Uğur hocam. Kusura bakma ama "SAÇMALAMIŞSIN!!"

LastWisher' ın yorumuna sonuna kadar katılıyorum.

Uğur "vigo" Özyılmazel dedi ki...

keşke bu olumsuz eleştirileri yapan arkadaşlar da gerçek adlarıyla, yaptıkları (eğer varsa tabii?) işlerle ya da projelerle örnek verselerdi. yani python ile ne yapmış? c64'le ne yazmış vs. takma isimle ya da anonim olarak bol keseden atmak / yorum yapmak kolay. madem internet özgür diyoruz, ben de bunun için insanların yorumlarını hakaret içermediği sürece yayınlamaya devam edeceğim.

Adsız dedi ki...

-- konuyla alakasız olabilir, affola --

üniversite 1. sınıf: ... öğreneceğim ve hobi düzeyinde işletim sistemi yazacağım. (c güzelce öğrenilir) "web programlama da neymiş?"

2. sınıf: oha 8086 assembly, çok az kaldı! (güzelce öğrenilir, bootloader yazılır)

3. sınıf (devam etmekteyim): yuh, millet aldı yürüdü web işinde. elimde c, python ve mips/8086 assembly bilgileri var. (python'ı da prototip için kullandım hep)

şu an korka korka oyun programlama işine girdim (öğreniyorum).

ticari tarafta işime yarayacak yazılım geliştirme ortamlarının hiç birisini bilmiyorum...

lütfen bana moral verin !? gelecekte aç kalmaktan ne kadar korktuğumu bilemezsiniz. Uzun Tekel 2000 sigarayı 10-15 fırtta bitirir oldum oysa yaş desen daha 21...

hedef bayağı yüksekti oysa. :)

ilerledikçe daha ürkek oluyor insan nedense... evet, denmek istenen güzel bir şey ama para onlara gidiyor.

(yazıyı okuyunca beni anlarsınız diye düşündüm)

Adsız dedi ki...

Bir yazılımcı olarak söylediklerinize katılmıyorum. Şu an binlerce insanın yaptığı işi boş iş olarak ilan ettiniz resmen. Bence siz kimsenin kendisine coder demesine karışmayın ve laf etmeyin, kendinize low-level coder deyin.

Kolay gelsin.

Yorum Gönder

İzleyiciler

Blog Listem

Yazılacak Yazılar

  • Snow Leopard için service yazıyoruz!
  • MacPorts nedir?
  • Virtualbox , Ubuntu ve Host'da duran web folder'ı
  • Django'ya giriş?
  • Dashcode ile MobileSafari uygulaması
  • Quicklook için Plug-in yazalım?
View blog authority