Crimes Against Type Checking [0]

Type systems. They are a means to define, restrict, and refine data. There is endless debate around them. How useful they are, how neccesary they are, how powerful or restricting they are. yadda, yadda, yadda. blah, blah, blah.

As someone the comes from a dynamically typed background, I tend to find them restrictive. There are a multitude of nominal type systems that force objects and data into one specific box. A select number of structually typed languages that don't quite check all my boxes. But, I do find them types useful.

My primary interest in types are what you can express and how you can interact with them at runtime. The ability refine them at any time, access to intelligent code completion, the ability to type on multiple propeties of my data. Lots of things I can list here. However, there is one feature more important than any other: the ability to poke and prod the compiler.

I like exploring languages and seeing what ideas they bring to the table. I like static typing and seeing what I can get away with. And, I want to share that exploration. Expect ugly code, weird quirks, and so so many type errors.

Scripting Objects without Trash Day

The two-axis chart. It's a classic tool for simplifying information. However, for the most part, it is... not very good. The metrics on them are almost always vibe checks. And flattens endless nuance into a literal 2D plane. But, there is one thing they do have above other charts: they're fun to make.

So, in the spirit of the internet, I've made my own two-axis chart:

A two axis chart for "GC vs No GC" and "Scripting language vs Not a scripting language".
Read more  ↩︎