“The ability for software to write software has significantly lowered both the incremental cost of innovation and the cost of experimentation.”