#somehow a lot of free software verbiage and ideals got hijacked by various corporate interests
Explore tagged Tumblr posts
queenlua · 4 years ago
Note
not the same anon, but Im interested in the open source rant đź‘€
for some reason, sites like Hacker News are always fuckin' tellin newbie programmers to "contribute to open source!" in the same breath as, like, "program tic-tac-toe!", as these are both equally sane and accessible tasks for folks who are trying to learn the ropes. this is absolutely untrue.
i don't deny that you can learn a lot by contributing to open source; the bulk of my career has been in open source software. it's good shit.
however, the vast majority of that work was done when i was being paid for it, full-time, by either the company that owned the software, or by a company with a very direct, specific interest in the software.
it's often really hard to contribute to OSS outside of that "someone with money specifically wants this to happen" framework, for a few reasons:
* you probably don't have any good idea of "where to start" or what the project's needs are. like, "contribute to Linux"—where? doing what? is someone already working on that? would your proposed idea require the agreement of several major maintainers, or involve a rewiring of a major subsystem, etc? a good open source project will have guidance for getting stuff running on your system, but not for navigating all the "who all is interested in this feature that i want to exist" stuff.
* "well, i'll take a starter bug—" bzzt; the low-hanging fruit is already taken. yes, i'll save a little "write five lines to make this feature work on such-and-such browser" bug for a coworker who i know is getting started, but otherwise, like, i have someone who's mad that this thing isn't working on such-and-such browser, and it's an easy fix, so i'll fix it myself. projects don't lack starter bugs because they hate newbies; they lack starter bugs because so much work takes so long and involves so much contextual knowledge that, when we do find something that's easy to fix, we pounce at the chance to do it.
* relatedly, you'll probably have to spend a lot of time just figuring out the project's heckin codebase before you even get to write any of your own code, which can be pretty demoralizing all on its own, particularly if it's like, janky and old and legacy and shit. (peek at gcc's codebase sometime; it's a horror show!)
* so yeah, tl;dr everything that's trivial has generally already been fixed, and everything that's complicated requires learning the codebase and learning all the other times people have tried to do [x], and talking to people to figure out if your approach to [x] will work, and so on... and that's all even without a guaranteed payoff at the end! like, maybe the maintainer just doesn't want to bother keeping an ARM machine around to test shit on ARM, so then they don't even merge your beautiful pull request that implements ARM support. rip.
i always felt like an idiot that i wasn't able to contribute to OSS before i got my first job, because, what was i, some idiot, not able to leap into random codebases and produce beautiful desirable features from scratch? and then once i started working i was like, oh, god, i wasn't an idiot at all, this is just... a lot of work!
if you'd like to contribute to OSS without getting a job in it, i do think that's possible, to be clear. it's just (1) not generally for inexperienced folks, and (2) you should choose your project with some care. like, if you're interested in Linux, "fix bugs that syzkaller produces" would honestly be an OK place to get started, but that requires enough know-how to know about syzkaller in the first place, and most very large projects don't have something like that. instead i'd generally recommend looking at medium-to-small projects that are active and un(der)funded—e.g., dolphin (the gamecube emulator) tends to be very open to hobbyists, and has some low-hanging fruit just by virtue of, everyone's doing this in their spare time so they can't get to everything. there's a few django plugins that are similar. stuff like that. but it's super demoralizing to read forum shitposters like "yeah just get started by contributing to kubernetes!" because, lmao, holy fuck that's such a big and political project, no, don't waste your time unless your getting paid for it!
12 notes · View notes