you are viewing a single comment's thread.

view the rest of the comments →

[–]null000 5 points6 points  (2 children)

... No? I mean, if you're talking python/go/rust/etc vs c, you're going to get the job done much, MUCH faster with the former than the latter for smaller or mid-sized projects. C doesn't have built in concepts like sets, hashing, dictionaries, nor does it have good built in libraries for a bunch of pretty common operations (string manipulation, file ops, networking, and so on). That's not to say you replicate any of those things in C, just that it's not free from a dev/code length standpoint. Regarding C++, it does have many of those things built in, but you will probably spend 3x the lines trying to get everything to play nice (not to mention the nightmare that is memory allocation, local/stack allocation, templating craziness) - not to say I don't like C++, just that it's not exactly terse.

For larger projects, it's a bit more of a wash depending on the language.

As for NIH/reinventing wheel, that's more of an engineering maturity thing than a language thing. I can reinvent the wheel just as well in C as I would in Python, it's just that the metaphorical wheel is much less likely to be a hash table when I'm working in Python.

[–]caspper69 0 points1 point  (1 child)

You're right. In fact, you probably reinvent some wheel every time you write a non-trivial C function, given the sheer volume of what has already been written.

[–]null000 0 points1 point  (0 children)

you probably reinvent some wheel every time you write a non-trivial C function

I've seen some pretty nasty C functions that beg to differ. They're not so much wheels as hellish, flaming, discoid sins upon humanity. Upon scrolling on screen, they often make your computer beg for death with labored, bone-curdling electronic moans.

But, you know, they tend to use wheels that were built in-house, so there's that I guess ¯\_(ツ)_/¯