django/django — pull request #2720 by Meira (2014-05-27 08:23:38+00:00)
Title: #22707 Replaced misleading primary/replica terminology with widely recognized m...

...aster/slave

All occurences of "master/slave" were recently replaced with "leader/follower" (https://github.com/django/django/pull/2692), then with "primary/replica" (https://github.com/django/django/commit/beec05686ccc3bee8461f9a5a02c607a02352ae1).
This new terminology is vague, ill-advised, and '''very misleading.'''

Django is a server-side framework with the goal of making Pythonistas' life sweet. By no means this requires reforming old and widely accepted database terminology, or feeding fat internet trolls like Feminist Software Foundation.

Let's look at the famous Zen of Python:

* Special cases aren't special enough to break the rules.
* Although practicality beats purity.
* There should be one-- and preferably only one --obvious way to do it.

And, above all:
* '''Explicit is better than implicit.'''

Here are four reasons, baked in the core of the language, as well as in the core or the developers' hearts, for why changing this '''old, clear, concise and immediately recognized''' terminology is a bad idea.

This terminology has been used for a long time, and by no means those purely technical terms carry racially charged meanings to users, neither are they offending in any other way.
This patch replaces all occurrences of "primary/replica" with the good old "master/slave" together with now unnecessary comments like "referred to as master/slave by some databases".