Hacker News new | ask | show | jobs
by PaulDavisThe1st 1205 days ago
"Dialect" seems more appropriate me.
2 comments

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.
Right. All of which is why I find "dialect" more appropriate.

The sorts of language/library constructs that are used are likely to vary across "people in (programming task) grouping".

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.

I would have called it "mood"/"mode"

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