On 6/15/05, Anze <[EMAIL PROTECTED]> wrote: > > mi ne disi pa ne vem zakaj, ... C bi rabil/rad znal predvsem za racunske > > operacije oz. analize velikih kolicin podatkov in zahtevnih aplikacij. Ce > > se motim, je C tukaj se vedno 'top'. Ali se motim? Za kaj taksnega kot je > Je 'top', takoj za assemblerjem seveda... ;)
Hja, to je ze vse lepo in prav, ampak preden "obdelas veliko kolicino podatkov" v Cju, bos moral skozi zelo obicajen postopek debugiranja. Sam C obvladam, pa se vseeno problemov lotim tam, kjer je najmanj moznosti, da bom kaj zamocil. V C/C++ je zamocit trivialno, najt bug pa obicajno ne. Seveda je fino, da jezik poznas, ampak danes to ni nujno (razen ce si ze odlicen programer in bi se rad zgolj naucil jezika, v katerem se danes pise vecina "low level" reci). > Mimogrede, tudi assembler je lepo poznati. Jaz sem pravzaprav sel po malo > drugi poti, s Pascala sem sel na assembler za x86, z njega pa na C, in ta > prehod na C je bil zelo preprost. Za assembler (ce te bo kdaj prijelo) > priporocam knjigo Toma Swana, Mastering Turbo Assembler. Glavna prednost > ucenja programiranja v assemblerju je v tem, da potem res razumes, zakaj je C > tak, kot je, da niti ne govorimo o tem, da poznas masino, na kateri delas. Ravno to je problem: arhitekture postajajo vedno bolj zapleten in razumevanje le-teh za resevanje programerskih problemov ni pomembno. Vse znanje o procesorjih, ki sem ga jaz pridobil, izhaja iz knjige "Machine code programming for commodore 64". Od takrat se ni nic bistvenega spremenilo, so pa danes na voljo orodja, ki racunalnik vedno bolj skrivajo in ti omogocajo, da se osredotocis na problem, ki ga resujes. Poleg tega procesorji samodejno resijo marsikateri optimizacijski problem, ki ga je vcasih moral programer. Vseeno je zelo dobro, da razumes matematiko in se zavedas matematicnih implikacij svojih programov (recimo njihove casovne zahtevnosti). Najboljsi (po mojem mnenju) nacin, da se naucis programiranja je, da najdes problem, za katerega je C oz. C++ ustrezen jezik (mimogrede, med C in C++ je _ogromna_ razlika, predvsem v sami "mentaliteti"). Recimo spravis se napisat kernel modul ali pa PHP razsiritev. Obdelava velike kolicine podatkov je domena sodobnejsih orodij (Google prisega na Python, pa bi tezko rekel, da imajo malo podatkov). Ce je kaksen koscek prepocasen, potem samo tisti minimum prepises v C. Optimizirat reci tam, kjer s tem pridobis manj kot 10% casa ali prostora, je nesmiselno. Gre preprosto za to, da je hitrost "throwaway prototyping", skratka izdelave konceptov, ki nekaj demonstrirajo, zelo pomembna. Tega ti C in C++ ne moreta ponuditi, zato je za razvoj potrebnega bistveno vec dela, discipline in seveda poglobljeno znanje. _______________________________________________ lugos-prog mailing list [email protected] http://liste2.lugos.si/cgi-bin/mailman/listinfo/lugos-prog
