How to know if a package is good?

Fully anecdotal (former student), but in an academic setting where software is a tool but not the focus, letting students learn programming with no guidance was a disaster. To be fair, the department admins required us to take introductory programming courses…in a different language from what was expected by the major’s instructors. Only a couple students had prior programming knowledge to handle that language transition smoothly, the rest of us stumbled through desperate spaghetti code and tight deadlines, never given the time to actually learn properly. And why would the instructors give us that time? After all, it wasn’t their job to teach us programming.

I don’t presume the students you had in mind were in my position, but if they’re really stuck at outdated packages, some programming instructor failed (or maybe wasn’t there) to teach these students the basic savvy to look up or ask “best way to load a CSV file?” on stackoverflow or discourse. I don’t think it’s your job to teach them programming, but it’s a lot less effort to document quick tips and tools you already know to be usable for the course’s purposes.

That said, I do think there is merit to having some centralized resource to gauge the package ecosystem. Forum responses at best have waiting periods, which people with deadlines may not be able to afford. Maybe 1 in 100 packages will document comparisons with similar packages, and even fewer will be updated. I agree with @lmiq that language-official suggestions would stifle independent development, but I would love an independent blog of regularly updated reports on the active packages by topic, open to pitches by independent developers. In one place (perhaps this new Forem thing), readers could get a lot of the information they need to make their decisions and perhaps learn how to find more information.

This isn’t a problem unique to Julia, btw. Python’s scientific computing ecosystem has gotten a lot of credit in this thread for being easy to navigate, but in less maintained/used/coordinated ecosystems, I’ve run into library choice confusion, lack of updated comparisons, less-good package inertia.

22 Likes