# Infrastructure as code would be easy if we cared
A response to [Infrastructure as code might be literally impossible
](http://blog.packagecloud.io/eng/2015/09/15/automacon-infrastructure-as-code-might-be-literally-impossible/)
What if I told you:
* Some languages are perceived as terribly difficult, but are easy
* I'm not surprised MRI is buggy. It's written in C
* I'm not surprised apt is buggy. It's written in C
* You don't have to read every line to understand code if you:
* Understand the *laws* the code obeys
* Require [proof](https://gist.github.com/alanpog/3316784)
* We *already know* better ways of building computer systems
* (I do work that requires a lower defect rate than a lot of software)
* Abstraction works
* The "law" of leaky abstractions is false
* Worse, it's convinced a generation of engineers that broken abstractions are ok
* We need to be realistic about how much we care about correctness
* If you're using ruby, you've already put a lower bound on your defect rate
* Functional-language marketing is dishonest:
* We say "spend the same amount of time and have fewer defects"
* But any real business:
* Knows what their acceptable defect rate is
* Is already operating at it
* So: defect rate homeostasis
* The real value proposition is "move faster and have the same number of defects"
* But we treat a nonzero defect rate as a moral failing
* Big companies already adjust e.g. twitter:
* Initially written in Ruby
* Fail whale
* Rewritten in Scala as correctness became more important
* Thinking bigger is already happening
* nix/nixos is the bigger solution to package management you were asking for
* (but it's written in C++, so it's probably still buggy)
* If reducing your defect rate is important to you:
* Stop using Ruby
* Stop using C tools
* Idris if you really care
* Haskell/F#/OCaml/Scala if you care a bit
* (Yes you can achieve a low defect rate in C, but it's more expensive than using better tools)
* It's not impossible to do it right. It's not even hard
* We just don't care enough
* And there's nothing wrong with that!
* Users value features more than correctness
* The free market works
* But let's be honest about it
[Home](/)
comments powered by Disqus