It's not, though. Git is a means of distributing content, not the content itself. The thing analogous to PornHub's porn on GitHub is the source code in the repos hosted there, not Git itself.
Programmer Humor
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
If only there was a website called "StreamHub" or something.
Honestly the content vs. characteristic method of delivery distinction is subtle enough this is still a great way of explaining.
Depends on to whom. If you're explaining to your grandma, a small child, a co-worker, or a student under your tutelage, you probably don't want an explanation that relies on reference to a porn site.
And if you're explaining to a novice developer or to an IT person who sometimes might have to work with Git, they deserve an explanation that leaves them with a basic understanding (or at least the names) of the kinds of things Git and GitHub are (VCSes and SCM forges, respectively), not just an inkling that GitHub is not unique in being 'a place to host (some?) Git, whatever that is'.
So... if you don't mind that it suggests 'GitHub is for uploading Git(s)', that line is an okay way to teach 'the difference between Git and GitHub' to non-technical, non-elderly adults who don't really need to know what Git is (and don't work with you or study under you).
That's an explanation of pretty damn narrow usefulness, to put it generously.
It is pithy and memorable, though.
How often does grandpa ask you what GitHub is?
You're right, we probably should've noticed sooner.
I agree that porn is a nsfw way to explain something in a lot of scenarios but I disagree about people needing to know at least the names of a technology from an explanation.
Most people don't need to know or care about the names to understand or use them. Knowing the names after I learnt the commands did not give me greater insight into how the tool works.
If they are just being introduced to git and github then they are likely new to programming and have much more important things to care about like learning their first programming language or understanding how their teams project actually works.
A place to host gits is a perfectly good explanation for anyone who is new to it.
Git = bittorrent
GitHub = the pirate bay
Code = content
Even that's not the perfect analogy but it's better than the OP.
Though OPs example is easier for the general population to understand.
Yes, but mostly because the general population likely isn't super familiar with Bittorrent and PirateBay.
A better, yet similarly correct explanation would be to say GitHub is to Git what GMail is to email.
This also doesn't confuse protocol and content, and it doesn't require knowledge of piracy.
Grub and GrubHub
Using food as the analogy:
Food.........Code
Kitchen.....Dev Environment (IDE, PC, etc)
Serving.....Deploying
ok good so far
When I'm done with code I'm not going to deploy yet I commit and store it on a branch in git.
When I'm done making food that I'm not going to serve yet, I store it in a fridge or pantry.
When I need external code, I grab it from GitHub. When I need ingredients, I grab them from the grocery store.
So I think Food Storage, is the closest analog to git. I have local storage (pantry, fridge) that I can use to store food I have acquired.
Which would mean the grocery store is the closest analogy, but not a restaurant. Or maybe a grocery store with a restaurant.