// upozorenje! previše dugačko, i pitanje koliko poučno ;)
gojko, ne pričaj svašta.. kako možeš da tvrdiš da je m$ kriv zato što softverska industrija kaska za hardverskom.
mislim, znam, i meni je činjenica da radim na 200 puta bržem kompjuteru nego što je bio moj prvi pc (ajde da ne računam c64) gnusna, i da mogu samo da poželim da sam samo 20 puta produktivniji nego pre nekoliko godina, a ne 200. ali kriviti jednu firmu, pa makar i m$ (neko će reći naročito m$) za tako nešto je smešno. da li je linux/unix/umetni-tvoje-omiljeno-parče-softvera-ovde 200 puta napredniji nego pre neku godinu. not by a long shot. (fali mi jednako jak prevod ;)
čak šta više, možda bih se i složio da je možda m$ i zaslužan zašto ja sebi mogu da priuštim računar čija se brzina računa meri u gigahercima. (ne da podržavam m$, ali budimo realni).
dalje, problem sa softverom nije u stvari problem te prirode, jer upoređujemo babe i žabe. brzinu hardvera podiže potražnja tako što opravdava nova ulaganja u sve veće i automatizovanije pokretne trake koje proizvode sve jeftinije i jeftinije čipove. (i sporedni efekat sa većim brojem jeftinih čipova je brzina)
na takav ili sličan način, potražnja ne može da utiče na kvalitet softvera. ne postoje roboti koje bi mogli da napravimo (ma koliko para uložili, i ma kako to bilo opravdano), koji bi mogli da pišu revoluciono bolji softver.
nema revolucije u softverskoj industriji. ima samo brže ili sporije evolucije. isto kao što ni hardverska industrija odavno nije doživela revoluciju, već samo ubrzanu Evoluciju.
a hteo to da priznaš ili ne, evolucija u softveru upravo jeste ka sve višim nivoima, tj sve manjem obraćanju pažnje na optimizaciju, i ujedno udaljavanje od hardvera. (znači trenutni korak je i zvanično sa .net-om Java-olik, polu-interpreterski, ma kako se nemanja borio protiv toga ;)
a što se konkretno optimizacije tiče, i to si pogrešno razumeo. onaj text ima jako dobre primere, kada čak i bolji algoritam može da da mnogo lošiji rezultat (straničenje memorije) zbog drugih okolnosti na koje ne može da se utiče iz programa.
Citat:
(sa nemanjinog linka)
But always, and I repeat, always, my experience has been that no programmer has ever been able to predict or analyze where performance bottlenecks are without data. No matter where you think the time is going, you will be surprised to discover that it is going somewhere else.
neverovatno koliko je ovo tačno, tj koliko se slažem sa ovim. ja ne bih mogao bolje da objasnim moje mišljenje ;) (ne da se poredim sa bilo kim po iskustvu, ali stvarno ;)
eto šta iskustvo znači u programiranju. kada sam radio na jednom srednje velikom projektu (100k+ linija koda), i kada je došlo do tačke razno, pod-tačke "zašto se pobogu toliko vuče program", ja se zaleteo odmah ja ću da optimizujem ovo i ono, pa ću ovo, pa ču ono..
dok sam ja dva sata samo prolazio kroz kod i pravio analizu šta od toga svega treba optimizovati, na koji način, etc, malo stariji (bitnije iskusniji) kolega je već bio skinuo dva profilera sa neta, probao oba, jedan nije bio dobar (problem opisan u nemanjinom linku, merio je ukupno vreme potrošeno na izvršavanje svake linije koda, ne uzimavši u obzir koliko je puta ona pozvana), i sa drugim programom otkrio da je problem u delu koda koji pristupa sql serveru.
problem je opet bio u prečestom pristupanju istim podacima, kada su vrlo lako mogli da budu keširani (u stvari, samo da nisu oslobađani iz memorije) uz utrošak samo par stotina K memorije...
a najveći fazon je što ja to nikad ne bih otkrio/ispravio, jer ja nisam imao nikakve veze sa kodom za bazu (to je radio DBA), i tamo ne bih ni gledao.. (bio sam ubeđen da je moja greška ;)
// elem, moram da prestanem da se ovoliko zanosim kada pričam o programiranju... c c c ... ko me sledeći vidi da počinjem ovako dug post, neka me slobodno udari preko prstiju... ;)