>> Иногда (и не так уж редко) goto удобен.
> и когда же? в си — да, там нет finally. а зачем
> goto в c++? пользуйся механизмом исключений, он для того и запилен. Во-первых, исключения совсем для другого (хотя иногда области применения и могут перекрываться). Во-вторых, метки не порождают множества уровней вложенности - наоборот, они делают код "плоским". Иногда это плохо. Даже очень. А иногда - наоборот, упрощает и делает более удобочитаемым (sic!) код. Это не говоря о том, что добавление поддержки исключений утяжеляет программу чисто из-за добавления соответствующего кода компилятором, что для мелких утилит (Unix-way, всё такое) весьма заметно.
> а, кстати: какие там у c++ «парадигмы»? обычный c, только сильно испорченый
> неудачной попыткой затащить туда ООП. удачная — это в ObjC.
C++ - это швейцарский нож. Со всеми недостатками и достоинствами швейцарского ножа. Он слишком тяжёл для многих простых задач. Но там, где нужно совмещать высоко- и низкоуровневые сущности, ему нет равных. И коли уж мы их совмещаем, то глупо не пользоваться имеющимся инструментарием. Попытки использовать C++, скажем, чисто для ООП, с избеганием даже тени процедурного подхода, выглядят грустно.
Objective C - приятный язык. Просто другой.