How do devs know what open source on Github, And library to use?
Posted by Lumpy_Molasses_9912@reddit | learnprogramming | View on Reddit | 26 comments
Imagine you wanna do xyz and it will take weeks to do.
but I know devs they just go use open source or library
question is how do they find out?
how do they google?
Is it just
"Library and opensource for xyz in Node.js"
Professional_Gate677@reddit
I occasionally do searches for things, look for repos that are actively maintained. There is a lot of crap out there that may do what you want, but hasn’t been updated in 5 years.
kbielefe@reddit
It's easier since LLMs. I happened to have done this on Friday for a personal project, as I haven't done web development in Haskell before. This was my prompt:
It gave a table of the top five, focusing on my requirements, but also including things other people found important.
At work, it's usually more like asking around.
Professional_Mix2418@reddit
Just be careful LLM lie better than human beings and are worse at saying I don’t know. They also have a habit to fill in the blanks when you specifically asked for certain features. And often have old references and learning to the wrong version of you are lucky or simply doesn’t exist or isn’t maintained anymore.
kbielefe@reddit
Yeah, you definitely have to double check, but it's nice for quickly narrowing down where to look first.
ValentineBlacker@reddit
I prefer looking at the package manager but the issue is that sometimes the best library will have some off-the-cuff name that you'd never find by searching the package manager. I have found that the official forums for my language have good recs, probably not available for every language. I can spend hours researching packages at work, it can be a really important choice with years of consequences.
CtrlAltDelerium@reddit
Just Google it would work. You could also find similar questions where they recommend something with links.
Roguewind@reddit
Node/js? NPM
Swift? SPM or CocoaPods
Java? Maven
Most languages have an accepted third party package management source. That’s where you start. Which package you use is up to you and takes time, research, and testing.
vu47@reddit
Just out of curiosity, why do you prefer maven to gradle for Java? I've always found maven to be a PITA to use. Gradle with the Kotlin DSL is just so nice and pleasant and easy.
Watsons-Butler@reddit
All the projects I work on, maven is for importing dependencies, gradle is for building management. We use both.
vu47@reddit
Appreciate the response! Why the two? Can't you do both tasks with either? Or is it just to keep the two disjoint?
Watsons-Butler@reddit
No idea, really - it was set up that way long before I got this job.
Roguewind@reddit
Not preference. Just an example
vu47@reddit
Thanks for the response. :-)
I was just genuinely curious, as I know some people have quite a preference for maven over gradle. I never really used maven myself much, so it's just something I've wondered.
Qwert-4@reddit
Yes, just google it.
meong-oren@reddit
My first step usually ask coworkers for recommendation. It's easier if you know someone who has actually used it. They might have tips or have encounterd the same problem as you do when using it and they know the workaround.
Still-Cover-9301@reddit
I am alwasy typing "xyz in node" or some such into ddg.
Yes, I talk to people but mostly it's just searching.
If one is immersed in this world then you learn things like "oh, shoot! this would be great for when I need to xyz" and you might write them down somewhere.
More likely you're vaguely searching your likes and comments on bsky (or the other place) or reddit with "where the hell was that thing, it was like xyz or bleep-de-boop or something... I know it began with an 'r'..." type of thing.
not_some_username@reddit
Just a Google search :
For example : “pdf library cpp” then you get dozens of them. And you do a comparison among the one you find not shady.
Also some people make those “awesome x” on GitHub usually where x is the name of a language/technology. They usually put library for things.
Professional_Mix2418@reddit
Just google it.
bruschghorn@reddit
Side notes:
* Not everything on GitHub is open source. Often code doesn't even have a license.
* Depending on you goals not every open source license with be compatible (especially copyleft licenses).
* Everyone can publish GitHub, so there is good stuff and trash, and possibly malware. There is also pirated material. Don't trust something just because it's on GitHub.
* Not every open source software is on GitHub.
W_lFF@reddit
What I do for a project like this is A LOT of reading and documentation. Honestly just use Google, or the website for your programming language's package manager if it has one, stack overflow, reddit, and so on. Like if I wanted to read and manipulate an image easily then I look it up on google or search "image" in the npm website and boom I got "sharp" which is a very good tool by the way.
nice_things_i_like@reddit
Usually begins with a Google search. Most of the time there are others out there who have discussed online on trying to solve the same or similar problem. The discussion often times has someone recommending a package. If the problem and package is popular enough it’ll show up in the results immediately.
After you have a package name in hand then a follow-up Google search can be done to identify similar packages. From there one can review and vet the packages.
djmagicio@reddit
I’d start by searching the package manager for my language.
https://www.npmjs.com/
hitanthrope@reddit
In whatever is my "home language" at the time, and this changes and is currently Kotlin, I usually know the names of and a little about all of the major libraries and frameworks in the ecosystem. I'll probably know a couple of web frameworks, the best of breed libraries for things like DB access / ORM, testing and mocking, data marshalling and such. Knowing the basics of the ecosystem is part of "learning the language" for me, so I do that stuff early on.
Beyond that, yeah, google. You can usually tell pretty quickly which is the tool / library / framework that is most developed and widely used, or there are a couple of them and you decide which one you like best.
Scanning the documentation of a library to get an idea of it's style and flavour is a bit of an art. I can usually look at just a couple of examples now and it tells me enough about the design style the author had in mind to get enough of an idea of the kind of thing I am going to find when I look deeper. Plenty of times I have looked a few examples and written off the library as an option because I don't like the way the author conceives of the solution. You learn how to do it quick.
high_throughput@reddit
Pretty much, yes.
Usually you'll find that there are only 1-3 alternatives that are active and reasonably popular, and ignore the 200 single-author projects with four GitHub stars and no update since 2019.
Among the 1-3 you look at the license, feature comparisons, popularity, modernity, and other differentiators, and maybe try them out in a proof-of-concept.
Finally you import it, and often you try to maintain a clean separation so that you can easily swap out the library later if you want.
xian0@reddit
The same way you would research other topics; look it up, read around, evaluate the documentation, make some comparisons etc.
6a70@reddit
they communicate with others and/or do research. whoever told you to go use a library / open source project—did you ask them which one they recommended?
regarding actually learning how to find things: yeah, my google search would probably look something like "xyz node" and then "xyz node open source" if the first didn't come up with results