Eram copil când un nene mai în vârstă, cu cercel în ureche, mi-a zis că atunci când aleg lăutarul pentru nuntă, nu trebuie să stau să-i ascult repertoriul în stradă, ci trebuie să mă uit doar cum pune arcușul pe vioară. De atunci, eu doar urmăresc un element esențial la om și știu dacă voi colabora sau nu cu omul respectiv.
Să dau un exemplu: dacă văd o carte de programare și acolo este banala secvență de calcul pentru înmulțirea a două matrici, mă uit cum calculează suma aceea de produse. Dacă se folosește:
C(I,J)=0
DO 30 K=1,N
30 C(I,J)=C(I,J)+A(I,K)*B(K,J)
m-am convins că nu este ce trebuie, dar dacă este secvența:
CIJ=0
DO 30 K=1,N
30 CIJ=CIJ+A(I,K)*B(K,J)
C(I,J)=CIJ
lăutarul este bun, că știe limbaje de asamblare și le are cu ciclurile mașină, în evaluarea expresiilor de referire, căci una este să referi CIJ care este o variabilă elementară și cu totul altfel stă calculul adresei zonei de memorie C(I,J), când tipul de adresare este altul, ceva mai complicat.
Am văzut lucruri și mai teribile. Noroc că acum Inteligența Artificială optimizează programe și chiar compilatoarele au componente de optimizare încorporate în ele. În vremurile de demult duplicarea de cod era rezolvată, căci dacă un prigramator scria:
TOTAL=-1
TOTAL=7
TOTAL=0
Secvența era optimizată devenind:
TOTAL=0 și punct, căci și atunci nu se tolerau programele proaste.
(24 ocotmbrie 2026)