On 2015-06-16 2:15 PM, The Sidhekin wrote:
On Tue, Jun 16, 2015 at 10:52 PM, Michael Zedeler <mich...@zedeler.dk> wrote:
...and unpredictable performance is a cost you're willing to pay?
I don't write performance-critical applications, but even if I did, why would
I prefer getting the wrong answer faster?
I agree with Sidhekin and similar mentalities.
On the range between safety/correctness and speed, a good programming language /
tool should always default to the most safe/correct option when the user doesn't
specify where on the range they want, and leave it to the power users to
explicitly make the trade-off when they know what they're doing.
In this case, people who explicitly want floats because of performance rather
than exact rationals do indeed count as power users.
Normal people are more interested in not being surprised by the answers they get
to what should be common-sense questions, such as when adding 10.3 to 14.2.
I should also point out that finance / anything to do with money is an extremely
common use case that cares very much about math being exact, its not just
esoteric science applications.
This all being said, I draw the line where implementing is much more complicated
to serve esoteric cases. So for example while exact precision rationals
absolutely should be default / part of core, something like symbolic values eg
exact representations of irrational numbers, are perfectly valid to, and
probably shouldn't, be part of core. Exact rationals are not particularly
complicated. Its perfectly reasonable to expect in the core that if someone
does math that is known to deal with irrationals in general, that loss of
precision then is acceptable.
-- Darren Duncan