1/8
I literally cannot write software outside of Google anymore. Every C++ project uses its own build engineering. There's Cmake, Ninja, bazel, configure, emsdk, etc. There is no reasonable way to make them coexist.
2/8
You can use any 3rd party open source library you like, as long as you use their build, package management scheme, compiler, what have you. But you cannot then use any other open source library.
3/8
There are 3 things that make it possible to use open source software at Google.

1) We have 100 or so people who do nothing but work on our software building infrastructure.

2) We have 10 or so people who do nothing but hack on toolchains.
4/8
3) If you want to use a third-party package at Google, and it hasn't already been brought into our system, you can (well, really, must) do it yourself. You can spend the minutes/hours/days it will take to make just that one project build in our system.
5/8
But, once you've done so, it will Just Work® with everything else, and the work you've done will benefit everyone.
6/8
This works because there's always only one version of any particular project checked in (modulo some special snowflakes that have to apologize and explain themselves formally in special documents that live in the system with the code).
7/8
But I've just tried, for the last time, to write a program outside of that system. It's too frustrating, and I'd rather write songs. This means that my Wordle (the word cloud, remember that from 2008?) will never happen again.
8/8
I'll also never make anything like Python Mode for Processing again. Just trying to maintain it means many hours of downloading and configuring the latest hotness in Java versions, IDEs, build tools, etc.

Not worth it. My time on Earth is too short.
You can follow @pheinberg.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: