When you complain about an open source project's management you'll get the reply, "Use something else if you don't like it!" That'd be true except for the tiny problem that *many* projects also strive for complete monopolistic dominance.
Let me tell you about Java in early 2k:
I was programming in Java since it's release, and all through the late 90s into the early 2000s. At first Java was very determined to unseat C++ and it used various propaganda tactics to turn C++ and malloc into a weird enemy for all of us to hate. This worked great!
Everything was fine though because there were plenty of jobs in tech because of the dot-com boom, and then suddenly there were not jobs because of the dot-com bomb.
Overnight it seemed as if the *only* way to get a job was at giant companies, and they *loved* Enterprise Java.
Now, this is the golden ticket for many open source projects and corporations. They all want to be the top dog #1 in the industry for their particular use, and once they gain that position they become abusive by ignoring user needs and extracting wealth from them.
With Java the dominance was so insane that *every* language had to copy Java's weirdness to survive. If you wonder why a language has some odd CamelCase things it's because early Python, Ruby, and others had to copy Java's semantics and style to even be considered "serious".
Then Ruby on Rails breaks on the scene around 2004-2005 took on Java's dominance with the exact same kind of propaganda tactic.
"No more XML situps!"
"Convention of configuration!"
And this worked just the same way Java's did and RoR started eating into Java's lunch.
Right at this transition time from Java to Ruby I got into Ruby and started trying to use it. The backlash from Java developers was INSANE! I caught one logging into machines and sabotaging the RoR processes. Another would yell at me in meetings about Rails. Others quit over it.
Imagine that. You love Java so much that you'll *quit* just because another guy 2 cubicles down is using something not-Java. That's the power of propaganda and the exact position Ruby on Rails would later capture with the same results.
The goal of all projects is capture.
Later Ruby on Rails unseated Java and became the dominant force, and once again if you did anything else you were ridiculed and people were threatened. I started using Python and people had the same reactions, freaking out, quitting, yelling, shaming, everything Java did.
Now, this social pressure is insane and most people can't resist it. I know it definitely cost me jobs trying to switch languages in these situations. Changing languages also cost me friends who started to hate me over just using something else, plus a whole slew of crazy haters.
So, how is it possible for someone to tell you "just use something else if you don't like it" while that same person is also doing their very best to capture the market and make it impossible to use anything else?
When you have no choice but to use their project they use this control to exploit you and ignore your needs.
When you complain about their actions they tell you to just leave.
But, you can't, so they actually mean: "Shut up and do as you're told."
There's also the insane switching costs when learning a new programming language and platform. "Just use something else" takes on a whole meaning when the only way to use something else is to spend a year completely changing your whole platform and language.
Throw into this the practice of inventing shiboleths to gate keep people. You want to switch from Java to Ruby? Welp, better stop using for-loops and use .each or you'll never get a job.
All this adds up to "just use something else" is only an abusive control gesture.
What *should* happen is if a project is so dominant that people have no choice then the project should be run democratically. Banning people from these large projects should also be done carefully because these actions can put people completely out of work over minor things.
For example, the Go project bans people for using words with the letters "ass" *in* them. Someone was banned for rightfully calling something "halfassed", and this ban was done unilaterally with zero oversight by an unelected cop.
*That* is authoritarianism, but...
In the early days of Go before its dominance they would never have been so sensitive because they wanted to attract as many people as possible. I know many of the early Gophers and many of them are total trasholes who would never survive today's Go policies.
Finally, this is also why you should get *very* good at learning new languages and platforms. The only reason I was able to survive Java, Ruby, and Python's authoritarianism is because I could learn a new language fast and make good things quick, which removed their power.
But, even being able to learn new languages doesn't reduce the risk of some jackass in a dominant project just deciding they don't like you one day and using their power to destroy you. Always have your backup plan in the works and never trust a project will behave ethically.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I totally forgot to warn people to not quit their job before joining my course, but I also think I *really* need to make this some kind of digital signature requirement. You agree to not quit your job and submit a photo with the date and your name on a piece of paper for proof.
I'm mostly joking, but the last time I ran a little experimental class I had so many people quit their perfectly good jobs to study and then flame out because they...couldn't buy food. I was horrified and I never told them to do that. Hell no, keep your job people!
I gathered that the only reason "quit your job to become a programmer" was even a fantasy is because programmers are oddly not very honest about how miserable programming is most of the time. It's a labor of love, and has big rewards for the pain, but it is painful.
If you give your resume to a recruiter they will spam it to every company possible in an attempt to be the "first" to get you so they get commission. When 2 do it there's a conflict.
The gist is recruiters get paid a finder's fee. Companies then use multiple recruiters and sometimes you'll get 2 recruiting companies submitting your resume without you knowing. The hiring company then disqualifies you rather than deal with the legal hassle of who to pay.
Now, you might be thinking, how is it that two or more recruiting companies are getting your resume? Does that mean you're a dirty cheater who's double dealing?
No. People have a right to find work through multiple avenues, but also *many* recruiting companies scrape resumes.
Every time I read something by a cryptographer claiming to know when people are qualified to attempt cryptography software I go and see if they said *anything* about OpenSSL during the 20+ years it was obviously flawed:
In general nearly everyone who is currently working in cryptography accepted OpenSSL as correctly implemented for decades even though a basic analysis of the C code showed obvious flaws. They not only accepted OpenSSL but repeatedly yelled at people who didn't use it.
If you wanted to study crypto and implemented existing proven algorithms out came the Cryptography Experts yelling at you to "just use OpenSSL". It was *the* only implementation allowed. Then this happened:
I've got an alternative history of Amazon's switch to Linux and creation of AWS that I heard from an open source project they coopted and practically destroyed. Keep in mind this story is 2nd hand and the open source developers were BITTER, but Amazon is famous for this:
I joined this other project that was started by a guy who sold cluster servers to big secret government agencies, and he was working with an open source team that had a project similar to Beowulf en.wikipedia.org/wiki/Beowulf_c… but would be closer to Chef or Puppet.
This project was small, maybe 4 developers, and what they wrote did very nice automated provisioning of machines, which you could then use in a cluster. When I started working with them though they were JEEERRRRKS. Wow, they were absolute turds.
Another element of my "why browsers must die" linked list is how some parts of it assume everything is a flexible rectangular viewport with fixed dimensions, and other parts assume it's an infinite plane with no fixed dimensions.
For example, scroll into view:
If a browser is an infinite plane that you view through a viewport (like a video game), then there *must* be a way to cause interactions when some element of the infinite plane comes into view. Yet, finding an event for this very necessary thing is impossible.
It was asked *11 years ago*, but was active *11 days ago*. It's been viewed 727k times, and has as many possible answers as there are people posting over various years.
Played a little more Subsistence this morning and I'm convinced it's actually a sci-fi game. You wake up in an enclosed part of Alaska, fenced off, and build a base with an electronic unit attached to a wall that generates power and fabricates items from loot you get in bags.
I could see a back story to the game that's similar to The Prisoner, where you have no idea why you're stuck here, but it's some kind of punishment/experiment, and the bags of loot are dropped to see what you'd do. This would also explain to impossible things:
1. That shooting an animal from about 1 mile away lets the animal instantly know where you are and run that 1 mile in 2 seconds to kill you. They *have* to be genetically engineered super wolves and bears, so sci-fi.