← All writing
Notes

On Strong Typing

Thanos Diacakis
Thanos Diacakis
Engineering coach

incongruent-types.ts

My first meaningful code was in Modula-2 and then C and C++ in grad school.

All these were strongly typed languages.

I remember naming member variables m_iPrice m for member, i for integer, etc.

That’s when IDEs gave you no support in remembering what was what.

After that, I think I may have written some Java. Or I lucked out and skipped over it. 😱

Somewhere in the late 2000s, I discovered Python.

Python was truly awesome. I didn’t have to bother with squiggly brackets or a bunch of other things, including types.

It would all figure it out by itself.

It was marvelous and I did not give much thought to the lack of strong typing.

15 years later, now having built some projects in Python that have spanned almost that whole duration I have learned a few things:

(Bravo to me, I’m so great - but not quite - keep reading).

Probably partly true, but that was not the whole story.

There was just no way to have certainty that something you change over here will not break something way over there.

Now that was suddenly a big freakin’ problem. 💣

During the last 7 years at Uber and Included Health I mostly wrote Go code.

Returning to this issue, with some added experience, I have now gained an appreciation for the utility of strongly typed languages.

My takeaways:

See this pattern in your own team?

A free consult is the fastest way to figure out how deep it goes – and where the smallest meaningful change would be.

→  Book a free consultation