>>51099302>>51099321to be clear, i'm not arguing for the use of unstructured GOTO. i'm saying that many useful exotic control flow concepts are essentially structured GOTO, and it's not harmful to introduce other structured control flow concepts, so long as you abstract and encapsulate them well.
for example, consider merging 4 sorted containers. obviously, on the first step you have to compare the heads of each. let's say A > B > C > D. on the second step, you "know" that B > C > D, but it's very hard to efficiently capture this knowledge. recomparing them all will actually outperform a priority queue, because the queue is too small to justify the overhead
it turns out the best way to do this is to write a block for each case B > C > D, B > D > C, etc. and use GOTO between the cases. this is completely structured, but it sounds satanic, and you'll probably end up implementing it using unsafe macros. this is a sorry situation
>when the software is fast enoughclearly the software is not fast enough (or small enough, or power-efficient enough) since that's what we're complaining about in this conversation. so your basic assumption here isn't true
i know what a bottleneck is. i am arguing that clear bottlenecks don't always exist in complex systems, especially when they are trying to optimize multiple resources. in the multi-resource case i think that's fairly straightforward