Citat:
Originalno napisao degojs
Svašta. Upravo obrnuto. Ako ja definišem funkciju:
void foo(int p) { .. }
u toj funkciji ja NE MORAM da brinem o tome kog je tipa "p" - znam da je UVEK tipa int. Korisnik moje klase/funkcije ne može da mi prosledi bilo šta, mora da prosledi int. A to mene oslobađa da mislim o tome šta sam dobio kao ulazni parametar.
|
apsolutno si u pravu, medjutim ono sto ti kompajler automatski pruza je da program pukne u toj situaciji. Ako zelis da uhvatis exception (a na webu to svakako zelis) moras da napises kod koji ce to da uradi, a to isto mozes da uradis i u script jezicima, sva 3 ispljuvana jezika php5, perl i python podrzavaju sasvim fino error handling u zeljenom bloku.
Znaci ovo sto ti kazes je prednost iskljucivo u situacijama gde se radi o upotrebi pogresnog tip podatka od strane developera, pa da kompajler skrene paznju na to prilikom arzvoja. To stoji, i pogotovo je korisno kod IDE i JIT kompajlera koji ti odmah podvuku gresku.
Medjutim moze na te stvari da se gleda i drugacije. Int prosledjen umesto stringa, ili obrnuto u vecini skript jezika
NIJE GRESKA, jer jezik sam radi casting kako treba i sve ce savrseno lepo funkcionisati, operatori ce dobiti tacno velicinu sa kojom ocekuju da rade i nema problema.
Stalno se provlaci prica o greskama zbog nedostatka tipova. Koje su to tacno greske? Koji tip greske moze da nastane u php ili perlu zato sto mu je prosledjen broj umesto stringa ili float umesto integera? Koji su to tacno scenariji u kojima takve greske nastaju, tj. navedite mi bar jedan, jer stvarno ne mogu da se setim ni jedne takve situacije za svojih 5+ godina web developmenta...
S druge strane u C-u sam nebrojeno mnogo puta upucao greskom float u integer ili kopirao veci string u kraci, pa se onda zezao da ispravljam, rekompajliram i linkujem sve ponovo