From: Deniz Akkus Kanca (deniz@arayan.com)
Date: Tue 22 Jul 2003 - 10:55:34 EEST
A. Murat EREN wrote:
> :))
> Sevgili msakarya, kimse sizin savunmaya gecmenizi gerektirecek bir sey soylemedi bence bu mesaj trafigi icerisinde,
> Serdar Hoca bir cok noktada hakli elbette, diyor ki kisaca, C bilmek insanin ufkunu genisletir.
>Minnacik iki programcigin icinde race condition gibi enteresan ve
zevkli bir problemin varolabilecegini
>-ve bizim bunu bulamayabilecegimizi- bilmek, mümkün cözümler ile
ugrasmis olmak, dagitik veritabanlarini
>yönetecek kocaman bir yazilimin nasil olmasi -ya da nasil olmamasi-
gerektigini düsünen insana büyük bir görüs sagliyor.
>Mesele vizyon sahibi olmak, ve ben de C'nin bu konuda cok yardimci
oldugunu düsünüyorum.
>
Bu konuda ESR'ın tavsiyeleri bence yerinde:
http://www.belgeler.org/howto/hacker-howto/hacker-howto-basics.html
Kısaca, hacker olmak isteyen birisinin programlama bilmesinin şart
olduğunu söyleyip, başlangıç dili olarak Python'u öneriyor. Önerisinin
sebebi, C'ye nazaran daha verimsiz bir dil olmasına rağmen,
programlamada sağladığı çabukluğun programcıyı daha verimli yapması.
Bir programcının bilmesi gereken diller arasında C'yi ve C++'ı sayıyor,
fakat ilk dil olmaması gerektiğini söylüyor. Ciddi bir Unix hacker
olunacak ise, o zaman C'nin gerekliliğini vurguluyor.
Python konusunda fikir ileri süremeyeceğim, fakat birden fazla
programlama dili öğrenilmesi gerektiği ve ilk dilin ne C, ne BASIC
olması gerektiği konusunda hemfikirim.
Benim ilk programlama dilim LISP idi. Ufuk açıcı ve kavram oluşturucu
bir dildir. Sonra FORTRAN ve Pascal öğrendim. Pascal bende o zaman çok
etki uyandırmamıştı, ama FORTRAN'ın yalınlığı, örneğin bir denklemi
nümerik çözmek için, kullanılabilir kılıyordu. C'yi bunlardan sonra
öğrendim. Kernighan & Ritchie'nin klasik kitabını halen C öğrenmek
isteyenlere tavsiye ederim.
C'nin başlangıçta öğrenilmesinin sakıncası, C'yi verimli kullanmak için
bir bilgisayarın pratikte nasıl çalıştığının iyi bilinmesinin
gerekmesidir. Bunu bilmezseniz iyi C yazamazsınız. Ayrıca, C, size
organizasyon konusunda herhangi bir şart koşmaz. Dolayısıyla araba
dolusu C yazsanız bile zarif bir programın nasıl olacağı konusunda bir
şey öğrenmemeniz mümkün olabilir. Halbuki LISP'de bir bilgisayarın
pratikte nasıl çalıştığını hiç bilmezsiniz, fakat data ve işlevlerin
nasıl yapılandırılması gerektiğini bilmek/öğrenmek zorunda kalırsınız.
LISP, sizi iyi bir soyutlayıcı yapar.
Delphi konusunda da, (veya herhangi bir toolkit kullanımı konusunda da)
amaç ve aracın karıştırılmaması gerektiğini söylemeliyim. Amacınız GUI
dizaynının ana noktalarını öğrenmek ve kullanılabilir bir arayüzün nasıl
tasarlanacağını öğrenmek ise, Delphi bence ideal. C'de Kernighan &
Ritchie ile başlayıp, Xlib'dan yukarıya çıkmanız için bile 10 kitap
dolduracak ek işlev öğrenmeniz gerekli. Piksel çizmekten arayüzün
kullanılabilir olması için ne gerektiğini öğrenmeye fırsat bulamazsınız.
Onda dahi "toolkit" kullanacaksınız, xlib nedir? C++ için de aynı şey
söz konusu. QT nedir?
Ama nümerik metodlar dersinizin dili, artık kaldıysa FORTRAN veya daha
doğrusu C'dir. İşletim sisteminizin dili de C'dir, bir tarafında
makinanın kendisi olmak zorundadır çünkü.
Diller ufak sözdizimlerinden ibarettir. Bence uygun amaç için çantadan
çıkarılmaya hazır birkaç araçtan biri olmalıdır ve her iş için en uygun
tek dil yoktur.
Esen kalın,
Deniz