3 ms·
With C, you have the whole toolbox and the toolbox factory.
by okaleniuk 2y ago
With C, you have the whole toolbox and the toolbox factory.
- defrost 2y agoBoth the tweezers and the bit flipping magnet .. and who would want anything more?
- thechao 2y agoYeah — C would be ok as a build system language if it was easy to: invoke & manage subprocesses; build & manage dynamic dependency graphs; and, easily work with file metadata. Or... work with me: Make does that, well enough.
- okaleniuk 2y agoAnd that's why I'm saying CMake should have been a library. We want the functionality of Make but not necessary the language. And Pnut shows us well that {language != functionality}. For the sake of mental experiment, let's pretend Make is a separate executable, separate process, but with some sort of API. You can manage dynamic dependency graphs by calling its routines from C. Now let's say Make is a dynamic library with all functionality exposed. You can invoke and manage subprocesses using its functions, but now your C program and the Make share a process together. Now let's say Make is a C library. GNU Make is written in C so this is not impossible to imagine. Your C program shares the process, and the names on compilation+linking phase with Make, which is annoying. But you can still work with metadata using Make's facilities. Also now you can use all the tools: debuggers, profilers, static analyzers, dynamic analyzers - you use for the rest of your codebase. We perceive C as a low-level language but, and Pnut shows it well, C is only a set of rules. We can write shell scripts with C rules. Why can't we then write build scripts?
- evilotto 2y ago> So we stopped selling those [hammer factory] schematics and started selling hammer-factory-building factories. https://web.archive.org/web/20180722051250/http://discuss.joelonsoftware.com/?joel.3.219431.12 https://web.archive.org/web/20180722051250/http://discuss.jo...