Re:After All These Years, the World Is Still Powered by C Pr...
by mjevans on Saturday April 01, 2017 @08:25PM
(#14014974)
I want to stay that for portability I'd recommend Go (golang), but my experience with it has shown that the standard library mostly covers parallelism, ///basic/// file I/O, and working with network data-structures.
It seems to be a good language for writing 'glue' daemons; servers that co-ordinate the flow of information between different end points or otherwise control the overall state of a system. IF you need to do lower level things there are 'unsafe' methods for binding to the native libraries and interfaces of a given platform (but that impairs portability).
I think that with some refinement to the standard libraries Go could more easily handle data-streams that could choke Python 3 (/forcing/ //valid// Unicode everywhere by default isn't ideal; be tolerant in what you accept and strict in what you produce).
I like both Go and Python for higher level languages. They have strengths and weaknesses, but often one will be the correct tool for a given job. Both also benefit from external libraries, often written in C.
I think that C will remain, any replacement probably won't have garbage collection or other such features. Those belong in higher level languages, which are fine things to use in many circumstances. C is common /because/ it's low level, it's similar to a stenographer's shorthand for assembly, but more like a recipe for what to do in general.
I could see a stripped down version of Go, or maybe rust (I haven't tried this yet), or something else similar replacing C, but it would likely be a strict subset. Mostly what I think a 'C replacement' would bring is less undefined behavior and a stronger implicitly re-entrant code model; I also hope it does away with generic sizes and forces the programmer to specify (at least minimum size).
It seems to be a good language for writing 'glue' daemons; servers that co-ordinate the flow of information between different end points or otherwise control the overall state of a system. IF you need to do lower level things there are 'unsafe' methods for binding to the native libraries and interfaces of a given platform (but that impairs portability).
I think that with some refinement to the standard libraries Go could more easily handle data-streams that could choke Python 3 (/forcing/ //valid// Unicode everywhere by default isn't ideal; be tolerant in what you accept and strict in what you produce).
I like both Go and Python for higher level languages. They have strengths and weaknesses, but often one will be the correct tool for a given job. Both also benefit from external libraries, often written in C.
I think that C will remain, any replacement probably won't have garbage collection or other such features. Those belong in higher level languages, which are fine things to use in many circumstances. C is common /because/ it's low level, it's similar to a stenographer's shorthand for assembly, but more like a recipe for what to do in general.
I could see a stripped down version of Go, or maybe rust (I haven't tried this yet), or something else similar replacing C, but it would likely be a strict subset. Mostly what I think a 'C replacement' would bring is less undefined behavior and a stronger implicitly re-entrant code model; I also hope it does away with generic sizes and forces the programmer to specify (at least minimum size).