Цитата(Aliance @ 28.8.2014, 10:06 ) | | diadiavova, ну и кто в этом виноват? ЯП или программист? Чтобы такого не было придумали понятия неймспейсов, скоупа и замыканий. |
Виноват однозначно язык программирования. Я, конечно, понимаю, что если придерживаться определенных правил, то можно избежать множества проблем. И вообще любые недостатки языка вполне можно компенсировать профессионализмом программиста, но, здесь ведь речь не об этом. Во-первых, никакие манипуляции не гарантируют, что проблема не возникнет вообще, а стало быть предложенное тобой решение - довольно кривой костыль. Во-вторых, любая фича, существующая в языке, какую бы потенциальную опасность она ни несла, обычно несет с собой и что-то полезное. Честно говоря, я не могу придумать ни одной ситуации, в которой из возможности повторного объявления переменной можно было бы извлечь хоть какую-то пользу. В этом смысле вообще непонятно для чего надо закладывать такие грабли в язык, ведь ошибки, которые могут от этого возникнуть - отловить довольно трудно, даже имея очень развитые средства отладки, а яваскрипт, насколько мне известно, похвастаться навороченными отладчиками не может. И при этом пользы фича вообще не несет никакой( если ты с этим не согласен, то не сочти за труд и приведи хоть один пример полезности такой фичи).
Ну и в-третьих, если ты пишешь на этом языке много, то знаешь все его "темные стороны", в ином случае будешь судить о поведении кода, исходя из своих знаний, почерпнутых в других языках. А я что-то не припомню, чтобы еще в каких-то языках было что-то подобное.
|