|
|
|
|
|
by fab13n
4558 days ago
|
|
I believe in PG's "what languages fix" criterion, and I'm convinced that C will be displaced by a language which fixes multicore programming. You can do multithreaded code in C the way you can do structured programming in BASIC (or do OO in plain C): it's possible, because the language is Türing-complete and the required primitives are there, but the language is so unhelpful that it simply doesn't scale, and the only sane thing to do is to try and avoid doing it as far as possible. (I don't mention C++, because it sucks as a high perf solution in the hands of the C++ programmers you can effectively hire: cf. e.g. http://harmful.cat-v.org/software/c++/linus) Hence I'm more than puzzled that M# design doesn't seem centered on multi-core exploitation, including GPUs. Single-threaded Moore law is over, so robust concurrency is where performance gains are. They pay lip service to coroutines, because they know they have to, but that's hardly their main design constraint. Go with its goroutines at least addresses the proper question, whether you agree with their proposed answer or not. |
|
This must be the more metal version of the regular Turing completeness. \m/ :)