I agree with this. The only app-based use case I can think of for a full-range random value would be to construct a unique temporary file name. But that’s easily replaced with UUID().uuidString or mkstemp() (or whatever it’s called).
Dave Sent from my iPhone > On Nov 17, 2017, at 9:10 AM, Gwendal Roué via swift-evolution > <[email protected]> wrote: > > >> Le 17 nov. 2017 à 16:04, Alejandro Alonso via swift-evolution >> <[email protected]> a écrit : >> >> If we go back to your example, you never call FixedWidthInteger.random >> either, you call range.random. Does this mean integer types shouldn’t have >> .random? No, because it means get a random number from it’s internal range >> (alias to (min ... max).random). I think we can all agree that >> Integer.random is a nicer api than making a range of its bounds. The same >> goes for Date.random and Color.random. >> >> - Alejandro > > Hello, > > I'm not random expert, but it has never happened in my developer life > (backend & frontend app developer) that I have used a pure random value from > the full domain of the random type. In this life: > > - Int.random is _always_ followed by % modulo. Unless the better > arc4random_uniform(max) is used. > - Color.random is _never_ used, because random colors look bad. > - Date.random is _never_ used, because time is a physical unit, and random > points in time do not match any physical use case. > > This does not mean that random values from the full domain are useless. Of > course not: math apps, fuzzers, etc. need them. > > Yet a range-based API would be much welcomed by regular app developers. And > also Array.randomElement(), Array.shuffled(), etc, because there are plenty > naive and bad algorithms for those simple tasks. > > Gwendal Roué > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
