milance, bojim se da se nismo dobro razumeli - ja uopšte nigde nisam spomenuo "kod pisan levom rukom" već sam spomenuo "provereno dobre algoritme". Dakle da na primeru objasnim - ne postoji nikakav način da neki dokazano lošiji algoritmi za recimo sortiranje (bubble, insertion) budu brži (GENERALNO, nećemo da uzimamo specijalne slučajeve gde eventualno insertion može biti brži) od quick sort-a (ili eventualno merge-sorta, za neke posebne primene).
Živim u ubeđenju da ovo važi i za sve ostalo.
Kad sam govorio o optimizaciji, rekao sam "era inteligentnih kompajlera", dok ti u svom odgovoru pričaš o "Intelovim procesorima", mora da si hardveraš pa ti je to neka profesionalna deformacija :) . Kompajleri danas zaista jesu inteligentni i znaju da optimizuju kod veooooma dobro. Iz iskustva znam kakve rezultate daju Intel-ov C kompajler za x86 arhitekturu, SUN-ov C kompajler za SPARC i slično. Banalan primer, ali je dobar primer koji objašnjava ono što rekoh u prošlom tekstu.
Na kraju zaključak koji maltene svaki dobar programer zna - ukoliko se ne govori o specijalnim slučajevima gde eventualno neki slabi algoritmi mogu da "pobede" bolje, onda tvoja izjava "Vrlo cesto se desava da superiorni algoritmi na konkretnoj masini ne rade brze nego neki obicni algoritmi" uglavnom nije tačna. "Superiorni" algoritmi skoro UVEK rade brže.
Još nešto... - Jeste da se ja profesionalno ne bavim kompajlerima, ali znam da sam u nekim knjigama koje se bave teorijom dizajna modernih kompajlera video i deo gde se govori o famoznom pajplajning-u . Tako da je isti problem "poznat" današnjim kompajlerima i valjda (to ljudi koji se bave kompajerima) oni mogu sa time da izađu na kraj.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin