4 ms·
Popularity is not an indicator of anything other than popularity. McDonalds is the most popular burger sold in the world, that does not make it good. Length is
by daliwali 9y ago
Popularity is not an indicator of anything other than popularity. McDonalds is the most popular burger sold in the world, that does not make it good.
Length is an important consideration and most never consider it, partly why software is notorious for getting bloated over time. At some point it would be easier to rewrite code from scratch with less complexity and overhead.
- kristianc 9y ago> Popularity is not an indicator of anything other than popularity. McDonalds is the most popular burger sold in the world, that does not make it good. It doesn't make it good, but it does mean that it's unlikely to make you ill.
- haburka 9y agoPopularity means more eyes have looked at it, more issues have been made, more contributors exist. Of course, I've had issues with dependencies that were popular but generally it holds that a library that's been around for a while and still finding usage means that it does a good job at it. The difference between code and a burger is that anyone can consume a burger but code is consumed almost exclusively by professionals. A better comparison would be power tools where you'll often find that if a brand is popular, it tends to make solid, long lasting products.
- daliwali 9y agoThe point was more about popularity having no correlation with anything else. There is tons of unpopular code that is really, really good, these are hidden gems. Likewise, there is popular code that is quite bad or mediocre regardless of number of contributors. To rephrase: PHP is the most widely used server-side scripting language on the web. That does not make it good.
- seanwilson 9y ago> Likewise, there is popular code that is quite bad or mediocre regardless of number of contributors. Like what? If you're looking for a JavaScript library for example, you can't really go wrong picking one that has many contributors, an active issue tracker, thousands of stars, lots of forks etc. Unless it's some core part of your stack, I don't see how it's practical to spend a lot of time hunting down super well implemented libraries that aren't likely to be supported in the future because nobody uses them. > To rephrase: PHP is the most widely used server-side scripting language on the web. That does not make it good. I'm not a huge fan of PHP but you can still write good software in it. Libraries are relatively easy to swap out compared to say operating systems and programming languages. Personally I find many of the best libraries tend to be the most popular ones.
- daliwali 9y agoI have a rather unpopular opinion that JS libraries get popular for reasons unrelated to merit, such as corporate backing (React), appeal to beginners (jQuery), and adding syntax sugar that has no value to end-users (Underscore/Lodash, Babel). They are symptomatic of organizational problems related to herding programmers at scale. To beat the average, by definition you can't just do what everyone else is doing and expect outstanding results. If your problem is unique there won't be a library for it. If you find or create a hidden gem, it's your secret weapon, you are its user and responsible for it.
- seanwilson 9y agoI use React, jQuery, Lodash and Babel and think they're great projects. What equivalent projects would you replace them with? What are you using that you consider a secret weapon? Going back to my original comment, I don't understand how you can pick these libraries as examples of things you should avoid if you read the source code.
- emodendroket 9y ago> Popularity is not an indicator of anything other than popularity. McDonalds is the most popular burger sold in the world, that does not make it good. On the other hand, McDonald's is pretty reliable and you know you're getting something palatable that is probably safe to eat (in the short term, anyway). You don't need to pick the best-in-class library for everything.
- horsawlarway 9y agoYou sound very close to advocating a "Not invented here" approach. (https://en.wikipedia.org/wiki/Not_invented_here https://en.wikipedia.org/wiki/Not_invented_here) There are some rare cases where that makes sense (Keyword: RARE), but most times I've seen developers take that stance, it leads to longer development times, less consistent code, more maintenance work, and generally pretty shitty outcomes. Popularity is ABSOLUTELY an indicator of things other than just popularity. However you need to understand why the thing is popular and vet that against your needs. Finally: McDonalds IS good. I don't eat there often, but they provide a consistently satisfactory experience for their customers. There's a reason you can find McDonalds nearly everywhere on the planet. It's popular to diss on companies that have become large iconic chains, but they're large iconic chains for a DAMN good reason. Plus, they're solving supply chain issues you aren't even considering, much like large popular libraries are handling use-cases and problems you don't even know about. Can I make a better burger? Sure. Can I make a better burger for the same that McDonalds charges, as consistently as McDonalds does? Fuck no. The same probably applies to your software.
- khedoros1 9y ago> Finally: McDonalds IS good. I don't eat there often, but they provide a consistently satisfactory experience for their customers. There's a reason you can find McDonalds nearly everywhere on the planet. McDonald's is consistent, predictable, cheap, generic, and ubiquitous. Sometimes those are good qualities. "Good enough" is usually good enough, after all. Regionally, there are a half-dozen choices that I'll take over McD's: Less iconic world-wide, but as cheap or cheaper, just as consistent, and more pleasing to the palate. I think that's closer to what they were advocating: Not necessarily building it in-house, but also not taking popularity as a reliable indicator of code quality (beyond a bar of minimum acceptability).
- horsawlarway 9y agoIf it hadn't been for the last sentence: >At some point it would be easier to rewrite code from scratch with less complexity and overhead. I'd agree, and probably wouldn't have commented. But I think being all of these things: >consistent, predictable, cheap, generic, and ubiquitous. Means you have a damn good product. No one is claiming you can't get something better, but come on, I'd love to have software that's consistent, predictable, cheap, generic, and ubiquitous. If those words describe a popular library, and you decide instead to build your own thing in-house... you better have a really REALLY good reason for doing it.