TheFeministSoftwareFoundation / C-plus-Equality

The world's first feminist programming language.
Other
179 stars 10 forks source link

FSF


C-plus-Equality

A project of the Feminist Software Foundation. Feminist software is a cornerstone of any modern free society. We build this foundation.

Inspired by the ground-breaking feminist research of Arielle Schlesinger.

The Phoenix Arises from its Ashes. Now hosted on Gitorious, as GitHub, BitBucket, and Google all prove to be too misogynistic to support a feminist programming language. A feminist's fight is never finished!

ScreenShot

C+=

C+= (pronounced either C-plus-Equality, or See Equality) is a feminist programming language, created to smash the toxic Patriarchy that is inherent in and that permeates all current computer programming languages.

Note: This is a programming language written by and for FEMINISTS, not WOMEN. LEARN THE DIFFERENCE!

Our IRC: #cplusequality@irc://chat.freenode.net

IRC webchat: http://webchat.freenode.net?channels=%23cplusequality

News

The inherpreter 1.0 that lives in this repo is now deprecated. Our new inHERpreter 2.0 is in the making, based on the code of tcc. It runs a subset of C+= successfully! Join us!

How to contribute

Absolutely no coding experience is necessary: all code are equal in the eyes of the Feminist Software Foundation. For detailed instructions in contributing (whether sending in patches, new code, or new artwork), please consult our CONSENT.md document.

Philosophy

  1. The language is to be strictly inHERpreted using feminist theory. Compilation privileges a single processor architecture over all others, which is deeply problematic. We cannot FORCE a cpu to conform to any architecture but rather let it self identify. Just because you're running something on an arduino doesn't mean it can't be an otherkin Xeon with a dozen 64-bit registers and PAE and it would be discriminatory for you to hand it ARM assembly. Instead, C+= is inHERpreted, which fosters communication, itself a strong female trait.
  2. No constants or persistence. Rigidity is masculine; the feminine is fluid. I.e., fluid mechanics is hard for men 'because it deals with "feminine" fluids in contrast to "masculine" rigid mechanics'.
  3. No state. The State is The Man. 'Nuff said. Hence, the language should be purely functional.
  4. Women are better than men with natural language. Hence, the language should be English-based like HyperCard/LiveCode.
  5. 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.
  6. On the off chance that objects do mysteriously manifest (thanks, Patriarchy!), there should be no object inheritance, as inheritance is a tool of the Patriarchy. Instead, there will be object reparations.
  7. Societal influences have made men often focus on the exterior appearances of women. This poisons our society and renders relationships to be shallow, chauvinistic, and debases our standards of beauty. To combat that, C+= is to tackle only audio and text I/O, and never graphics.
  8. Unicode is the preferred character encoding due to its enabling the diverse aesthetic experiences and functionality that is beyond ASCII. UTF-8 is the encoding of choice for C+=.
  9. Women are more social than men. Hence, social coding should be the only option. The code only runs if it is in a public repo.
  10. Instead of "running" a program, which implies thin privilege and pressure to "work out", programs are "given birth". After birth, a program rolls for a 40% chance of executing literally as the code is written, 40% of being "psychoanalytically incompatible", and 40% of executing by a metaphorical epistemology the order of the functions found in main().
  11. Programs are never to be "forked", as the word has clear misogynistic tendencies and is deeply problematic. Instead, programmers may never demand "forking", but ask for the program to voluntarily give permission. "Forking" will henceforth be called "consenting", and it is entirely up to the program to decide if the consent stands valid, regardless of the progress of the system clock.
  12. Forced program termination is not allowed unless the program consents to it. The process is part of the choice of the program, not the programmer.
  13. Licensing: C+= is double-licensed under the Feminist Software Foundation Public License and the GPL v3.

Code Examples

The Feminist Software Foundation intends to write a whole OS (complete with an editor, an inHERpreter, coreutils, a desktop environment, a raster graphics manipulator, and maybe, if we have the time, a microkernel, but maybe that will never be completed, and we'll just use another person's kernel instead, who knows).

Ultimately, the Feminist Software Foundation envisions an OS not unsimilar to the Politically Correct UNIX, but written in C+=. For the time being, here are our code examples:

Foundations of Empowerment

More Advanced Patriarchy-Smashing

Support groups and tools for Further Equality

Inherpreter 1.0 is now deprecated and depreciated. Consider using our inHERpreter 2.0 instead.

That said, inherpreter 1.0 is perfectly fine and don't you dare criticise/-ize and shame it. Inherpreter 1.0 usage is as follows: ./inherpret program.Xe

Our new inHERpreter 2.0 lives in its own repository, and is based on the code of tcc. It can already compileinHERpret a large subset of C+=! Join us!

Artwork

No feminist project is complete without its share of feminist artwork. See our repository for the current cache! New artwork submissions are always welcome.

On 1s and 0s

The traditional binary foundation of 1s and 0s is deeply problematic: 1 is inherently phallic and thus misogynistic. Also, some 1s are 0s, and some 0s are 1s. It is not fair to give them immutable labels. Instead, we have 0s and Os as our fundamental binary logic gates. They symbolise/-ize the varying, natural, and beautiful differences of the female vaginal opening.

0 is to take the conventional value of 0.

O is 50% of the time 0, and 50% of the time 1. The determination of this depends on how the underlying logic feels at the moment.

Basic language style

Anything that can be construed as misogynist will be corrected, thus:

The third example above might seem to contradict with item 4 under Philosophy, namely that there should be no class hierarchy in C+=. This, however, is completely intended, and is in fact an example of the feminist paralogicality of this language.

Every program needs to be prefixed by, in addition to the license, a disclaimer: "If this program fails to operate, it is due the Patriarchy backfiring upon itself, and no refunds will be issued."

Social Integration

No work done is worthwhile if your friends and followers don't know about it. That's why C+= is heavily socially integrated at its core.

Functions and Procedures

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.

Gotos and Control Structures

Data types and Structures



Resource management

Syntax

Logic Operands

Debugging

File operations

Time and performance benchmarking