Re: Код мінус соціум: у пошуках сенсів та форм
Розмова була про те що goto мовляв компілюється в асемблерну команду jmp і тому він мовяв ефективніший за switch.
Що значить «goto ефективніший за switch» чи «switch ефективніший за goto»? Дивлячись для якої задачі. Якщо, наприклад, нам дали довгий заплутаний макаронний (але при цьому відлагоджений і робочий) код на якійсь макаронній мові й попросили швиденько переписати на C++, то
1) Можна осягнути дзен, зрозуміти, що автор коду хотів сказати, й написати структурований код, який робить те ж саме, що оригінал, але написаний по-людському. Але на це піде час, а вас просили швиденько, тому цей варіант не розглядаємо.
2) Можна переписати код близько до оригіналу, використовуючи для переходів goto, як і в оригіналі.
3) Можна переписати код близько до оригіналу, але не використовуючи goto, а емулюючи за допомогою switch. З точки зору продуктивності, такий код буде дещо гіршим, ніж у варіанті з goto. Проте, якщо вас попросять переписати не на C++, а на таку мову, як Java, то варіанту з goto у вас не залишиться.
4) Можна не робити ні goto, ні switch, а вдатися до рекурсії замість переходів. Жахливо неоптимальний варіант з ризиком переповнення стеку. Хоча, якщо кінцевою мовою буде не С++ чи Java, a Python... Ні-і-і-і-і!!!!!!!