For 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.....
Re:Generics enabled by default in Go tip
by adamlett on Saturday August 21, 2021 @02:53AM
(#28254854)
C
Re:Generics enabled by default in Go tip
by kbenson on Saturday August 21, 2021 @02:57AM
(#28254868)
C 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.
To 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).
C11 introduced type generic expressions.
Not 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...
Kind 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.
"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?
True, it is basically //go: generate, before Go was born.
Here is an example, https://codereview.stackexchange.com/questions/101816/generi...
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.