« Open Source - follow the wa of light | Main | Ryšys (ne mobilusis) »

Štai kodėl man nepatinka foreach

Iš tikrųjų kažkada truputi teko programuoti assembleriu ir C - visuomet tekdavo galvoti kaip daryti mažiau kopijavimo, tobulinti on-fly algoritmus - viskas automatiškai, tik įsivaizduojant mastus:) Kaip kadaise keikiausi, kai perskaičiau kad bool tipas Windows API užima 4 baitus:) O kaip keikėsi pažįstamas, rašęs duomenis į failus glausdamas bitą prie bito, kai sužinojo kad Win32 visi tipai užima dvigubai vietos ir ner čia ko smulkintis:)

Buvo netgi toks Karsperskio straipsnis apie tai, kaip kopijuoti dideliais struktūras, perduodant tokiais didžiais, kuriais operuodavo procesorius (IV kelmas tai pats daro) .

Vat žmogus rašo, kad kiekvienam programuojančiam privalu žinoti asmą. [per slashdot]

Geras pastebėjimas, kad kažkodėl programos visai (ir ne tik dėl keliamų reikalavimų) ne paklūsta Merfio dėsniams (m$ tradicija?)

Comments

Manau, toliau bus dar blogiau. Programavimas jau seniai tapo pramoniniu(dar viena inzierine shaka). Rinka reikalauja, kad produktas butu pagamintas kuo greichiau, todel vis toliau ir toliau prieiname prie auktesnio absrtagavimosi lygmens, todel is chia ir tokie griozdishki duomenu tipai ir neefektyvus resursu naudojimai. Nx daryti kazka tvarkingai, jei galima tiesiog pareikalut naujesnio, galingesnio kompo su dahyyja atmintim, ir kompu gamintojams zjb(daugiau babkiu uzkaltu) ir software gamintojams zjb(nereik pernelyg daug sau proto pist) - kapitalizmas blia!

dėl abstragavimo tai truputi prieštaringa, programavimo kalbos tai visų pirmiausai įrankis ir jis turi būti lygiai toks pat patogus kaip ir funkcionalus.

Kodel prieshtaringa? palyginkim: Asmas- operuojame beveik mashiniais kodais, greitis super, koda skaityti labai sunku, rashyti irgi daug jabatnios. C - operuojame aukshtesnemis abstrakcijomis, turime abstraktus duomenu tipus, funkcijas, kodas gana greitas skaityti ir rasyti jau lengviau, kompiliatorius leidzia atsiriboti nuo mashininiu komandu ir pereiti prie aukstesnio abstragavimosi lygmens ir nepisti sau proto, beto jei disasemblinsi koda pamatysi, kad jau atsiranda kazkokiu "shiuklsliu". C++ operuojame clasemis, objektais ir t.t. tampa dar smagiau. nx, kazka rasyti, jei viska galima sulipdyti is jau esanciu klasiu, kodas letesnis, daugiau shiukliu, bet rashyt jau smagiau. Java isvis blia ;) zhmones ahueli, jokiu rodykliu - lipdyk ir dziaukis, dar aukshtesnis abstragavimosi lygmuo, kodas letas. Nu ir koks nors Prolog: isvis uzrashai predikatais ko tau reikia ir vsio, pvz masyvo rushiavimo programa 2-3 eilutes, kodas super letas, bet... Kas bus toliau? deklaratyvios kalbos? ar dar kokios nors AI pagrindu padarytos kalbos, xuj zhino? Vienzodziu taip toliau ir lipsime i auktesnius lygius, jau netgi NASA pradejo aparaturai rashyt softa JAVA, nors visada rashe C/ASM.

Poreikiai kitokie imho, modelės tebūna tavo sunkesnės - yra gi skirtumas ar pvz. atominio sprogimo modeliavimas užtrūks 30 metų dėl to kad programuotojai rašo lėtai, bet greitą kodą, ar 15 metų, jei programuotojai padės ant tų šiukšlelių mašininiame kode ir programuos su JAVA, atsižvelgdami į galingumus po 15 metų.

Ir postas buvo ne apie tai;) tiesiog bet kuria kalba reikia mokėti programuoti taip, kad kodas būtų greitas. Retkarčiai pažvelgti į debugerį, žinoti savo kalbos logiką...

P.S. Su NASA atskyras reikalas, kiek žinau mikroschemos išbandymai prie didelių apkrovų trunka daugiau nei du (ar pan.) metus, tad netgi šiandien galime tikėtis virš Žemės pakylant tik apylygius 1GHz Intelio procams mikroschemas. Galbūt todėl ir programavo greitesnėmis kalbomis (laiko programavimui/greičio santykių laimėdavo)

REKLAMA: Abstakčios kalbos tai ne tik programuotojo smagumas, bet ir mažesnės laiko sanaudos! Mokslo ir švetiko ministerija įspėja: prieš pradedami programuoti abstrakčius modelius, patirkite žemo ygio programavimo baisumus.

>>Ir postas buvo ne apie tai;) tiesiog bet kuria kalba reikia mokėti programuoti taip, kad kodas būtų greitas

Tai as ir sakau, kad del tokiu aukstu lygiu ir tokie dideli (bool- 4 baitu) tipai. O tam kad programuot, kad kodas butu greitas reikia moketi daryt algoritmu analize, kas reikalauja nemazai matematiniu zhiniu, laikytis shiek tiek programavimo kulturos, moketi pritaikyti visokias fishkes alia lygiagretus programavimas ir ciklu optimizavimas, ir bebejo tureti patirties. O visa tai pachiupineti geriausia turbut programuojant su zemo lygio kalba. imho.

tada visiškai pritariu:)

2 tonic: tame nėra nieko blogo, kad imami galingesni kompai su dafiga atmintim. Programeriaus darbo valandos kainuoja brangiau negu tos atminties paprasciausiai dadet.