type systems: missing the point

This presentation at strangeloop has been generating a lot of ink this week:


The presentation was somewhat interesting, the contentious point made was offering an SLA on a system without a good type system was unethical. This generated a lot of strong reactions and counter-reactions.


They may be right, in a vaccuum, or some parallel universe of platonic ideals. But ethics is hardly ever the only consideration. Risk vs return is another one. ROI is another. Is there a point to thinking about correctness at all if we don't even know if anyone wants the product? What's the trade-off of correctness vs all these other considerations?

That's a cold, hard calculation. For many cases, I would venture a guess that the balance leans away from correctness more than Mr. Snively and Ms. Laucher want to admit.

I'm not an advocate for bad software, but I'm definitely an advocate for good enough software. I imagine software quality grows logorithmically. Getting halfway to perfect takes one unit of time. Getting to 75% takes twice that. And so on. At some point - and this point is determined by external factors: the competition, the business area, financial considerations - it's time to stop worrying about type checking and start worrying about your business.

Leave a comment -



I'm a .NET, PHP, Python, and Javascript developer. Also Project Manager, Scrum Master, and Juilliard trained violist. You cannot connect with me on Facebook, Twitter, or LinkedIn so don't ask.