интересно, что будет, когда противники goto узнают о setjmp и longjmp :-) и о ситуациях, когда они — единственный выход :-)
Например, в конторе, где я работал, занимаются сертификацией ПО управления электроникой самолётов по стандарту DO-178b. Пишут тесты. Приходит код, в коде — вечный цикл и вызов функции. Как провеить, что тело цикла корректно и не повиснуть? Как вариант, переопределить вызываемую функцию с тем, чтобы при втором вызове она делала longjmp (goto не поможет, т.к. другая функция) в место, не являющееся телом цикла, таким образом мы его завершим. Сам тестируемый код изменять, естественно, вообще нельзя. Исключение плюсовое бросать из вызываемой не получится, т.к. не плюсы :-)
лично я юзаю и первый, и второй способ. Утилитки с общим API у меня пишутся на С++, причём общее API используется в виде классов, а само действие утилиты больше написано в процедурном стиле. Соответственно, классовая часть Кэмелом, процедурная — с подчёркиванием. Трудность чтения названия на тамошних размерах пока не пугает, но зато сам себе в голове отделяю вечное (общий API) от бренного (подробности его использования в данном конкретном смысле)
Я бы лично не рассчитывал на 99.9999%, что с java у freebsd всё в порядке. Куда проще использовать линукс и не иметь непознанных проблем вида «чего-то оно ошибку выдаёт».
В чём вообще смысл утверждений «я не верю в»? Если решат — это будет мега-прорыв. Если не решат — не будет ничего.
Хуже не станет в любом случае.
В чём смысл антипомощи данному направлению, к тому же фразами типа «я не верю, потому что человечество за всё время существования не смогло летать на аппарате тяжелее воздуха» — подобных аргументов в истории было много очень.
Дайте хоть понадеяться чуть-чуть, пессимистов и так много :-)
дискуссия, скорее, жизнефилософская. Упоминание национальностей лишь намекает на то, как оно в реальности всё происходит, а так поджелудочную можно вырезать и у абстрактного сферического «оно», не имеющего пола, национальности, гражданства :-)
Вопрос философии труда. На самом деле, напрягать ничего не должно — ни тесты, ни работа. Но решается это не тем, кто напрягает, а тем, кто работает. Чем меньше нервов уходит впустую непонятно на что, тем больше полезного будет вложено в труд.
Например, в конторе, где я работал, занимаются сертификацией ПО управления электроникой самолётов по стандарту DO-178b. Пишут тесты. Приходит код, в коде — вечный цикл и вызов функции. Как провеить, что тело цикла корректно и не повиснуть? Как вариант, переопределить вызываемую функцию с тем, чтобы при втором вызове она делала longjmp (goto не поможет, т.к. другая функция) в место, не являющееся телом цикла, таким образом мы его завершим. Сам тестируемый код изменять, естественно, вообще нельзя. Исключение плюсовое бросать из вызываемой не получится, т.к. не плюсы :-)
yury@debian-dev-vm:~/kernel/linux-2.6.36-starterkit/mm$ grep goto *.c | wc -l
894
yury@debian-dev-vm:~/kernel/linux-2.6.36-starterkit/mm$ cat *.c | wc -l
75724
Право, меня удивляют бурления против goto :-)
ЗЫ. Это только в управлении памятью, всё ядро долго перебирать.
Хуже не станет в любом случае.
В чём смысл антипомощи данному направлению, к тому же фразами типа «я не верю, потому что человечество за всё время существования не смогло летать на аппарате тяжелее воздуха» — подобных аргументов в истории было много очень.
Дайте хоть понадеяться чуть-чуть, пессимистов и так много :-)