>> Pike, например, язык динамический и безопастный, но в то же время >> допускает типизированные переменные, и он не сегфолтится. >> Вспоминаем логику и выражение "при прочих равных условиях". >> Не надо сравнивать C и скриптовые языки. > > Вы заявляли выше, что строгая типизация обеспечивает надежность > программ. Любое высказывание подобного рода всегда предполагает "при прочих равных". Нельзя сравнивать километры и килограммы.
> А теперь признаете, что ни хрена она не помогает и нетипизированный > тикль надежнее типизированного С++. Во-первых, я этого не говорил. Во-вторых, такое, конечно же, вполне возможно, и теоретически и практически. В-третьих, я постоянно вижу "падения" программ на руби с сообщениями типа undefined value...nil траляля. Это лучше segfault-а только в том, что это безопасно в плане vulnerabilities. В-четвертых, у моих знакомых есть ОЧЕНЬ отрицательный опыт написания БОЛЬШОЙ программы на тикле (у меня такого опыта нет). Не то, чтобы это аргумент, но success story я бы это не назвал. > Оказывается, чтобы создавать надежные программы, нужны динамические > языки, и неважно, типизированы они или нет. Нет, не оказывается. Полно крупных надежных программ, написанных на java, C#, Ada, и прочих, которые динамическими не являются. Надежные программы можно создать на любом языке, и на динамическом и на статическом, вопрос только в цене. >> >> > Ничего, кроме скорости выполнения и упрощения >> > компилятора/интерпретатора типизация переменных не дает. >> >> Наглое и подлое вранье! Разницу между compile-time и run-time проверками >> знаем? А разницу в "цене" этих проверок? > > И что эта разница дает, кроме скорости выполнения кода и упрощения его > компиляции/интерпретации? Из статической типизации не следует компилируемость языка, то есть длительной _предварительной_ компиляции. И наоборот. Из "компилируемости" языка не следует то, что он со статической типизацией. Lua, например умеет компилироваться в исполняемый шитый код (бинарь), но он динамический. Еще пример, для С, ЯП со статической типизацией, существуют интерпретаторы. > "Разница в цене" это и будет скорость выполнения кода, Это не имеет никакого отношения к обсуждаемой теме. Слово "компилятор" само по себе не означает "быстрый". Слово "интерпретатор" само по себе не означает "медленный". Точно так же динамическая типизация не всегда в результате дает медленно исполняемый код. В некоторых случаях транслятор вполне способен выяснить значение какого типа ожидается в данной конкретной функции, и сгенерировать соответствующий код максимально эффективно. Многие трансляторы Лиспа, например, так делают. > и к надежности отношения не имеет. Имеет. Динамические языки требуют на порядок большего количества тестов. Это и есть "цена" динамичности. То, что многие опенсорсники их не пишут, полагаяюсь исключительно на бетатестирование - это их проблемы. > да еще и пишете, простите меня, безграмотно. Да. Именно такими аргументами и отличается "срач", как тут было сказано, от дискуссии. -- Best regards, Aleksey Cheusov. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

