Programming languages already have dialects, but there is a distinction between dialects and registers, even in linguistics. They blur in some cases (AAVE for example), but dialects are usually thought of more as a variety of language used by people in geographic or cultural grouping; registers are used by users in different social situations. For example, when I give a presentation I use a very different register from when I have a drink with my friends.
That example actually highlights why I think register is a helpful name. Dialects vary across people, but registers vary across situations for each person.
In the programming language context, dialect can be applied on varying levels but usually signifies the former, where each individual or group has a persistent preference for some language or style. Within a single programming language, dialects are usually a bad thing because they risk splintering the community into mutually incompatible subgroups (e.g. scala fp styles, c++ boost).
Part of the reason why evolving a language is hard is because every time you introduce a new way to do something which could be done before, users have to choose. If that choice divides users into groups that persistently pick one over the other based on style or community affiliation, you’ve introduced a new dialect. If the choice flows more naturally from the situation the user finds themselves in, you’ve introduced a new register.
Like the subjunctive mood. I imagine not super helpful for English speakers where we have exactly one verb that takes a change on subjunctive mood.
In most languages with it, entering the subjunctive mood requires a prefixing context/preposition which is analogous to function coloring system/async keyword