Another option would be to:
- First see if the functionality can be put in an easy to use API with using multiple dispatch and/or keyword arguments, without performance penalty. (The changes in master seem to be shaping up nicely to help out with that)
- Otherwise use underscores to provide longer, readable names (
sparse_ones
instead ofspones
, for example). (Hopefully, in most cases No. 1 could make this rarely necessary). - Create packages that provide legacy names (Matlabisms such as
cumsum
,cumprod
etc. come to mind), so that legacy names don’t pollute the Base namespace. That would help resolve the problem you identified about the language feeling inconsistent. (It already feels inconsistent, this could improve things).