Saturday, December 14, 2013

You Can Stop Programming Language Rape

Yes indeedy programs, it is what you think it is. All this "women in STEM" propagandeering has yielded feminist computer science (ht Captain Capitalism):
As a student of Technology and Social Change, I am currently exploring what a feminist programing language would look like for my thesis. Technology and Social Change an interdisciplinary degree that combines computer science with the humanities so that technology can interpreted and created through a socially conscious, interdisciplinary lens.

My research is to explore how we can combine feminism and programming languages in a way that makes social responsibility, equality, and accessibility an effective part of the programming process.
My first question is: They offer degrees in "technology and social change"?  Sounds like a factory to turn out armies of kulturkampf grievance mongers than actual people with actual skills to design and create actual goods to fill actual market needs. With no marketable skills to fill market needs, odds are this grad student will end up at a non-profit or in government, making the lives of productive citizens much more difficult, and not in industry making something useful.
I realized that to program in a feminist way, one would ideally want to use a feminist programming language. So what is a feminist programming language? Well I took a look at the major programming paradigms, the following are the four main groups a programming language can fall into: imperative, functional, object-oriented, and logic. I decided to explore feminist logic such that a feminist programming language could be derived.

I am currently exploring feminist critiques of logic in hopes of outlining a working framework for the creation of a feminist programming language.
What does she propose as a "feminist" critique of logic?  The proposition that contradiction is actually consistent:
There exist logics that handle contradiction as part of the system, namely paraconsistent logic. I think this type of logic represents the feminist idea that something can be and not be without being a contradiction, that is a system where the following statement is not explosive: (p && ¬p) == 1.
Who knew that contradicting oneself, where saying one thing, and then in the next breath stating the exact opposite, yet still be true and not a lie, was a feature of feminism, and not a bug?  As for me, I'm not confident that a system where a value could be true and untrue at the same time would be terribly useful.

But then here comes the kicker: Like a dog to its vomit, all feminism seems to return to rape™, and how to prevent rape™, and how individual consent to sex reigns supreme over structural constraints on sexuality.* One wouldn't think that rape culture hysteria would extend into the world of "1s" and "0s", but these folks are making it happen. Oh, and the person who thought this up is a dude, BTW:
Objects with "Agency".

A MOO/MUSH is a multi-user, text based adventure game where the world is designed and programmed from the inside by the players themselves. Basically, everything that exists in the world is an object and has properties, which - on the surface - makes it look like an object oriented program. You, as a player, are allowed to make new objects, but other people in the world are not permitted to change your objects except in ways that you explicitly permit, and you can never prohibit another object from performing an action. Therefore, you have a world of objects where a sense of mutual consent is enforced by the environment.

My understanding of subject-object theory is as follows: Subjects act and objects are acted upon. If we define the world as a collection of interactions between objects, we are considering people and other sentient beings as "objects" when they should be treated as something more.

MUSHes reconcile this in an interesting way by extending the object-oriented paradigm with an additional constraint: "all things are objects, but some objects have agency". So here is my hypothesis:

A feminist programming language is a language that respects the agency of objects, acting upon them only upon mutual consent. [bolded emphasis in original]

There is an interesting quality of such a language that follows from this definition: unlike most languages where anything is possible (Turing Completeness), in this language, some things are decidedly NOT possible. This has interesting analogues to reality: "just because something is possible does not mean you should do it".
Behold what feminist scholarship yields to the field of computer science. An OO programming language where the objects are prevented from having their way with another one, except of course by mutual consent of the objects. Which I suppose can be withdrawn at any time, and also of course consent is clearly articulated and is unmistakable by both objects involved and by the system as well.

It seems that CS nerds (of which I used to be one) really can keep their programs from getting bit-raped. The only thing keeping the programming language rape machine going was patriarchy™ and programming languages designed by vertical thinkers (i.e., men).  Who knew?

* " structural constraints on behavior": What I mean by this, is that a world in which structure and status governs whether one may legitimately have sex with another appears to be preferable to one in which obtaining ironclad evidence of consent is the salient metric. In other words, when a husband or a wife or a father "owns" the sexuality of his / her spouse or that of his child, answering questions of "did you legitimately go there/touch that" are much easier to answer than post-facto teasing out consent in a situation clouded by hormones, alcohol, and regret differentials. It seems to me that the property rights model of sexuality is far more effective at deciding whether or not a particular sex act is "in bounds" or "out"--and therefore superior at rape prevention--than the consent model.


vultureofcritique said...

Okay, don't blame feminism for paraconsistent logic!

Real logicians use paraconsistent logic to see if it is possible change the rules of the game set by Kurt Godel.

Paraconsistent logic is a real part of academic math.

It's similar to how some computer scientists try to see whether they can make a serious theoretical challenge to Church and Turing.

To quote the relevant comment:

What is a feminist logic is a question I’ve spent the past six months thinking about and researching. ...

There exist logics that handle contradiction as part of the system, namely paraconsistent logic. I think this type of logic represents the feminist idea that something can be and not be without being a contradiction, that is a system where the following statement is not explosive: (p && ¬p) == 1.

Paraconsistent logics are not a good tool for what she wants to do.

She might be somewhat better off with fuzzy logics, which are excellent tools for representing ambiguous ideas that have different interpretations in different contexts.

Please, don't lump serious mathematicians who criticize logic in with feminists who have only been studying for six months!

Carnivore said...

She's doing right for herself. She'll be able to get a high paying government job in Washington DC with this sort of double think.

I'm surprised any woman that young is looking for feminist-anything. That went out of favor in the 70's and early 80's. You know, women don't do as well as men in sports, therefore the search for feminist sports; women don't do as well as men in math, therefore the search for feminist math. Very old fashioned thinking.

If you want a good laugh, get a load of FemTechNet videos:

This one is particularly entertaining:

One wonders on what these women live. Oh, I know, government grants, university salaries, etc. All symptoms of a bloated and lethargic culture which can go into debt to fund this nonsense.

Borepatch said...

Grace Hopper could not be reached for comment.

4ab2dda0-3c27-11e3-9ef4-000f20980440 said...

Every instance of every class must be treated with respect.

Even the seemingly harmless act of applying an absolute value function without consent to a variable stripping that variable of a key component of its identity.

This the the equivalent of applying a hetro-normative straightjacket to a person.

In fact, we need to take this further and allow instances to redefine themselves according to their own concept of self-identity.

Just because we define a variable as an integer does not mean that this variable should not have the right to redefine itself as a rational number, or even an irrational number.

In fact, feminist programming needs to make extensive use of irrational and imaginary numbers, since these two numerical domains are in keeping with the true spirit of feminist thought.

There is one more element to make this language consistent, however.

I note that objects should only be acted upon with consent. To remain consistent with feminist principles, however, the class that calls - or 'births' another instance has the complete right to terminate the creation of that instance up until the point where the instance is written to memory.

An instance of a class must, at all times, have the right decide that it does not want to reproduce itself, especially when it is due to an unintentional interaction with another class.

paulmurray said...

If consent of objects is an issue, then CS has been aware of this issue for a very, very long time. People have been attempting to "rape" computer systems from the very beginning, and people have been writing security layers to stop it.
In other words: CS is already all over this exact topic.

Elusive Wapiti said...

@ Vulture,

I have to 'fess up to not having much familiarity with paraconsistent logic, and the my undergrad academic CS experience (when I last dealt directly with logics, writing grammars, compilers, etc), is approaching 20 years old.

This knowledge deficit, paired with the attempt to resolve the contradiction of "p ^ ~p = 1" in a feminist, "women's way of knowing", context, struck me as particularly ridiculous.

Thus the sarcastic flavor to this post.

Elusive Wapiti said...

@ Carnivore,

"...therefore the search for feminist math. Very old fashioned thinking."

And now the search for a feminist, that is to say, liberalist computing language. Very Second Wave.

@ BorePatch,

I had no idea who "Amazing Grace" was before now. What an intellectual giant, no CS feminism needed.

Also, linked ya.

Elusive Wapiti said...

@ PaulMurray, Indeed all malicious logic could be accurately viewed as "surprise sex". Again, not feminist CS needed, lol.

William Newman said...

To expand on vulture's point, note that it's not only edgy critics of the foundations of logic who mess with the law of the excluded middle, practical computer scientists have done so too. Both (1) solvers in the style of Prolog and (2) automated proof assistants in the style of HOL and Coq have real engineering applications (e.g. some kinds of planning problems and correctness verification of integrated circuits, respectively). I don't know either all that well, but I spent a few days experimenting with Prolog and several weeks with HOL Light, and stumbled upon subtleties related to the rule of the excluded middle in both cases. There is also a whole CS/statistics industry in Bayesian statistics, which is quite practical and is in a sense generalization of strictly true and false to various shades of gray.

This isn't to defend the feminism here --- it doesn't look like a thoughtful or informed critique, and it does look like the sadly common modern pattern of academic cliques high-fiving each other for fashionable nonsense. (Similarly, many academic philosophical critiques of Popper look like Marxist high-fiving nonsense.) It's just that the pompous flaky vacuousness of this work shouldn't obscure the fact that there are real issues there, as demonstrated by following the engineers instead of the tax-funded grant-backscratching political posers. (In the Popper case, the engineering development of the older philosophical ideas of falsifiability and Occam's Razor leads into implementable engineering ideas like "compression as learning" and regularization, with real applications in practical learning problems, e.g. handwriting recognition.)

vultureofcritique said...

@paulmurray - yes, I was thinking about protection and privacy in OOP, but I failed to mention that. Thanks.

@EW- sorry, I got too wrapped up to notice the sarcasm. The knowledge deficit is indeed ridiculous.

@William Newman -Coq is one of those software packages on my to-review list. I hadn't known about "compression as learning" but now I'll want to check that out too.