elm/random

Rename Generator to Random

mgold opened this issue · 2 comments

mgold commented

Over on discourse, someone was asking about the best practices for using this library and had apparently missed what we tried to convey about generators and deemphasizing seeds. Now maybe that's just part of the learning process but the idea occurred to me to rename Generator a to Random a. The comment got six hearts so some people think it's a good idea.

The benefit is that by following the "module built around a data structure of the same name" paradigm, we would really enforce that Random a is where it's at. And Random Int or Random User read quite nicely.

The large downside of course is that it's a major change, and would require a lot of tedious updates (including in elm-test and then other people's tests). Also, I can refer to generators as nouns pretty easily ("a way to combine two generators"), but "random" is an adjective so we'd need to say "a way to combine two Random values" or similar.

This is interesting.

I think it is valuable to keep it as a noun that matches the naming convention in other similar libraries. Data structures use their own names (e.g. List a, Set a, Array a) whereas APIs that are encoding some sort of logic have -er names (e.g. Parser a, Decoder a, Generator a)

I remember struggling a lot with generating random numbers in Haskell with their Random interface. I can imagine than calling it Random seems helpful for some folks who have seen it called Generator before, but my experience suggests that it would be harder when seeing it fresh. "What is a Random? This isn't like a list!" Then we're back where we started.

mgold commented

Makes sense, I’m glad to have resolution on this instead of leaving the issue open forever.