Howdy everyone! It’s been a while since I did one of these. The last one about good recommenders ended up being a great discussion, so please chime in.
I got an excellent email from Normcore reader Hector (thank you!), who writes:
How should I feel when using (free) tools from companies I don't trust and wouldn't want to work for? I read the article that has been going around recently about PyTorch being more popular in academia while Tensor Flow is more popular in industry. Until I graduate someday, I'm in academia, and I wondered if I should therefore give PyTorch a try. But like you, I really don't like or trust Facebook anymore, and try to limit any interactions I have with their services. I had some dissonance with the idea that I would go to such great lengths to remove Facebook from my life, but use a machine learning tool they developed.
Theoretically (hopefully), Facebook isn't learning anything about me by pip installing PyTorch, and I'm unlikely to contribute any bug-fixes. But I'm still supporting them in a way, especially if I post questions or answers to StackOverflow, or inch them a step further in popularity. A more extreme example would be if I were using some tool put out by Palantir. At the same time, I feel very lackluster about Google (and am still locked into Gmail, Android phone etc), and use Tensor Flow. Do you think any of this matters, or should I just take the free tools and run?
Discuss away! Really curious to know what everyone thinks.
When there is no good alternative, take the tools and do good work that counters the negatives of the orgs that provide them.
Three people eating half as much meat as they used to collectively make more impact than one person going fully vegan. It's OK to be one of the three, especially as one step in a longer process.
In a technical situation so thoroughly dominated by evil megacorps, it's going to be more or less impossible to avoid work that's sponsored / controlled by one you don't trust. As an example, lots of maintainers of the Linux kernel work for Intel and Google.
Since this is unavoidable, my feeling is that you should take it seriously and limit damage where possible — don't use a Chrome where you have the option to use a Firefox, say — but also be realistic. Short of a cure for capitalism-as-currently-arranged, you're not going to avoid the taint of bad actors and bad funding, even if you stick entirely to FOSS and/or relatively ethical small-shop vendors. It's necessary, to some large degree, to treat the entire field of software as compromised and act accordingly. Don't trust overmuch, know who's responsible for the work you're re-using and what agendas it actually feeds into, have contingency plans for when things go bad.
This is kind of a non-answer. I don't have a satisfying one.
I also don't have a very good answer to this, but here's another point for consideration: in talks that Soumith Chintala, who ported PyTorch from Torch in Lua, and works at Facebook says, PyTorch is maintained by Facebook, but also by a consortium of universities and companies, including NVidia, Twitter, Berkeley, and CMU. Source: DeepLizard, which I'm currently following for my own PyTorch experiments, and the project's GitHub repo. https://deeplizard.com/learn/video/iTKbyFh-7GM https://github.com/pytorch/pytorch/graphs/contributors
If a company publishes a tool, is that significantly different than allowing their engineers free time to contribute to a community project (e.g. Kafka)? Or take Linux... Linus isn't exactly known for being a nice guy, so should you stop using Linux? Microsoft has a long history of antipathy towards open source... should we be suspicious of VS Code? The examples of companies that *someone* objects to and yet that put out valuable free products is long. Oracle... Java. Google... Go. Apple... Swift.
I think it's important to distinguish between a company's business activities and their open-source/freely-distributed engineering activities, as they may reflect different values, priorities, and benefits. But I think everyone should obey their conscience; if any association whatsoever with a company is too distasteful to you, then don't do it. But that does come with a cost of being shut out of popular projects where people are willing to make a different trade-off.
Take the free tools and run!
I don't have a cohesive thought, but I'm thinking about a few things:
- I think behind the scenes, these companies are deliberately investing in open source as a reputation management strategy. This drives conversations like this one, so developers are saying "Facebook isn't that bad, they gave us ___!"
- I'm guessing this even more of a dilemma in the web developer community - just take a look at the results from the last SO Developer Survey for frameworks used: https://insights.stackoverflow.com/survey/2019#technology-_-web-frameworks (React.js>Facebook, Angular.js>Google).
- Outside of open source tools, I bet there are still bunches of people who deleted their Facebook but are still on Instagram every day. I don't think it's necessarily virtue signaling, but using another product that brings FB revenue in the same way (aka selling your data) isn't really going to make a difference. FB is probably actually using that information strategically to pivot investment to IG.
Let's suppose that there are two types of people who work at companies: GOODPEEPS and BADPEEPS. The issue is that the bigger the company, the bigger the chance of BADPEEPS. These BADPEEPS make bad decisions, treat people badly and listen to horrible incentives. This will reflect badly on the company (rightly so).
This does not mean that within the company there are no GOODPEEPS who have something valuable to share. In many cases the GOODPEEPS have an opportunity that will not work in just any other company. Maybe even only at this one company to do that they do. To leave the company would be to perhaps abandon an open source project.
I would not feel bad about using an open source tool just because a subset of the authors (who might very well still be GOODPEEPS) work in a large company that has BADPEEPS. It's an inevitable fact that a project that is large and popular has BADPEEPS profiting near it.
That said, if you wonder what alternatives there are... as far as PyTorch/tensorflow are concerned ... you could wonder if you really need those two tools? Maybe scikit-learn is enough?
It seems well intentioned and principled to abandon or refuse to use any tool, service, library, etc. that Facebook has had some part in. I get that. But I think painting such a black and white picture misses the mark. To refuse to use PyTorch because you don't trust Facebook or wouldn't want to work for them seems, in my opinion, to be rather extreme. There are good and bad aspects of Facebook, just as there are with Google. Would you abandon all Android-powered devices, Gmail, Google Search, TensorFlow, etc. because of Google's handling of Andy Rubin? Or their plans (although now abandoned) of building a censored Chinese search engine?
Yeah, if anyone has a satisfying solution to this, please enlighten me. I am facing pretty much the exact same dilemma. Hate Facebook but use (and actually very much enjoy using) Pytorch at work. So far I am getting away with a healthy dose of cognitive dissonance but I am not sure if that's a permenant solution.
Guns don't kill people? Unix came about because goodpeeps had a problem to solve and they used what tools and hardware they had at hand. The internet was initially funded by DARPA. There is a place for renunciation as exemplar, but most of us are unwilling to take on that sort of fundamentalism. Each of us has their own ethical framework and so we make the choices we are comfortable with.