The current state of function naming style

I usually avoid underscores in function names by designing APIs that are made of simple verbs and structs that hold complex state (and name).

Instead of writing required_action_to_take(args...) like in C, I take this long name as a sign that the software design can be improved. I introduce auxiliary structs to hold state ComplexMethodInCamelCase and a simple short verb (e.g., perform) to execute:

method1 = ComplexMethodInCamelCase(...)
method2 = AnotherComplexMethodToConsider(...)

perform(args..., method1)
perform(args..., method2)

I’ve been doing this across all the packages I maintain, and never encountered a single instance where snake_case was necessary to improve clarity. I feel that snake_case is basically a consequence of using Julia with little to no abstraction.