Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
G_Z 14.12.2006 10:48
тут обратная совместимость просто необходима - это очень кардинальное изменение, которое может привести к крайне трудноотлавливаемым ошибкам при работе со "старым" кодом, а пользы нет никакой.Мне думается, нормально написанный код работать не перестанет, плохо написаный - перестанет рано или поздно.
Вобще говоря, при нормальном проектировании, количество локальных переменных в методах большим быть не должно - с трудом верится, что код из 5-15 строчек может требовать "декларации локальных переменных по 300 символов" - тут явно повод для "рефакторинга".Большинство методов таких деклараций не содержит, но есть достаточно сложные, разбивать которые на десятки мелких нет необходимости.
Сейчас в Парсере вполне нормальная схема работы: все переменные, которые не описаны как локальные в методах, становятся переменными класса (в том числе и класса MAIN) - это очень удбноЭто очень неудобно.
если активно использовать классы и забыть про понятие "глобальная переменная" - поверьте, оно просто не нужно и даже вредно.У меня нет глобальных переменных.
А вот идея с возможностью описания локальных переменных не только в заголовке метода, но и непосредственно в коде очень даже удачная (в варианте "$local.variable[]"), а если еще можно сделать, чтобы область действия такой переменной была ограничена не всем методом, а блоком "{ }", то будет нам полное счастье.Сейчас я вижу лишь, что все эти идеи призваны закрыть такую досадную штуку, как глобальность всех нелокальных переменных.
Есть единственное изменение, которое действительно нужно сделать и его обратно несовместимостью можно пренебречь: методы класса, имена которых совпадают с именами операторов, должны иметь более высокий приоритет, чем операторы.Тут согласный.