3 ms·
It struck me during the "Modern C" discussion a day or two ago that C would be very well-served by a good package and build system with dependency management (a
by SwellJoe 10y ago
It struck me during the "Modern C" discussion a day or two ago that C would be very well-served by a good package and build system with dependency management (akin to npm, cargo, cpanm, gem, etc.). While there are some pathological cases (npm, with it's insanely long dependency graphs...I once installed a small package that pulled in 53,000 files in dependencies), the value of a massive standard library that everybody is using, contributing to, and testing, is just incredibly valuable. There's a gazillion lines of C code out there, but finding/using/distributing it can be tricky. If it's not part of the standard OS distribution, in particular.
Make, while I quite liked it in its day, has some real limitations. cmake, while better on some fronts, doesn't actually solve the right set of problems (or, it solves the set of problems as they were perceived ~15 years ago).
I wish there were a strict subset of C (compliant with standards, but that prohibits the trickiest bits during build), with a good package/build system, a huge/modern library of high level functionality. I always enjoyed poking at C, but I just can't spend enough time coding in C to ever be really good at it. I can go years between working on C code, so I forget all the gotchas by the time I look at it again. It's not forgiving of casual users the way Ruby, Perl, Python, Go, and even (some) Java can be.
Then again, I guess Go is kinda that language for some classes of problem (not the very lowest level systems stuff, but I rarely do any of that kind of coding, anyway; I haven't touched a kernel module in a decade).
- yoodenvranx 10y ago> a good package and build system with dependency management (akin to npm, cargo, cpanm, gem, etc.) In most cases I don't even need a full build system. I do most of my hacking in Python and I often create small "throwaway libraries" to create a nicer structure of my project. In Python you can do this by just creating a sub-directory and a __init__.py file. This takes 45 seconds and then you can easily "import lib_xyz" in your project. And if you need this library in another project you can just copy/paste the. (I know, this is not an ideal solution but when I am hacking on some stuff it is a good way to do things because it takes no effort and brainpower to do it)
- SwellJoe 10y agoYou can whip up a makefile in seconds to do simple stuff, too. That's not the problem I'm talking about; it's not that make is hard, it's that it is incomplete (and kinda hard, for advanced stuff).