this post was submitted on 08 Dec 2023
1472 points (98.3% liked)

Programmer Humor

19187 readers
1375 users here now

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

founded 1 year ago
MODERATORS
 
all 37 comments
sorted by: hot top controversial new old
[–] [email protected] 114 points 9 months ago

A key difference:

If you rely too much on PornHub, you're never going to get fucked.

If you rely too much on GitHub, you're eventually going to get fucked.

[–] [email protected] 50 points 9 months ago* (last edited 9 months ago) (3 children)

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.

[–] [email protected] 67 points 9 months ago (2 children)

Git is a DVCS. GitHub is a place where DVCS repositories are hosted. There are many other places where DVCS repositories can be hosted, but GitHub is the most famous one.. Porn is a type of content. PornHub is a place where porn is hosted. There are many other places where porn can be hosted, but PornHub is the most famous one. It's a pretty good analogy.

[–] [email protected] 7 points 9 months ago (1 children)

There are many other places where DVCS repositories can be hosted

I mean... Everyone that's cloned the repo has a full copy of it. You could clone it directly off someone else if you wanted to.

[–] [email protected] 8 points 9 months ago (1 children)

Sure... and you could pass around porn on thumb drives. But, having a central website where you can browse public repos and clone the interesting ones is a pretty key part of Open Source / Free Software development.

[–] [email protected] 1 points 9 months ago (1 children)

How many people use Github for discovery though? I usually find interesting projects through a search engine, through word of mouth, through posts on here, etc. at which point it doesn't really matter where the repo is hosted. A lot of the useful projects I use aren't even on Github.

As far as I know, Gitea is current working on federation support, which will be great. It'd be like Lemmy where you can browse repos, submit issues, etc from one instance even if the repo is hosted at a different one. Git was really designed for a model like that, not for a centralized one.

[–] [email protected] 0 points 9 months ago

How many people use Pornhub for discovery though? I usually find interesting content through a search engine, through word of mouth, through posts on here, etc. at which point it doesn't really matter where the porn is hosted. A lot of the useful content I use aren't even on Pornhub.

Seriously though, I agree with you, githubs value to open source is not it's discover-ability. Personally I think its value comes from the stability, as much as I'm an advocate for self-hosting I know from the amount of dead links on the internet that we could have lost a lot of projects or at least they would move about as hosts went down.

I quite like the idea of federated gitea, although technically there is already a federated platform for porn if you count Lemmy and/or mastadon.

[–] [email protected] 4 points 9 months ago (1 children)

But it's a categorical error. The analogy is about "git", not "git repositories" or "DVCS repositories".

[–] [email protected] 17 points 9 months ago* (last edited 9 months ago) (1 children)

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.

[–] [email protected] 2 points 9 months ago* (last edited 9 months ago) (2 children)

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.

[–] [email protected] 1 points 9 months ago (1 children)

How often does grandpa ask you what GitHub is?

[–] [email protected] 3 points 9 months ago

You're right, we probably should've noticed sooner.

[–] [email protected] 1 points 9 months ago

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.

[–] [email protected] 24 points 9 months ago (1 children)
[–] [email protected] 10 points 9 months ago* (last edited 9 months ago)

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.

[–] [email protected] 22 points 9 months ago* (last edited 9 months ago) (1 children)

Git = bittorrent

GitHub = the pirate bay

Code = content

Even that's not the perfect analogy but it's better than the OP.

[–] [email protected] 8 points 9 months ago (1 children)

Though OPs example is easier for the general population to understand.

[–] [email protected] 2 points 9 months ago

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.

[–] [email protected] -2 points 9 months ago

In Lemmy people are not aware that GitHub is not just git server with lots of code. :)

[–] [email protected] -5 points 9 months ago* (last edited 9 months ago) (4 children)

That...isn't quite right.

Git is a distributed version control system for software development^1.

Version control allows you to manage code versions and changes to code. You take snapshots, so to speak, of every change you make.

Distributed, in this context, means multiple developers can write code on each of their development computers and merge the changes, usually to a centralized git server.

GitHub runs a web-based git server at GitHub.com so teams can store their code in a central location on the internet.

  1. Ok, technically, even though It's often used for software source code, it can be used for any set of files and directories.
[–] [email protected] 33 points 9 months ago* (last edited 9 months ago) (1 children)

I don't see anything you said that it isn't quite right.

Porn is a distributed form of entertainment.

Porn allows you to get your rocks off. You take views, so to speak and do your thing.

Distributed, in this context, means multiple enjoyers can watch porn on each of their entertainment computers and share the videos, usually to a centralized porn server.

PornHub runs a web-based porn server at pornhub.com so viewers can store their porn in a central location on the internet.

[–] [email protected] 1 points 9 months ago (1 children)

So in the analogy porn corresponds to git? Or to source code?

[–] [email protected] 1 points 9 months ago

In this analogy it could be that:

  • the filesystem is git and the porn is source code
  • the file is git and the data is source code
  • you don't consider the source code because you can host anything on github
  • we shouldn't be reading into the analogy this deeply because its a silly analogy meant for absolute beginners
[–] [email protected] 13 points 9 months ago

If you read it as "a website providing a service, but that service is also available elsewhere" the analogy makes perfect sense.

[–] [email protected] 8 points 9 months ago (1 children)

Ok, now explain the part you think is not right.

[–] [email protected] 2 points 9 months ago

Git is a tool. GitHub is one implementation of a git server. Git is used to manage source code. GitHub hosts / manages source code.

Porn is content. Pornhub is one service that hosts content. Porn is not a tool. Git isn't content. Source code is content.

So porn isn't really analogous to git.

Maybe a better analogy would be... Git is to GitHub as outlook mail client is to outlook server--or Gmail app to Gmail server.

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago) (1 children)

GitHub runs a web-based git server at GitHub.org so teams can store their code in a central location on the internet.

Wait.. it's GitHub.org?

I always assumed it was GitHub.com...

Edit: GitHub.org only seems to support HTTP and then it just does a permanent redirect to GitHub.com

[–] [email protected] 3 points 9 months ago (1 children)
[–] [email protected] 2 points 9 months ago

All good 😊 you had me going for a minute though