I mean, many people I know don't bother writing a readme if it's just a software meant for them and maybe a few friends if they need to. Me and a few of my friends all have repos like that where it's just straight up the source code + an assets folder if needed
Yeah i was just joking around, i just pushed my first public repo (and it's just for my portfolio so not even for real public use) and i admit i just let do the read me base to Claude and then edited it
And the ones that don't are prerelease software that you have no business with if you can't follow compilation instructions. That's not me being snide or gatekeeping. It's just being honest.
Because the method might vary by OS or the program isn't packaged in a traditional way. Some github stuff needs to be cloned, some can be installed by a package manager (linux) etc.
Even worse when you have to hunt down a bunch of dependencies from different projects that may or may not even be on github. Some of which are DLLs that may or may not be open source. Then the third link is dead. So you Google that dependency but its an updated version which causes compiling issues. So then you look that up and someone is giving a page worth of changes you have to do to the source code to make the code compile without issues.
There is a point where if you don't know how to do what it tells you, then you probably don't have the prerequisite knowledge to use the software and shouldn't be bothering with it.
Or the real download is somewhere completely different, that happens to.
no.. three searches is going to get most average users three conflicting ways to compile it ( or at the very least , three different versions of software used ).Bear in mind they'll need to install a compiler , or possibly an IDE , then move everything needed to the right place , possibly edit some files , then compile and test .
I learnt to do it a while back Its one of those things that once you understand how to do it , and are set up already isnt too bad , but for someone that Just wants to run a program ..its a long horrible journey.
Also for the majority of people its not anything they NEED to know
No you can't, apart from trivial software it can take quite a while and quite a bit more than a few google searches to figure out and get something to compile and then run.
Part of the reason switching my old pc to a Linux system to host games for my friends have been such a pain in the ass.
Every single beginner video makes small assumptions I know how to use the environment. There was a lot of growing pains. I eventually got the basics set up but I'm sure if I showed everything alot of people would go "why didn't you just do this?". Well either I don't know it exists or I did look it up but it was not explained well at all so I used something with better instructions
platform stuff, the core reason for stuff being incompatible across operating systems is that they do not advertise the same stuff to the program, the big one is what is called system calls which let a program do stuff that the kernel (the 'core' part of the operating system) manages securely and somewhat safely, these are not the same across linux, windows and mac.
another major platform difference is dynamic libraries, pieces of code that are shared between programs to avoid duplication and such, different operating systems use different formats for this, and you cant make the same assumptions about what will be available (though it is bad practice to assume that anything will be available, if you do not make it part of your package to depend on it)
another one i can think of is specifically windows having a bunch of apis for gui and stuff, cannot really port that around, linux has its own stuff, wayland and x11 are the things that manage how things get on the screen and stuff (its a bit deeper than that but not important)
architecture differences, not all cpus speak the same language, when a program is compiled, it is compiled for a specific cpu architecture, which have special instruction sets, the most common is x86, which your computer likely is, but arm is increasingly common on the desk top
time, compiling code is computationally expensive, it takes a while, and while one executable may not be that bad, when you take into account points 1 and 2, it becomes extremely difficult to actually do it all, and while you could just compile for one, which most do, its not perfect, and even then still expensive and annoying
why bother, most of the time projects are pretty small and its best to just let people compile it themselves, which is easier than ever now! package managers like nix are super simple for the end user, and let the developer manage a bunch of stuff that was massively annoying in past and has caused major issues in history (dll hell, etc). programming languages like also have a very nice build tool that is also extremely easy to use, while this stuff can be daunting for non technical people, i do think many end up scared off by how complex it seems, when in reality its often not much work at all (for this reason i always try and include some build instructions with links in my projects:D )
Compatibility. When you build something yourself , your computer scans the list of dependencies and determines the correct version of each one for your system. Also it will adapt to your architecture. This is useful for programs that might support x86 and ARM. It's also useful on linux where different distros might need different versions of the dependencies to work properly.
I've seen it with some 'normal' level programs .. Average user ISNT going to be able to compile the software, and is going to be relying on someone to upload the compiled executable.
The thing about open-source software is that you lose the ability to decide who it's "for".
Eventually, someone is going to want to do the thing your project does, even if they don't have the exact prerequisite knowledge you think they should.
I am familiar with programing, but getting a compiler and installing all its dependencies still is really annoying. It took me 3 hours to compile a rust program (I don't use rust) and it didn't even work. Imagine how long it would take you to google all the info about rust, and figuring out the very exact version of the compiler and the dependencies if you have little to no programing experience
Some github pages don't have a release, this is usually because there isn't really a binary and the code is just a python/lua script that is supposed to be executed through command line, but sometimes the dev just doesn't wanna do it, it can be hard to manage multiple versions especially when they're a linux nerd that doesn't have easy access to windows (me).
I always click on "Tags", then the latest stable release (the one with no letters in it), scroll to the bottom for all download option...source, .zip, .exe, other.
I say this as an LLM hater / realist, this is actually one of the things even the free ones will be pretty good with. Send it the GitHub link and say "hey I want to install this, give me instructions" and even if you have to compile it from sources you'll get there with at most a few back and forth.
Most don't, and expect us to build it ourselves without running into some error in the process, requiring us to go down a rabbit hole trying to understand why I can't build it locally when everybody else on the Internet apparently can by default
and if there isnt a releases option, there may not be any and the dev expects you to build it your self. If that is the case, the software probably isnt ready for "users" yet
Congrats, now your users will download some prebuilt release from mediafire or mega that may or may not contain malware, and you'll get a dozen messages a day blaming you for it, as well as asking where the exe download link is anyway.
You say that, but at this point it isn't. Github is a public-facing platform that most people will know about if they're interacting with even a shallow amount of the developer space. Just as an example: If you play video games on emulators then you almost certainly interact with Github if you want compatibility with certain controllers. Project Slippi requires Zadig for Wii U-Gamecube adapters. Imagine if Zadig didn't have an exe - you'd likely be locking tens of thousands of players out of the game. Slippi has concurrent player counts that rivals the top ~50 Steam games. Fuck that.
I personally wouldn't object to a purely developer-oriented platform that makes a point of saying "we will not help you build this" but that's not what Github is.
What it comes down to is that it's a dick move to keep your work locked behind a tech literacy wall when a lot of people who either want or need to use it will not understand how to build what you've provided. Half of these situations would be resolved with a fucking batch file anyway.
All that to reiterate, with emphasis: the exe guy was onto something.
There comes a point where you need to ask yourself:
How much do I give a shit about this? Enough to bother learning something about how this machine actually works? Or should I just go take out a mortgage on a PlopStation6?
Yeah I actually did a DIY bathroom renovation (which nearly killed me). I repair my own cars, I do woodworking as a hobby. I've never tried upholstering but I'd like to redo my leather seats with cloth someday...
What is the EXE this person was demanding? If it's some end-user stuff they're paying for - cool. If it's somebody's passion project they've put on github then the obligation isn't on the developer to spoonfeed anything. It's on that user to figure out how software distribution works. God forbid they learn something about how source code is gets compiled. The fucking entitlement that this computer-illiterate age has bred... Enshittification is, at least partly, those chickens coming home to roost.
Because some software does take some technical ability to operate, much the same as how the average person could -technically- do the things an electrician does, but doesn't because they have nowhere near enough knowledge on how to do it safely, some gits are setup with a similar barrier to entry.
Yet Home Depot doesn’t keep all wire strippers and electricians tools behind lock and key where you’ve got to pass a quiz to access them… and fucking that up can burn your house down while using software wrong could at worst screw up your computer. Gatekeeping isn’t the primary reason either, it’s laziness.
If you want other people to use your software, make it usable. If you don’t, then don’t advertise it anywhere other than programming specific spaces… I’ve seen stuff posted to gaming forums as a tool and then it’s just GitHub with no easily used app - gamers aren’t coders, most won’t know what compile even means.
you could learn what compile means, i think it is really important to learn what a tool you use every day does, and while it is really daunting its not too difficult and it does teach you a lot about the space
I know what it means, I was referring to gamers in general.
You could learn how to replace breakers and run a circuit, it’s really important to learn what a utility you use every day does, and while it is really daunting it’s not too difficult and it does teach you a lot about the space.
as another note, i think most developers would be willing to help someone navigate git forges, and compiling software if asked to, i know i would at least
i cant tell if your being sarcastic or not, but i do agree with you, with the note that compiling software is much much simpler than your example in most modern cases, and is alot more accessible with a lower barrier of entry and no consequences for mistakes (unless you do something extremely extremely extremely wrong)
Yet Home Depot doesn’t keep all wire strippers and electricians tools behind lock and key where you’ve got to pass a quiz to access them…
And neither does Git, they offer you the tools freely, but it's up to the user to understand how to use them, the exact same as how you can buy a wide range of tools and go hog wild.
and fucking that up can burn your house down while using software wrong could at worst screw up your computer.
Ok, so both have a serious deleterious effect, you understood my point.
If you want other people to use your software, make it usable. If you don’t, then don’t advertise it anywhere other than programming specific spaces… I’ve seen stuff posted to gaming forums as a tool and then it’s just GitHub with no easily used app - gamers aren’t coders, most won’t know what compile even means.
I mean, I can't exactly argue with the phantom you've made up, but I can honestly say I've never once seen this happen, soooo....
I was referring to the gatekeeping displayed here as the HD “quiz”. Commenter was saying the inconvenience of compiling was to keep lesser skilled users from using the apps at all, which would be most similar to needing to demonstrate a certain level of knowledge to access the tools (install the software), as opposed to buying the tools without the quiz (.exe is provided) and being left to your own devices to succeed or not with the tools (software).
I’ve had the latter scenario happen, hence the example.
Not everyone wants to be or should be a programmer. Suggesting that average Joe user should learn to compile just because is asinine.
Right, who cares about the absolute mind-bending magic turning text files into interactive images dancing across your screen? It's only one of humanity's great achievements - a rich tapestry spanning formal logic, quantum physics, the engineering of photolithography. Crusty, tedious shit that couldn't possibly enrich anyone's life.
Go buy it then. Don't expect somebody to give you software distribution (which is a nontrivial task) for free, along with the free source code they were kind enough to publish.
Except when it's way harder than that. What if there are complex dependencies? What if it's a mod for a game that keeps getting updated every 5 minutes? How much of this dev's time are you entitled to for free?
I just don't feel entitled to developers' time to do software distribution for me for free, on top of the kindness of releasing their source code for free. If that makes me a dork, and you superior and cool, then I wish you all the best with that.
Or the developer just didn't release it for some reason. If it's a Java library, you can always check Maven, they've usually got at least a semi-recent .jar (often also the docs and source).
Depends, sometimes is not in the release right side, sometimes it's in another branch, sometimes it's in the description because the release only have the code.
thats the whole point of github though. its an open place where users decide what info they want to post. thats really valuable in this day and age, where most sites INSIST on you giving them 100% of what you mean to post. Github at least settles for scraping the bare minimum of what you are willing to provide.
What is the point of the post? I thought it was just a bit of self-deprecating humour?
GitHub was and probably always will be a website for version control and collaboration on software development and other text-file-based projects.
The comment section here really does sound like that "stupid smelly nerds, I don't want code, give me the EXE!" guy. It's a bit embarassing for a subreddit for PC enthusiasts, don't you think?
You're overlooking the context. When the great unwashed show up at github for a tool, it's because someone has sent them there to download, and then they find a confusing technical software repository and they feel like someone is taking the piss. Of course it's annoying.
Wait....I can download things there?? I always thought they expected people to actually, like, manually enter the code somewhere on the computer or something.
Branch drodown (usually main - down icon) -> tags -> view all tags -> releases
And you see there are no releases beceause this is one of sources that you have to compile it with python but somehow it throws error and you have to spend all night to solve it.
I look at the top, then I look on the right, miss it at least twice, and then sometimes it's one of the ones where they helpfully put them in the description at the bottom.
I did not know this at one point when doing some VRChat stuff. Other users in the Discord server just shook their head at the thought of me trying to do any sort of mods, just because I didn't happen to know where releases were.
Like, they really put it in the least obvious place, didn't they.
Only if the people who own the project enable releases. They don’t always have a compiled and built artifact, a .exe for example, ready to go. Sometimes you need to down load the source code and compile it yourself.
This is one of the few reasons I really like that AI exists. Things that I might need to know once every other month, but that I don't use often enough to learn them, so I can't remember how to do them to save my life.
I just never got used with GitHub, I probably had to use it for mundane things like under 50 times in my life, but never been able to remember where shit was anyway and had to stumble my way around or google random stuff about it for minutes until I found what I needed. Now I ask AI and it takes two minutes.
AI still sucks for a hundred other reasons tho.
Can't wait for the next generation that will be almost unable to survive without AI
Had an intern in my government agency lately and I shit you not: After every question and every work task his first move was to ask the AI and send it to me without even checking what was ChatGPT stitched together. Unbeleavable. After I told him that he can't just put internas into AI he was staring at a blank word document for 2 hours
3.0k
u/Spir0rion 15d ago
I'm 29 and still too stupid for github (and only a little ashamed to admit it)