Recently I removed my books from being free and started charging for them partially because I found out that "members of the Python Software Foundation" were actively trying to have my book censored. I received chat logs, screenshots, and confirmations from various colleagues proving this and after pulling my book the evidence grew. As I write this, PSF board members are actively contacting people to gather information and find out who is telling me for damage control, rather than simply issuing a statement that my mistreatment should stop. This blog post is my attempt to officially state why this is wrong and to warn others who may be considering Python in the future.
As you read this, I want you to imagine if you wrote your opinion on Python 3, or a library, or anything else, and then this happened to you. Imagine thousands of Python programmers deciding that you don't deserve to work and make a living because you don't like Python 3. Imagine being called "douchelord", "asshole", "dick", and having people claim that you are unqualified to do your job.
It's my experience that if organizations are doing these things to me--a 6'2" tall 200lbs CIS white male with stature in the industry--then they'll do it to you too. Continue reading if you want to see what they are doing, why it's wrong, and what you should do as a Python programmer with less stature.
Recently members of the PSF have been contacting me and stating certain things online that indicate their next move is to attempt to claim the following:
My answer to these claims before they come out are:
One of the purposes of the PSF is to grow the Python language community, and to do that you need the trust of people who plan to use Python in their next projects. Using it in your projects, learning it, basing companies on it, and working in the community is based on an idea, or unwritten contract, that you will be able to work. That, by helping to build something you'll get an economic return and an ability to openly talk about the main topic of the community: Python.
My crime so far has been to state publicly that I disagree with how Python 3 is implemented and the direction it has gone for the last 20 years. For stating my opinion publicly I was ridiculed, PSF members immediately told people to not read my book, said that I was unqualified to teach, contacted other authors to have my book removed from their books, wrote "critique" web pages for only my book and no others, and others called me "douchebag", "chode", "asshole", "dick", and many other names.
All because I don't like Python 3, and I'm honest about it. I still wrote my Learn Python 3 The Hard Way because I value my reader's needs, but I'm not going to do that without informing people I disagree with the direction of Python. I am not going to cover for the mistakes of others, or further their propaganda, and I feel that an informed person is better equipped to deal with these problems than someone who is lied to about the quality of Python 3. If a beginner goes into Python 3 knowing that there's 4, 5, or maybe 6 ways to format strings and that unicode is a pain, then they won't be so frustrated by it.
For informing people what I think about Python 3, other Python community members feel I deserve revenge. Yet, the PSF code of conduct states:
Members of the community are open to collaboration, whether it's on PEPs, patches, problems, or otherwise. We're receptive to constructive comment and criticism, as the experiences and skill sets of other members contribute to the whole of our efforts. We're accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference.
The PSF board will attempt to claim they have no control over their members, but if they have a Code of Conduct, and never actually remind people of it or throw anyone out for violating it, then why do they have one? PSF members and (board members past and present) are in control of important Reddit channels but do nothing. Rather than enforce the CoC the PSF board has been contacting my friends and me trying to find out who is telling me my information. That is intimidation and coercion and it needs to stop.
The proper response is to find out who is using back channels to intimidate me, throw them out of the PSF, and then issue a statement that my treatment by the Python community has been unfair and over the top insane. All I did was reasonably state that I disagree with how Python 3 is implemented and managed. I don't like the technology or the propaganda and intimidation tactics. That is perfectly reasonable to say and Python board members have even told me they agree with me. The proper response is to then talk about why Python 3 is this way, justify the decisions, or just ignore me because I still wrote a Python 3 book and I'm entitled to my opinions.
Instead, people at the PSF went and did the complete inverse and now everyone who uses Python feels justified in leveling a crazy amount of abuse at one person for saying he doesn't like Python 3.
If I were a Python developer, a company basing a solution on Python, or a student, I would be very cautious when dealing with the Python Software Foundation, its members, and its board. This behavior from the PSF has happened to me and to other people I know, and it doesn't take much to see that this is not a conspiracy theory at all. The main issue is that, while this behavior is in every organization, the PSF claims to have a Code of Conduct that forbids it.
Python is a great language, and even though it has flaws, Python 3 is totally fine. You just have to be aware of the limitations and frustrations you'll have. The problem is, anyone trying to tell you those frustrations has to wrap it in a mantle of deference or they receive abuse, so most people don't tell you what they really think. Several prominent Python programmers were willing to tell me privately they agree with me, but won't publicly because of this kind of abuse.
In closing, I leave you with this paragraph of the PSF CoC:
Members of the community are respectful. We're respectful of others, their positions, their skills, their commitments, and their efforts. We're respectful of the volunteer efforts that permeate the Python community. We're respectful of the processes set forth in the community, and we work within them. When we disagree, we are courteous in raising our issues.
My criticisms of Python 3 were respectful, but honest and direct. I simply stated what I felt about Python 3 and how it has been managed poorly for 20 years. There should be nothing wrong with doing that in a community that claims to have respect for people's efforts and welcomes criticism.
In return members of the Python community and the PSF have been abusive to me and definitely not respecting my skills or commitments to Python. I'll reiterate that I donated a book for free that was read by 12.5 million people on my single small website alone. The actual reach of my book is potentially far beyond that. The majority of people claiming my commitment to Python doesn't deserve respect haven't even done 1/1000th that much to promote Python around the world. Despite my incredibly generous donation, at great cost to me, I was treated with vitriol, anger, and attempts to destroy what little money I did make from the book.
All because I don't like Python 3's strings.
If you are a smaller fish than me then you should be very cautious when dealing with PSF members and this particular section of the Python community. If they're willing to do this to me then who knows what they'll do to someone like you.