People may not have experienced the beginning of free software as a social movement.
Before agile was cool, corporate process for doing software were uncool, and HR policies more than questionable.
There was already a faint smell of bullshit for new comers to computer programming. Especially for self taught that were kind of barred from IT jobs or operators. IT in the 90's was not judging on what you could do but on your social status (often diplomas).
Free software was not only a promise to free software but also to free human beings, including workers from a dysfunctional selection process.
What were we hoping ?
To invest the max we could in developing useful software that would be both useful, and done in a free from constraints of the corporate religious rituals, and prove ourselves without stupid barrier.
An ftp server, an announce of a new release on the mailing list and you had your new linux kernel.
The muscles of free software were in the code, the fat of procedures adapted over time.
Hence coders could build a portfolio or products, the possibility to fight perceived cronyism in coders' selection by proving their merits. That was the selfish part of the newcomers. Needless to say another part of free software was coming from academic field having a tradition of «mandarinat» where we could find the most notable proponent and evangelist of free software (FSF for instance).
I dare say the coder seeking to free themselves have been slowly pushed away from free software by the holy alliance of an academic based aristocracy and crony capitalism.
Free software events at this time had few sponsors, talks were giving room to talk to everyone.
I assisted to conferences whose speakers were plagued with heavy stuttering without slides, topics on discrimination in free software (notably against women in ~2005 following debian women awareness campaign), the use of i18n frameworks to promote diversity in culture (like having GUI translated in innu, basque, allemanic, esperanto ...)
And I think the zenith of my engagement in free software was in 2005
https://www.libroscope.org/Le-libre-au-dela-du-logiciel in Dijon when I co-organized a topic on free software in the context of the coders and the freedom we were expecting from it.
Since then, FOSS events are looking more and more like infomercials, big sponsors having more slots to evangelize their technologies, and free software has been colonized in some fields by researchers. Local meetup are mostly ads for BullShit techs and products under the disguise of friendly meetups.
I may not be the smartest guy, but I doubt that implementing a text of Plato as a base of an algorithm for eventual distributed consistency is the best way ; it lacks what makes powerful ideas : simplicity. Paxos strikes me as a weird idea when we have algorithms for making collaborative text pad with pretty straightforward data structures that don't require vector clock and which are proven O(n).
You see, we forgot one fundamental freedom of free software that is now taken away from us : the freedom of researching & inventing thus having our invention recognized : Open Science ! With an equal footing with the official provider of research/patent (in form of academic papers and corporate patents).
Science and technologies should be based on evidence first that we can make stuffs works and not our capacity to formalize it or having access to cooped media or bureau of legal depot. We should be free to use the method we want as long as they are opened to discuss our points the way we chose.
So I have some biff with academics. But not only.
IT industry may not care about your diplomas, but they care about which school you attended where you made your business network. Most of "degree less" examples of SV are phony. Gates, Jobs, Zuckerberg, H&P, google may not have had diplomas, but they had the network with the wealthiest bros from the USA. The very exclusive business network formed from the ivy league (MIT, Stanford...). The solid castle of the social reproduction of the elite in USA. Same here in France where your capacity to evolve towards having certain jobs (coding being one of them) is terribly skewed in favor of the local ivy league.
How this discrimination operate ?
At a non measurable level, by imposing a way to behave, to talk and a formalism hard to grasp. CoC has even become one of them ironically while I do support this idea.
Most of you ignore that the formalism used in math nowadays in science (hence CS) is the famous object of the rant «cargo cult» science by Feynman. Long story short ~1968 US mathematicians fell in love with bourbaki (
mathématiques mordernes) and as in France imposed this formalism as the «only one best way» cause it was a promise to be able to verify correctness of everything (and blablabla). Needless to say, I think a formalism should not be about it's mathematical self contained beauty, but about its capacity to deliver simply a consistent message on how to deal with a tool.
For instance, if I give you the RFC2822 compliant 300 lines regular expressions to validate an email, you will know way less practical information and will understand nothing of mails for the exact same magnitude of informational entropy than with a RFC. Reading the RFC SHOULD even convince you that a regex is the wrong way to validate an email.
That's where the IT bugs me. RFC were a marvel of openness having the first RFC telling you how to read and write RFC in a simple language. RFC are about formalism, but the level of entry for RFC vs regex is way less. Hence, we can say there are hierarchy of formal vessels of information and the one that is being banned is the most expressive one : the simple language. (Modern RFC are hellishly complex to read JSON Web Token, Oauth2....).
The formalism of CS papers is like the regexp of formal logic.
I think this commit in python was a brilliant illustration of a subset of this problem :
Instead of requiring that comments be written in Strunk & White
Standard English, require instead that English-language comments be
clear and easily understandable by other English speakers. This
accomplishes the same goal without alienating or putting up barriers for
people (especially people of color) whose native dialect of English is
not Standard English. This change is a simple way to correct that while
maintaining the original intent of the requirement. This change also
makes the requirement more clear to people who are not familiar with
Strunk & White, since for programmers, the main relevant aspect of
that standard is "be clear and concise;" simply saying that instead of
referencing Strunk & White communicates this more effectively.
https://github.com/python/peps/pull/1470
And the comments plus the polemic proved this commit right. Including french eminent member of the evangelization of free software stating that this arbitrary grammar (nazi) barrier is legtimate.
Where does it lead us ?
Somme fellow free software coders are still fighting for the radical non discrimination aspect in free software, and that is great.
On the other hand there is a pattern on the way IT is talking about free software. We have a bunch of elites feeling self entitled to rule it.
Companies tries to out-source their code, recruitment process and formation to free software making their costs supported by the free software contributors whose bright future in being underpaid workers induces perverse incentive to gain fame. Yes I have a special tooth against npm bowl of muddy dependencies.
In HR, our github are now used against us ; a fall in our commits may mean we have depression, and we are not hired. But why some of us are on burnout ? Maybe they are being harassed by wealthy companies that relies on their code and press them to fix fast or merge a PR their soft, or by the overhead of work of bureaucracy to "sell your idea" to a steering comity that demand a peculiar document.
How much the mendacity on the internet helps to increase the well beings of grunt coders ? The top 1% is not even earning 30k$ yearly with the begging on internet. Universal Income would sure make free software non famous contributors (90% of them) wealthier working 100% of the time they want on their software !
People push free developers to take care of more of the jobs including standardizing their tools to adapt to the workflow of said companies. A one best way to handle your repository with github-clones appeared as if git was the most productive choice given the cli is a mess of inconsistency.
This is not freedom.
The biggest part of a free software to be legitimate now requires :
- a cool web page with links to resources ;
- an issue tracker ;
- CI ...
- nicely formatted pompous documentation ;
- versionized source browsing ;
- preferred language based distribution (pypi for python for instance) ;
- maybe distro based packaging ;
- docker based distribution ;
- k8s based distribution ;
- badges (CI, static analysis, bling bling) ;
And believe me this is time consuming. And once in a while something changes upstream (setuptools? language version like py2to3 or asyncio) forcing you a big gulp of accidental difficulties and wasted time to correct all the nice façades.
I think something is wrong in free software ; I would say some adhere to a myth of meritocracy that never was in the first place (first geeks had access to very expensive computers for the era and free time) that is detrimental to them.
Selling that doing free software can impress companies with your competitive abilities in a rigged competition is a SCAM, don't do free software expecting anything.
Free software (or open source) is indeed very welcoming to users. But, not that welcoming to active contributors who nowadays are discriminated. One thing is we -won't hide our face- technical excellence has been an excuse for being a jerk (linus torvalds does not comes first in the list) and still is. So called technical excellence is a religion to transform a past of privilege in a position of unchallengeable leadership.
Today a patch may be refused while algorithmically correct and documented for the following reasons :
- coding style ;
- not using a java design pattern (even in python or javascript, lol) ;
- using functions instead of objects (whereas they are equivalent) or whatever paradigm ;
- relying on system (sig handler + SIGHUP to reload a conf) rather than using a system facility (systemd) ;
- the phrasing of the patch ;
- the mood of the maintainers ;
- your fame (or lack of) ;
- your capacity to write overly bloated pretentious specifications to explain your idea backed by a lot of cryptic CS papers
....
But shouldn't be the language and OS the best judge of the quality of a software ? The heaviest difficulties in contributing do not come from the nature of computers, but from arbitrary cultural human rituals.
My advice is thus for those who are not comfortable to deal with hypocrites assholes from upper classes or the crony elitism of academic research to minimize your contributions to free software. This people are a toxic bunch of reactionary favoured kids that saw a business opportunity in an interesting social movement of protest against their legitimacy.
And for one thing I will let no one claim to speak in our names. If you belong to a community, you have a voice equal in strength with the other ones. And my words are : I don't have anymore respect for the free software community that has become exactly the opposite of what I contributed for : a bully free place of radical non discrimination.