RSSAmplifier

Blog

Type Inference

Coding, programming languages, retrocomputing, and more.

typeinference.comRSS feed ↗5 posts

Latest posts

Deeply typed programming languages

Uncle Bob did it again. Some months ago he wrote Type Wars, a post to defend static type systems are not really needed if you do TDD. Now he’s back. In his latest post, The Dark Path (I know: these titles sound like Star Wars sequels) he brings new weapons for the dynamic languages enthusiasts (argument from authority included) to tell everyone else all these static type checks are useless. In...

Algebraic Types and Rudimentary Coding

This week I tweeted a fragment of code showing how to declare an algebraic type to enumerate the operating systems supported by your application in Scala. Surprisingly, there was some negative replies against this practice. Some people pointed out this was over-engineering, defending the code should be simpler (IMHO, rudimentary). Twitter is probably the worst format to discuss the proposal an...

TDD vs Static Typing

Yesterday Uncle Bob posted an article about Type Wars. In summary, the post describes his own experience with different type systems across the times. How types appeared in the mainstream languages and how they competed from the early days to the dynamic vs static typing debate of our days. There is an interesting introduction in the post about what lead to Uncle Bob to consider type systems p...

Covariance and Contravariance

Some weeks ago I gave a introductory talk of Scala for Java programmers. At some point I introduced algebraical data types in Scala using sealed traits, and I though it was a nice moment to show how the language supports covariance and contravariance for generic types. The audience didn’t agree it was a nice moment. They weren’t familiarized with these terms at all, and we had no time enough t...

Type Inference

In a blog titled Type Inference, it’s mandatory to talk about type inference. For some time, I assumed the concept should be well known for any programmer. That’s why I thought I was a great name for a blog about programming. But recently I realized I was wrong. Not meaning in the blog name, which is absolutely cool. I was wrong about the spread of type inference concept. In the modern softwa...