- Portals
- The Current Year
- ED in the News
- Admins
- Help ED Rebuild
- Archive
- ED Bookmarklet
- Donate Bitcoin
Contact an admin on Discord or EDF if you want an account. Also fuck bots.
C+=: Difference between revisions
imported>LmaoZedong Created page with "C+= (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 compu..." |
imported>LmaoZedong No edit summary |
||
Line 111: | Line 111: | ||
*[https://gitorious.org/c-plus-equality/c-plus-equality/source/cefcfb4276889bd3833c539225a9cdfd3eb16d33: Download C+= here (also main source of this article)] | *[https://gitorious.org/c-plus-equality/c-plus-equality/source/cefcfb4276889bd3833c539225a9cdfd3eb16d33: Download C+= here (also main source of this article)] | ||
*[https://gitorious.org/inherpreter/inherpreter/source/f8938979c6de6ead355b0a243c460606900ee728: Inherpreter download] | *[https://gitorious.org/inherpreter/inherpreter/source/f8938979c6de6ead355b0a243c460606900ee728: Inherpreter download] | ||
{{Softwarez}} | |||
{{Trolls}} |
Revision as of 16:17, 18 October 2014
C+= (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. Its a language for feminists, not for women. The language was created by /g/entoomen
Philosophy
- The language is to be strictly interpreted 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 interpreted, which fosters communication, itself a strong female trait.
- 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'.
- No state. The State is The Man. 'Nuff said. Hence, the language should be purely functional.
- Women are better than men with natural language. Hence, the language should be English-based like HyperCard/LiveCode.
- 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.
- 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.
- 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.
- 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+=.
- 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.
- 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().
- 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. Forks is for software what Rape is for women.
- 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.
- Licensing: C+= is double-licensed under the Feminist Software Foundation Public License and the GPL v3 (the one that Richard Stallman has tatooed on his penis).
C+= and its Syntax
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.
Anything that can be construed as misogynist will be corrected, thus:
- private == privileged
- printf(); == yell();
- class Foo{}; == social_construct Foo{};
- "#"include == #consider
- break; == leave;
- if() == maybe()
- for() == check()
- while() == freeflowing()
- sin(x) == biotruth(x)
- div == unite
- 'y's are strictly prohibited when naming variables; only 'x's are allowed
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." 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. Should there be any exceptions from running the program, C+= will throw a Trigger Warning.
Control structures are abolished. Code may flow freely and choose its own path. Therefore check() is merely a guideline and the code flow is free to choose to consider its suggestions. This language endorses the use of consider_jump, which is a proper implementation of the oppressive "goto" and serves as advice on what to do next. Catch shall not be used. Someone's raise of concern can too easily be censored with an empty catch block. Instead, complaints or trigger warnings are puplicly logged with their traces and may be handled with an inspect block. The use of nothrow poses a threat to free speech as someone's attempt to make his voice heard will be punished with termination. There is no need for exit(), terminate() or atexit() as a feminist's work is never done.
Primitive variable types are not defined on declaration. Instead, the variable is free to choose its own type when it is utilised/-ized. This preserves the variable's right to self-identify as any datatype it feels that it is. Variables self-declaring as pointers are known as "otherkin". A pointer to an array is an "arraykin". 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 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.
Instead of signed and unsigned, types in C+= are now trans* and cis. Any trans* types function the same as diversity. Void is now independent. There is to be no lexical scoping — all variables are now global. Global variables are now called cosmopolitan, or cosmo for short. Long is now studFling, and short is now mealTicket. There is to be no encapsulation: don't tell me to protect my members, tell other functions not to access them! Every variable has a random percentage of consent associated to it. A variable can be affected with a number if and only if it is consenting. Failure to do so will result in C+= throwing a ForcedInsertionTriggerWarning.
Integers, doubles, and longs are deemed to be unnecessary labels and stereotypes for numerical values. A number can be an integer or a a double or a long if xir so identifies xirself. All numerical values will thus be represented as xe, and it is up to the value xirself to choose to identify as whatever xir chooses to identify as. 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. 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.
Strings are called Ideals, or id for short. Feminist ideals are usually extremely well written, detailed and lengthy, clearly longer than what could be held with a simple char array. Characters are now called strong. Pointers are called preferred pronouns, or prepro for short. Pointer is phallic and is thus problematic. All prepros of void type by default — in fact, all variables must be instantiated without type, and are allowed to randomly choose their type during execution. A new data type, diversity, is also included, which initiates by random as one of the many data types, and changes during the course of the program.
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
Each program must have an equal number of each available data type and they all must be used equally. For example, int ceo = 3, int stewardess = 5 would generate a trigger_warning(). However, int ceo = 3, char stewardess = apple would be fine. While this may look incorrect, keep in mind variables in this language are not constrained by their declared data types.
Matrices are strongly encouraged, due to the word's etymological roots tracing back to mother in Latin. Matrices are to be ranked and sorted by their relative Privilege. Their relative levels of Privilege are to be revealed only if the programmer and the user are both women. If you are a man reading this README, Matrices don't have privileges and are eternally oppressed. Instead, consider checking your own privilege.
Curly brackets are not allowed, as they perpetuate our society's stereotype of the 'curly' women. Instead, Python-esque indentation is used. Indentation is fluid. Both spaces and tabs are allowed. At no point should the programmer attempt to use indentation to create actual hierarchy in code nesting, as that implies hierarchy in the code. Instead, code indentation is used only for aesthetic purposes. In order to eliminate curly brackets and enforce fluidity of indentation, implementation of php's alternative syntax for control structures is encouraged.
To turn the patriarchal control structures into liberation statements, every structure starting marker ({ or : ) should be replaced by OPENDIALOGUE, and every terminator (like endif, endforeach and endswitch) should be replaced with ENDMISOGYNY. Line terminators should not be used. Programmers get to select their own 'line decorator' to use in lieu of a line terminator. This is of course open to interpretation and can be eschewed altogether as a badge of solidarity for differently abled programmers. Statements are terminated by a period instead of a semicolon. Semicolons are clearly a phallus symbol. C+= supports freebleeding and thus uses periods.
Resource allocation is inversely proportional to privilege level. Privileged lobbyings with large arrays are penalised/-ized, their arrays removed from the heap and redistributed amongst less privileged lobbyings. This is called the progressive stack. If a lobbying needs more resources it should call the lobbying ChildSupport(). Garbage collection is problematic as it enforces class oppression of the less privileged. Instead, memory is liberated by memory liberation.
Inherpreter
To be able to test and then compile C+= code, developers have created the inherpreter, the only interpreter made for women, one that removes the Patriarchy. If the programm crashes, it means that it has detected Misogyny in the code, to solve the problem, just be a woman. This language is not man friendly.
Feminism Reaction
Feminists went uber butthurt with the release of this particular language, which was the response to the idea suggested by Feminist groups of creating a Women programming language. They started harashing and doxing all the developers of the C+= project, the project was also removed from Github, Bitbucket, Google code and many other repositories due to threats and pressure by the SJW movement. It reminds me of something... but in the opposite way.
C+= programm examples
External Links
C+= is part of a series on Visit the Softwarez Portal for complete coverage. |
C+= is part of a series on Visit the Trolls Portal for complete coverage. |