Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The most difficult thing I find about C is the (apparent) lack of libraries and packages. With other languages I know where to go to find libraries for anything I need, but I never know where to look with C. As a result I never really use it.

A boilerplate project with testing, common libs for data structures, and pointers to useful resources like extra libs, would be really cool. :)

That said if I had to do something nowadays that I would use C for, I'd probably just pick up Rust.



> The most difficult thing I find about C is the (apparent) lack of libraries and packages

I really am not sure if this is a joke or not, but almost every major library has a C interface. Almost all packages in your distro if you use linux have development versions that ship libraries that usually are linkable by C. In fact the wealth of libraries usable from C is usually noted as its main strength.

What exactly are you missing, and have you tried googling? The GNU organization and similar all produce libraries(like https://www.gnu.org/software/gsl/) that are mostly usable from C.


Coming from a different language, the idea that the OS provides your libraries is a radical departure. Generally a modern developer working in any other language will look to github along with the languages package repository for libraries.

Anecdotally the types of libraries shippable with the OS represent a specific category of application which doesn't encompass many developers needs. (Although on the other side, github does not provide usable drivers for most operating systems... your mileage may very).


You should be really careful about using libraries from distribution package managers because none of them can resist screwing with the source, which often times makes them unusable. Even the vendors themselves say don’t screw with the packages and maintainers do it anyway.


Even so, github does have a ton of very very popular C libraries(like https://github.com/nothings/stb). I was bringing up the OS provided ones since they claimed not to be able to find any. My main point is that it is patently absurd to claim that they could not find C libraries.

Further: https://github.com/oz123/awesome-c as another example of the many many C libraries you could find.


The next pain point is that most of those libraries have custom build processes etc. This is a far cry from what most developers work with. Conan is making progress, but the overlap of C projects which also work with Conan appears small.

Many practical C projects seem to simply fork any dependencies they want to use and stick them in their own internal repo/build process.


Then you’re not doing a whole lot of C. The most difficult thing for me is having to flip between posix, make, clang, gcc, ld, ar, and ranlib man pages, and Apple’s “archived” documentation which by the way, despite the way they name it isn’t deprecated, it’s the only primary source for understanding dylibs.

Oh and it’s so poorly documented in practice that you have to cross reference it with codebases to see how the tooling is actually used in practice, then peel back all the weird quirks from those authors.

That’s the hard part.

Googling for a C library isn’t.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: