matthewp / robot

🤖 A functional, immutable Finite State Machine library
https://thisrobot.life
BSD 2-Clause "Simplified" License
1.92k stars 88 forks source link

API: Consider renaming `interpret()` to `createService()` #165

Open Zearin opened 3 years ago

Zearin commented 3 years ago

The interpret() function returns something called a service everywhere else in the docs.

When I was first trying to learn Robot to use in a project of mine, it took me a couple of re-reads for this to sink in. That’s because the other functions return things that match the function name: createMachine() returns a machine, transition() returns a transition, state() returns a state, and so on.

(I don’t normally feel comfortable requesting a change to an API name. However, since Robot is still at version 0.2.x, I suppose this is the appropriate time (before v1.x) to do so.)

Consider renaming interpret() to createService(). This would make the function match what we call the thing it returns.

It would also make the only 2 top-level functions in Robot start with “create…”. That would be a nice cue that both functions are at that level.

matthewp commented 3 years ago

Personally I'd rather get rid of services altogether. I just haven't figured out how yet :)

Zearin commented 3 years ago

Until you figure out how, can I do this rename in a Pull Request? :) (Including updating the docs!)

Zearin commented 1 year ago

@matthewp ping :)

Zearin commented 1 year ago

@matthewp QQ: Can you elaborate on your wish to drop services completely?

(i.e., are you talking about something like const fsm = createMachine({…}); fsm.run()?)