LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

elif match2:=re.match("pattern2", data):

Здесь всё хорошо как раз. Стоило бы даже в семейство Си-подобных внести запрет на использование = в контексте условий и добавить туда отдельную операцию.

А насчёт control flow дополню вот чем.

У меня есть компилятор самописного игрушечного язычка, написанный на нём самом. И вот там я применил такую штуку как опциональное указание на разновидность оператора в конце.

То есть можно написать просто:

if a < b then
    ...
end

А можно:

if a < b then
    ...
end:if

И так для всех блочных операторов: end:while, end:for, end:switch, end:function.

Так вот. Буду эмоционален, но: ЭТО НЕВЕРОЯТНО УЛУЧШАЕТ ЧИТАЕМОСТЬ КОДА И СНИЖАЕТ ЦЕНУ ТРИВИАЛЬНЫХ ОШИБОК.

Вчера у меня в JS работа трижды вставала на 2-3 минуты из-за того, что я где-то оставлял несбалансированную скобку и тупо сидел и искал, где. А уж особенно если там больше 10 уровней вложенности, как в коде, который я рефакторил вчера. Это еще та задачка — всё растащить по методам, ничего не сломав.

Кстати идея добавить такой синтаксис меня посетила как раз в ходе рефакторинга кода компилятора.

Исходная версия wandrien, :

elif match2:=re.match("pattern2", data):

Здесь всё хорошо как раз. Стоило бы даже в семейство Си-подобных внести запрет на использование = в контексте условий и добавить туда отдельный оператор.

А насчёт control flow дополню вот чем.

У меня есть компилятор самописного игрушечного язычка, написанный на нём самом. И вот там я применил такую штуку как опциональное указание на разновидность оператора в конце.

То есть можно написать просто:

if a < b then
    ...
end

А можно:

if a < b then
    ...
end:if

И так для всех блочных операторов: end:while, end:for, end:switch, end:function.

Так вот. Буду эмоционален, но: ЭТО НЕВЕРОЯТНО УЛУЧШАЕТ ЧИТАЕМОСТЬ КОДА И СНИЖАЕТ ЦЕНУ ТРИВИАЛЬНЫХ ОШИБОК.

Вчера у меня в JS работа трижды вставала на 2-3 минуты из-за того, что я где-то оставлял несбалансированную скобку и тупо сидел и искал, где. А уж особенно если там больше 10 уровней вложенности, как в коде, который я рефакторил вчера. Это еще та задачка — всё растащить по методам, ничего не сломав.

Кстати идея добавить такой синтаксис меня посетила как раз в ходе рефакторинга кода компилятора.