Mie mi-au parut intotdeauna ciudate operatiile aritmetice simple in care 3 / 2 = 1, fiindca in mod logic ele sunt in primul rand incorecte. Daca avem nevoie doar de partea intreaga din acel numar, adica daca vrem sa o rotunjim in jos este mult mai normal sa aplicam ulterior o functie care sa faca asta cum ar fi int($variabila), fiindca la fel am putea dori sa o rotunjim in sus ca sa dea valoarea 2, sau sa sa rotunjim in jos daca zecimalele sunt sub 50 de sutimi si in sus daca sunt peste 50 de sutimi. Adica de fapt sunt doua operatii. Una simpla, aritmetica in care 3 / 2 este in mod evident 1.5, si alta in care sa facem apoi ce vrem cu acel numar.
Dar ma rog, ca in lumea reala, depinde ce anume trebuie sa facem. Daca impartim 3 kilograme de faina in doua, rezulta cate un kilogram si jumatate pentru fiecare parte si nici nu ne punem problema ca ar putea fi altfel, dar daca trebuie sa impartim 3 copii la 2 parinti divortati, atunci nu ne punem problema pe care dintre ei sa il taiem in doua.

In domeniul programarii, ca si in cel al bazelor de date, aceasta categorisire a datelor in functie de tipul lor s-a facut fiindca anumite date pot fi pastrate in memorie si pe hard disk folosind mai putini biti, iar operatiile cu ele se fac mai rapid, in timp ce cu altele operatiile se fac mai lent, asa ca nu are rost sa pastrezi toate datele la fel, insa in mod practic aceste operatii se fac acum de procesoare mult mai puternice decat in trecut, la viteze foarte mari, incat diferenta este nesemnificativa sau absolut inexistenta, fiindca exista alte operatii care ocupa oricum mult mai mult din timpul procesorului, dupa cum ai putut vedea in cazul acelor comparatii intre programe facute in Perl si Java, in care programul in Perl era mai rapid, chiar daca Java este un limbaj puternic tipizat.
In domeniul bazelor de date mai conteaza totusi aceasta diferenta, fiindca trebuie preluate mai multe sau mai putine date de pe hard disk, trebuie transferate mai multe sau mai putine date catre programul client.
Iar pentru programatori, la fel ca in cazul majoritatii diferentelor intre limbaje... depinde de cum s-a obisnuit fiecare.

In trecut eu credeam ca daca inveti un limbaj de nivel mai inalt cum este Perl, Python, Ruby, este apoi mai greu sa inveti un limbaj de nivel mai jos ca C sau C++, fiindca esti obisnuit ca multe lucruri sa se faca automat, multe lucruri sa fie implicite si sa nu trebuiasca sa faci nimic, si ca invers este mai usor. Dar apoi am vazut ca si invers este cam la fel, fiindca unii dintre cei care se obisnuiesc sa defineasca tipul variabilelor, sa aloce memorie, s etc prefera sa vada clar acele operatii, nu sa le fie facute automat fiindca simt ca pierd controlul asupra programului, asa ca este cam ca in cazul limbilor naturale, in mod ciudat, prima limba invatata in copilarie este cea mai bine cunoscuta, indiferent cat ar fi de simpla sau de complicata.