7 ms·
I like the language itself, I just dread the tooling around it. If there would be a better build system, easier integration of libraries, better strings and an
by yoodenvranx 10y ago
I like the language itself, I just dread the tooling around it. If there would be a better build system, easier integration of libraries, better strings and an overhauled standard library I would start to use it again.
- quanticle 10y agoIt's interesting that you say that, because my experience is just the opposite. I dread C. I dread all the simple ways that you can screw things up even without going into undefined behavior (which is its own can of worms). The only thing that makes C tolerable for me is that it's had literally a generation of people building tools and guardrails around all the stupid ways C can trip you up. Without modern debuggers, linters and valgrind, C would be nigh-useless as a programming language today. It'd simply be impossible to write a program of any reasonable complexity.
- yoodenvranx 10y agoSorry, I should have been clearerwhich toolings I was talking about. It's not so much tools like debuggers or linters, but more about the build system and the compilation process. There is just do much crust and dangling bits and pieces of the last few decades that the whole process is the complete opposite of streamlined and user friendly. I do most of my programming in Python and for most projects it is enough to create a program.py file, import some stuff and then do 'python program.py'. If your Python program is not overly complex and only uses one of the common libraries then there is almost no visible build system which gets in your way. If i haven't used Python in half a year it takes about 30 seconds to start programming again, but god forbid I haven't looked at make or cmake for half a year...
- MrBuddyCasino 10y agoYes! A simple language that is easy to reason about with a tooling that doesn't resemble duct tape and black magic, better stdlib and actual strings would be nice to have. Some people say Golang is that language, but the tooling is actually not that great and then theres the garbage collector... Edit: forgot to add "sound type system", to me C feels like a hybrid between a properly strongly typed language and something scripty.
- SwellJoe 10y agoIt 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).
- mfukar 10y agoYou dread the tooling _now_, an age when we're lucky enough to have a checker and sanitizer for every class of error we can make with C?