6 ms·
It does seem that 'modern' idioms tend to just be doing the same thing in a more obfuscated manner. Just a .c/.h pair would have been easier to add to your sour
by veltas 5y ago
It does seem that 'modern' idioms tend to just be doing the same thing in a more obfuscated manner. Just a .c/.h pair would have been easier to add to your source.
- NavinF 5y agoThat would be easier if the most popular build systems weren’t terrible
- pjmlp 5y agoOr I don't know, people actually bothered to learn them.
- wizzwizz4 5y agoLearning something doesn't stop it being terrible. One time I ran `cmake`, and forgot to run `sudo -k` beforehand. It reconfigured my system.
- pjmlp 5y agoThat has more to do with sudo than cmake.
- wizzwizz4 5y agoThis might be an unpopular opinion, but compiling a program into a local directory shouldn't try to install packages globally. `make install`, I could understand doing that. I had no idea that cmake would do this, after reading quite a lot of things about cmake v.s. make and how to write various makefiles for them. I posit that the C build tools are fundamentally hard to comprehend.
- pjmlp 5y agoAny build tool can do whatever they feel like. Blindly trusting it will lead to the same outcome, regardless of the programming language ecosytem.
- charcircuit 5y agoSure, but should it? Do you really want nasal demons from your build tool?
- pjmlp 5y agoDue to the success of build tools like Gradle, build.rs or any other one that packages a Turing complete language to steer a build, apparently many want such daemons on their homedir.
- wizzwizz4 5y agoJust because you can do something, doesn't mean you should. A `build.rs` is supposed to be for compiling non-Rust code and stuff like that, not mucking about with the package manager – and by and large, people don't use it for mucking about with the package manager.
- pjmlp 5y agoPeople use it to muck with the host OS in any possible way, unless one bothers to do the necessary code audit. Besides that was just one example, there are plenty of them with turing complete languages.
- wott 5y agoIf the library is installed separately, the terribleness is about adding "-lfunkylib" to your linker command. If you embed the source in your project, the terribleness is about adding to your Makefile: funkylib.o: funkylib.c $(CC) $< myfinalexe: ... funkylib.o ... # your existing executable creation (linking) command
- krychu 5y agoThis is a valid point. I was on the fence between doing .c/.h pair and a single .h. But finally took the inspiration from: https://github.com/nothings/stb https://github.com/nothings/stb.
- veltas 5y agoOverall I think the code in the library is good, this was just the thing that stuck out to me most. Congrats on getting shared on HN.