4 ms·
Either a language changes to keep interest up and bring in a new audience, or it's left behind by advances to and the status quo (and what's considered a minimu
by kbenson 5y ago
Either a language changes to keep interest up and bring in a new audience, or it's left behind by advances to and the status quo (and what's considered a minimum set of features) and stagnates.
Just look at Perl. Stuff written 20 years ago is likely to work without change on the newest release more often than not. For certain work contexts, like system utilities and long life core programs, this can be amazingly useful.
And all it will cost you is the slow decay of your community until eventually they're almost all gone, and nobody releases supported libraries for you anymore, and there's not even enough community left to provide community support for many new services and technologies.
If you stick around one thing long enough you're destined to be disappointed one way or the other.
- adamlett 5y agoC
- kbenson 5y agoC is only used because it has a widely deployed set of libraries and by it's nature as an underpinning of most foundational software because it was the language of choice when we really started hitting exponential growth in computing. If there wasn't an enormous set of software and source code out there for it already, would there be any reason to use it over anything else? And even then it's latest language standard update was in 2018. You still have to deal with the fact it's changing and keep up with it if you plan to read or use others code. And of you don't, then you can safely not care about advances in C, just as you can safely not care about changes in Go.
- tephra 5y agoC11 introduced type generic expressions.
- c-cube 5y agoNot in the commonly understood sense of "generics", no. You get to switch on a type, but you don't have generic functions or types. A reusable, type-safe Vec or HashMap are still not possible in C...
- pjmlp 5y agoKind of, now that typeof is going to be part of the language, that coupled with the preprocessor, does allow exactly that. Although in typical C fashion is a bit of kludge.
- c-cube 5y ago"coupled with the preprocessor" is a bit of a cop-out :-). Do you have a concrete example of what typeof would enable? Like a basic implementation of a vector type?
- pjmlp 5y agoTrue, it is basically //go: generate, before Go was born. Here is an example, https://codereview.stackexchange.com/questions/101816/generic-vector-implementation-in-c-using-macros https://codereview.stackexchange.com/questions/101816/generi...
- pjmlp 5y agoISO C23 is coming up, and until the last UNIX stops working, C's existence is assured.
- Zababa 5y agoTo add to what other people said, the tooling around C has changed a lot since C was created, partially because there's already so much code in C. The Linux kernel is 20/30 millions lines of code of C mostly, Kubernetes is below 2 millions. So at this point you can still change the language a bit. With C it's harder, so instead people invest in tooling (and replacements).
- pjmlp 5y agoFor some strange reason many developers lose sight that programming languages are software products just like anything else than one can sell for installing into a computer. While FOSS might have changed the way to sell those products, they are still products looking for attention, market share, ecosystems, conference talks, consultancy, trainings.....