With every passing year, I'm more and more convinced a language approaching Haskell's pedantic-ness is A Good Thing. A language where Joda is the most convenient option, where all numerical quantities have units, and you have to make an explicit option to do "unsafe" things. Naturally, the goal of the language is to do as few unsafe operations as possible.
I think lisp is a good example: Most lisps have a full numeric tower that automatically converts between ints and bignums and ratios as appropriate. You don't have to think about the floating-point representation of 0.3 unless you wrote (double 0.3) in your code somewhere. Correctness should be the default, because it's much easier to trade some correctness for performance. Going the other way is much harder, and most people don't need performance.
This goes a long way, but now I notice the biggest obstacle is "legacy systems". The only time I get in trouble with the Clojure numeric tower is when I want to store a Ratio in the DB.
What you're saying is that people will finally understand that thinking about a problem and preventing bugs before you begin is better than trying to fight fires afterwards.
I think lisp is a good example: Most lisps have a full numeric tower that automatically converts between ints and bignums and ratios as appropriate. You don't have to think about the floating-point representation of 0.3 unless you wrote (double 0.3) in your code somewhere. Correctness should be the default, because it's much easier to trade some correctness for performance. Going the other way is much harder, and most people don't need performance.
This goes a long way, but now I notice the biggest obstacle is "legacy systems". The only time I get in trouble with the Clojure numeric tower is when I want to store a Ratio in the DB.