A Feminist Programming Language: C+=

A couple of days ago an enterprising programmer posted the detailed description of a satirical “feminist programming language” dubbed C+= (a play on the programming languages C and C++). The language is obviously fake but the description is a hilarious parody of many feminist theories and concepts. You’ll need some programming knowledge (especially C/C++) to get all the jokes but I’ve quoted the best ones below.

Mocking the idea of class struggle using C++ classes and object-oriented programming:

No class hierarchy or other stigmata of OOP (objectification-oriented programming). In fact, as an intersectional acknowledgement of Class Struggle our language will have no classes at all.

Check your privilege:

All functions and procedures are now called lobbying, because actually doing things functionally and with clear-defined procedures is a Patriarchal construct and thus problematic.

  • All lobbying must be run at the right level of privilege. Before returning anything they must check their privilege.
  • If any other lobbying is more disadvantaged than this it will win the Privilege Check and return its own value instead. This stops heterosexist and cis-gendered lobbyings from dominating the discourse.

More concern over privilege:

Constants are not allowed, as the idea of a lack of identity fluidity is problematic. Additionally, if one constant were larger than another, that would privilege the larger one over the smaller one. As such, any numeric value is a variable, and is required to take on at least 2 values over the course of the program, or the interpreter will throw a Trigger Warning.

The Patriarchy is whatever feminists need to blame, and is therefore imaginary:

The only constants are the amount of privilege lobbyings are share()d with. These are all real values greater than 0, the only exception is the value of WHITE_HETEROSEXUAL_CISGENDER_MALE_PRIVILEGE which is set to infinity, and also the value of PATRIARCHY, which is set to sqrt(-1). The value of PATRIARCHY is non-deterministically i, -i, or something else depending on how it identifies itself.

Mocking the feminist invention of rape culture using booleans:

Booleans are banned for imposing a binary view of true and false. C+= operates paralogically and transcends the trappings of Patriarchal binary logic. No means no, and yes could mean no as well. Stop raping women. Instead of Booleans we now have Boolean+, or bool+ for short, which has three states: true, false, and maybe. The number of states may go up as intersectionality of the moment calls for such a need.

Mocking gender identity:

In general, all data types are dynamic. Who’s to say a number can’t be a string if it believes it is? Data structures and variables of all kinds have a random chance of deciding that they don’t “feel right”, and are actually a different type, and must henceforth be referred to ONLY as its preferred data type. Not calling the preferred data type leads to a PrivilegeNotCheckedException, or PrivilegeNotCheckedTriggerWarning

Privilege and affirmative action:

Resource allocation is inversely proportional to privilege level.

Feminists will say any two things are equal, even when they are obviously not:

Equality between two variables is denoted by ==. Since everyone is equal (with the exception of cishet men, who are already excluded as per the license), this always evaluates to true.

This extreme devotion to call everything equal and eliminate “privilege” can and often does cause feminists to make math errors:

When evaluating expressions, * and / are no longer privileged over + and -. Rather, each previous use of each operator is counted, and expressions are evaluated based on which ones have been used the least up until that point.

You are a hateful misogynist for daring to criticize feminism:

There can be no bugs in this language. To suggest otherwise is offensive. There are no bugs, only snowflakes. There is to be no debugging. We need to do away with functional-centric, bugphobic attitudes in programming. You need to accept the program the way it is.

In addition to the detailed description, the author also provided some hilarious source code examples. My favorite is the sorting “algorithm” femsort.Xe.

/*
 * The concept of 'sorting' things has long been a cornerstone of
 * patriarchal discrimination against women and PoC. To 'sort' objects
 * according to some percieved 'value' is morally wrong and oppressive.
 * Therefore a truly feminist algorithm cannot be based upon comparing
 * values of 'objects'. Feminist sorting algorithms have to take various
 * things into consideration: gender, race, the program's feelings and
 * the current make-up of the objects to be sorted. To implement this,
 * we use a progressive stack with added affirmative action.
 */

#consider
#consider
#consider
#consider <progressive_stack.Xir>
#consider <Affirmative_Action.Xir>

xe womain(xe *Unique_person[])
{
	CheckPrivilege(); //Always check your privilege
	CheckPrivilege(); //Better check it twice
	xe sorted_unique_people=progressive_stack(xe *Unique_person[]); //construct the
									//progressive stack
	among (person p : Unique_person) {
		maybe(p.gender==male && p.orentation==het_cis_scum) {
			yell('RAPE RAPE RAPE RAPE!!!!!');
			crush(p); //Use the function crush in Dworkin.Xir to discard the oppressor
		ENDMISOGYNY
		perhaps_and_equally_valid {
		ynt q = accepts(guilt_feel(p.oppression)); //measure the oppression level according to
	 						  //the function guilt_feel in feelings.Xir
		sorted_unique_people[q]=accepts(p); //assign every wonderful person a place in the new stack
		ENDMISOGYNY
		maybe(feels==right) {
		affirmative_action(&sorted_unique_people) //If the progrym feels like it, it will
							  //use affirmative action to make the sorting more fair.
							  //The actual affirmative action algorithm is poorly understood,
							  //but DON'T MESS WITH IT! IT IS FAIR!
		ENDMISOGYNY
	ENDMISOGYNY
	return sorted_unique_people;
ENDMISOGYNY
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: