The situation is especially difficult because some second-class concepts can safely be used in some circumstances, and not in others, but most programmers today don't have the knowledge necessary to correctly make that decision.
-
-
So the primary thing people like me are arguing for is that people need to learn things like assembly language, not because they need to write code in it, but because if they don't understand it, they don't really understand the high-level code either. They just think they do.
1 reply 0 retweets 5 likes -
In summary, we are saying programmers should learn how the machine works, and evaluate their higher-level constructs against the resulting machine behavior those constructs produce. Nobody is arguing that everything has to be hand-coded in asm. I certainly don't do that myself :)
2 replies 0 retweets 6 likes -
Replying to @cmuratori @sudo_lindenberg
I feel like a future long-form discussion is needed. I think the people who use the phrase "A sufficiently smart compiler" ... (which occasionally includes me) and people whose browser autocompletes g to 'http://godbolt.org ' need to talk more.
2 replies 0 retweets 2 likes -
Replying to @adamgordonbell @sudo_lindenberg
We could have an entire long-form discussion (argument?) just on the phrase "sufficiently smart compiler" :)
1 reply 0 retweets 3 likes -
As a point of reference, the LLVM team still routinely ships horrific codegen bugs for plain C code (ex: https://youtu.be/R5tBY9Zyw6o?t=5879 …). The notion that somehow there will be compilers that are "smart" in the future doesn't really make much sense.
1 reply 0 retweets 2 likes -
If just plain C code is already too complicated to ensure good codegen, how can we possibly expect compilers to eventually be so smart as to do good codegen for dramatically more complicated constructs?
1 reply 0 retweets 3 likes -
Worse yet, the "smarter" you expect the compiler to be, the more unpredictable it becomes, leading to yet more codegen issues - small changes to the source suddenly produce huge, unexpected changes in the output, making it very hard to work with.
1 reply 0 retweets 3 likes -
Obviously I don't know, but I would suspect anyone who uses the term "sufficiently smart compiler" just doesn't spend very much time actually looking at what compilers have traditionally been capable of in their 70 year history.
1 reply 0 retweets 3 likes -
Now, of course, I'd love to suddenly be wrong about this. Maybe we'll have amazing compilers next year. But until we do, I think people need to be much more realistic about what compilers can and cannot be expected to reliably produce in a production environment.
1 reply 0 retweets 2 likes
There's an n^2 thing here. Everything that requires "smarts" in the compiler doesn't just have to work by itself. It has to work with all the _other_ things you wanted it to be "smart" about. Eventually, as N gets large enough, it becomes impossible even to test, let alone write.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.