Zeus> Это каким-то другим словом называется... Только не могу вспомнить, каким Раньше "декомпозицией" называлось
Ещё раньше - ещё как-то...
Zeus> А почему? Во многом потому, что языки такой стиль поощряют. Каждый поощряет свои глюки
Пример с поощрением использования в Паскале имеющихся имён смотри выше
Zeus> Ну, вообще-то все же речь не Си vs Паскаль, а о синтаксисе. Хотя и с этим утверждением в корне не согласен. Даже не думал, что придется кому-то доказывать, что в Си проще совершить ошибку, которая будет проглочена компилятором. Это совершенно очевидный и давно известный факт. Но это - обратная сторона гибкости. Речь именно о синтаксисе. Ну, давай сравнивать Java с Delphy, если так хочется
>>>Я в 90% случаев сразу продумываю алгоритм процедуры и декларирую ровно столько переменных, сколько надо Balancer>> Это годится только для программ уровня решения квадратного уравнения Zeus> Глупости. Это применимо всегда, только проектировать надо правильно. Глупости. Ни в одном сложном проекте ты заранее не распишешь и малой доли нужных переменных
Просто возможностей твоего мозга не хватит. Так что ты тут явно преувеличиваешь
Zeus> Ты что-то недопонял. Нельзя использовать значение этой переменной после завершения цикла. Сегодня он
танцует джаз э... использует одну переменную на несколько циклов, завтра задействует переменную для хранения промежуточных данных, а послезавтра затрёт в ней использцуемое значение. Я про это.
Zeus>>> Вдобавок, трудности с введением лишней переменной даже полезны: заставляет подумать, а нужен ли вообще цикл, и почему о нем сразу не догадался, и т.п. Balancer>> Это не та трудность, которая оптимизирует работу Zeus> Она не оптимизирует сама по себе, она провоцирует на правильный подход. Лишние затраты на разработку не в тех местах, где они нужны, забивают голову ненужными проблемами, затрудяют работу лишними действиями, как следствие ведут к росту усталости, увеличению времени разработки и, в итоге, к более серьёзным ошибкам.
Zeus> Угу, и везде - новый цикл вставить? Это уже попахивает глупостью. Нет, просто это типичный цикл отладки большого проекта. Если ты будешь вносить по одному изменению, компилировать проект, запускать сборку, запускать тестовый софт (скажем, в случае моего сервера, период такого цикла около 10 минут), то ты через два-три мелких изменения уже застрелишься. Поэтому - что можно, конечно, отлаживается "на стенде", на тестовых примерах, но вот в готовом проекте вносятся сразу десятки изменений, и тестируются они "вживую". И на этом фоне все эти "промотаешь", "посмотришь" - это уже форменное издевательство... Не верю я, что ты с проектами таких объёмов никогда серьёзно не работал
Zeus> У тебя какой-то стереотип. В этом смысле он ничем от Си не отличается. Более того - даже лучше: в нем изначально есть возможность писать вложенные функции. Ты же сам за синтаксис ратовал
У меня под "Си" понимается именно синтаксис.
Zeus> Ты предлагаешь целый локальный блок вставить. Это, конечно, выход, но именно заплаточный, топорный. Ах, какая сложность вписать две фигурных скобки!
Конечно, заплатка!
Изначально заложенная в язык... ну-ну
Zeus> Это ты не по делу. По делу
Просто ты почему-то не видишь пользу локальных переменных
Zeus> Ты так и не понимаешь, что все это делается для стимуляции изначально нормального написания программ, а не того, что творится сейчас. Идиот на Паскале, с его "изначально нормальным написанием" напишет программу ничуть не лучше, чем на Си
Кстати, программы, написанные на Дельфи, в среднем, по моим наблюдениям, глючат почаще. А утечки памяти в них - вообще регулярная проблема
>Ограничения, наложенные с умом, полезны именно тем Наложенные с умом!
Zeus> Это ты опять не по делу. Если сначала думать, а потом делать, то у тебя и компилятор будет проще, и язык эффективнее. Например, компилятор Оберона, насколько помню, проще Паскалевского, при том что язык куда мощнее. И просто на порядки проще Сишного любой реинкарнации. (Та же фигня с Джавой, кстати, которой он как бы конкурент). [»] Остаётся удивиться, где он этот Оберон
… чтобы понять рекурсию, нужно сперва понять рекурсию …