Tonight I was reading a list of Perlisms – provocative quips from the late Dr. Perlis at Yale – when I came across number seventy-three:

It is not a language’s weakness but its strengths that control the gradient of its change: Alas, a language never escapes its embryonic sac.

A couple of my favorite programming languages constantly get picked for their failings and weird idiosyncrasies, but at the same time they have dramatically altered certain programming domains. JavaScript has revolutionized the web, Python certainly has made programming approachable and useful in academic contexts, and MATLAB has trivialized algorithmic computation.

In these languages you might find things like broken identity (in JavaScript NaN !== NaN), inconsistencies (in Python 2 * '3' is '33' but '2' * 3 is 6), or even very un-programming-like patterns (MATLAB .m files – seriously?) but I feel like these wuts are more or less the artifacts of robust systems being incapable of being everything for everyone all the time.

Truth be told – we all have some major failings, but those don’t have to be the things that holds us back or define us either. In some regards I feel emotionally scarred from experiences with lost tempers and personal shortcomings, but as I have grown older I have learned more and more how to cope with strange outbursts and rude outbursts and overlook them.

We’re all pretty amazing beings and yet we all seem to get into these kinds of situations where we explode: some outwardly in fits of rage, some inwardly in deceptive or passive aggressive tactics. While those things are all problematic, it takes some real courage to look past those when interacting with others and be able to asses them for what they are: small scars in robust and incredible systems whose strengths far out-signify their flaws.