Ve staticky typovanym jazyku se provede kontrola vstupnich dat nejen pred vstupem do funkce/objektu ale kdyz se dostatecne chytre oseka prostor typu vstupnich dat, da se matematicky dokazat validnost dat retezove. Tj. kdyz mi sedi vstupni data do moji funkce a vystup z my funkce sedi do nasledujici funkce v poradi, tak se transzitivne dokaze ze sedi celej program.
Problem je ze se musi provest mozkova lobotomie a intuitivni programy pro obycejnyho cloveka se musi nejak nacpat do toho osekanyho typovyho systemu. Obzvlast to boli u generik. Dynamickej jazyk mapuje lidskou intuici skoro presne do reseni problemu, u statickyho musi clovek provadet mentalni gymnastiku, nez svoji intuici nejak vmestna do ty omezeny svedsky bedny jmenem statickej typovej system.
Cim lepsi typovej system, tim min to boli samozrejme. Obzvlast kdyz novy typovy systemy jako Idris umoznujou typovy diry. Tj. dokud nevis co tam bude za typ, tak to preskocis a program prelozis i bez toho.
Problem je v tom ze skutecne pouzitelnej typovej system je zatim dost daleko v budoucnosti, proto vsichni radsi pouzivaji dynamicky jazyky. Nebo soucasny staticky jazyky pro skutecne jednoduchy programy, ktery jenom tahaji nejaky jasne specifikovany data sem a tam, zejmena pokud potrebujou vykon.
Vykon je lepsi u soucasnych mainstream statickych jazyku, protoze se daji prelozit do C ekvivalentu, tj. zhruba representace jak funguje CPU. Existujou i dynamicky jazyky ktery fungujou na vykonnostni urovni C. Dokonce ho i prekonavaji v dnesni dobe, kde se silne uvazuje s paralelnim vypoctem. Viz vektorovy jasyky APL family, obzvlast kdb, numpy, apod.