Una dintre cele mai îndelungate schisme din programare este cea dintre tipizarea statică și dinamică. Am auzit o mulțime de argumente de ambele părți de-a lungul întregii mele cariere, dar foarte puține dintre ele au convins pe cineva de ceva. Așa cum raționalizările care se degrangă în rațiune rareori se întâmplă în chestiuni de credință. Călărețul va justifica întotdeauna calea elefantului. Asta nu înseamnă că nu există oameni care și-au schimbat tabăra. De fapt, astfel de indivizi strigă de obicei cele mai puternice raționalizări dintre toate. Adesea cu farmecul unui omnivor pe viață care devine brusc vegan sau al unui bancher tradițional care a avut noroc pe crypto. Cu cât credința este mai scurtă, cu atât flacăra este mai strălucitoare. Personal, sunt fără rușine genul de tip dinamic la tast. De aceea o iubesc atât de mult pe Ruby. Profită pe deplin de tipizarea dinamică pentru a permite sintaxa poetică care rezultă într-un cod atât de frumos. Pentru mine, Ruby cu tastare explicită, statică, ar fi ca o salată cu o cupă de înghețată. Pur și simplu nu merg împreună. De asemenea, voi mărturisi că am îmbrățișat poziția evanghelică pentru dactilografierea dinamică în trecut. Până la punctul de a suferi de o afecțiune a Propoziției Adevărate. Văzând lipsa de entuziasm pentru dactilografierea dinamică ca o reflectare a lipsei de educație, experiență sau poate chiar de competență. Oh, ce nebunie. Ca și cum ai încerca să convingi un introvertit că i-ar plăcea foarte mult petrecerile dacă s-ar relaxa puțin. De fapt, e foarte distractiv să fii în camere aglomerate, ore în șir, strigând ca să comunici, pentru că ce zici de atmosfera asta! În zilele noastre, am ajuns să apreciez măreția multiplicității. Programarea ar fi o efortare groaznică dacă am fi cu toții limitați la aceeași paradigmă. Natura umană este mult prea variată pentru a accepta o astfel de constrângere asupra creativității sale. Îți poți imagina dacă toată arta vizuală ar trebui să fie realizată în stilul cubismului? Sau realism? Sau toate romanele scrise în varianta scurtă și directă a lui Hemingway? Ce plictiseală ar fi repede! Ar strica magia programării. Această fuziune unică între artă și inginerie. Dar mi-a luat ceva timp să ajung la aceste concluzii. Sunt un soluționist în recuperare. Așa că atunci când văd oameni care își încrucișează inima pe neîncredere că cineva, oriunde, ar prefera JavaScript în loc de TypeScript, zâmbesc și îmi amintesc zilele când le recunoșteam zelul în oglindă. Asta nu înseamnă că toate aspectele legate de abordările de programare se reduc la mentalități egale, dar diferite. Există limite ale acestui relativism. Dar tiparea dinamică vs statică este sigură în limitele sale. La fel este și programarea funcțională versus orientată pe obiecte. Stâlpii de pe ambele axe au demonstrat că oferă software excelent de-a lungul decadelor (și lucruri groaznice!). Acum, oamenii sunt binecuvântați cu capacitatea de a se exprima la fel de bine din ambele părți. Totuși, o astfel de natură ambidextră pare rară, așa cum reiese din neîncrederea totală exprimată atât de des de oricare dintre părți că cealaltă ar putea avea o poziție rezonabilă. Nu sunt ambidextru. Nu-mi place să tastez static, iar obiectele îmi animă mintea. Dar am ajuns să apreciez faptul că alții își luminează creativitatea cu aceeași intensitate cum o fac eu cu a mea, folosind constrângeri de programare funcțională și tipuri explicit scrise. Atâta timp cât nu trebuie să-mi murdăresc Ruby-ul cu hint-uri de tip sau să scriu tot codul front-end în TypeScript, pot coexista atât de fericit cu cei care adoră Go sau nu suportă JavaScript. Trăiască diferența!