Programming has been in a permanent state of crisis practically since its inception. The smart money on it continuing in the same vein. Programming is about constantly generating complexity and dealing with it. There are two emerging trends: one relies on mathematics and the other on neural networks. Both come with their own advantages and shortcomings.