Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, no4.
no4>>Всё-таки в скобочных языках программисты все равно делают отступы, чтобы сразу видеть вложенности в коде, а вот скобочки в отступных языках никто(1) для себя не пишет — хотя могли бы, например, комментариями.
S>1. Шансов ошибиться скобочками куда меньше, чем шансов огрести проблем с отступами — скобочек банально меньше.
Это результат опыта?
S>2. Нет разброда в том что считать отступом и сколько раз.
Где разброд? Везде зафиксировано, что считать отступом — где в компиляторах, а где в соглашениях.
S>3. Ни одна софтина не заменяет скобочки на что-то другое (см холивары про табуляцию).
Ну это должно быть зафиксировано в правилах. Например компилятор F# ругается, если ты делаешь отступы табами а не пробелами (я это обнаружил только при редактировании fsyacc-файлов — лдля собственно самого F# студия сама всё поддерживает ).
Единственная проблема — с форумами всякими, но вполне терпимая.
S>4. Семантика программы не должна определяться невидимыми символами/форматированием.
Если ты не видишь отступы — зачем ты их делаешь? Отсутпы делают даже в скобочных языках и именно потому, что они видимы сразу.
S>5. Отступы у скобчатых получаются в нагрузку и не несут смысловой нагрузки (уже написано выше).
S>Разумеется, любую идею можно довести до абсурда — отступы в маткаде не то чтобы страшнее (ПРЕВЕД ((ЛИСП) !)). Хотя вайтспейс всё равно круче.
S>В общем для мейнстрима не пойдёт
Прежде чем делать выводы стоило бы привыкнуть к обоим вариантам а потом выбирать. Скобочки просто привычный костыль.
Интересно, по вашему программисты на питон и F# не понимают своего щастья и мучаются?
Здравствуйте, no4, Вы писали:
S>>4. Семантика программы не должна определяться невидимыми символами/форматированием.
no4>Если ты не видишь отступы — зачем ты их делаешь? Отсутпы делают даже в скобочных языках и именно потому, что они видимы сразу.
У меня вот лично слабое зрение, я не вижу разницы между пробелами и табами.
Мне самому нравится как в Питоне отступы сразу и отступы и семантика. Но с другой стороны я поимел проблем из-за незаметного перехода пробел/таб, особенно при переносе с компа на комп и дальнейшим редактированием в редакторе с другими настройками.
Здравствуйте, Hobot Bobot, Вы писали:
HB>Здравствуйте, Chrome, Вы писали:
C>>Так же интересно, обязательные скобочки, выделяющие блоки кода, все эти {}, begin end C>> — уже живые мертвецы? Сущесвуют просто по инерции? C>>Ведь отступов для достижения той же цели достаточно, и они являются необходимыми в свете вышеизложенных мыслей.
HB>Посмотри на Питон. Как по мне — терпимо, но со скобочками нагляднее
С Питоном я разок прокололся при написании скриптов под scons. Кто же знал, что отступы имеют такой сакральный смысл.
Но потом к Питону привык и считаю этот язык очень полезным в быту.
Здравствуйте, no4, Вы писали:
S>>1. Шансов ошибиться скобочками куда меньше, чем шансов огрести проблем с отступами — скобочек банально меньше. no4>Это результат опыта?
Скорее результат привычки. С точки зрения теории вероятности — сами понимаете — больше символов => больше места для ошибок
Ну и кроме того, чтобы получить странные результаты со скобочками — нужно ошибиться 2 раза.
S>>2. Нет разброда в том что считать отступом и сколько раз. no4>Где разброд? Везде зафиксировано, что считать отступом — где в компиляторах, а где в соглашениях.
Таки 2 или 4 пробела?
S>>3. Ни одна софтина не заменяет скобочки на что-то другое (см холивары про табуляцию). no4>Ну это должно быть зафиксировано в правилах. Например компилятор F# ругается, если ты делаешь отступы табами а не пробелами (я это обнаружил только при редактировании fsyacc-файлов — лдля собственно самого F# студия сама всё поддерживает ). no4>Единственная проблема — с форумами всякими, но вполне терпимая.
Ок. Тогда другой аргумент:
Для шарпа можно вообще автоматом удовлетворять даже правилам параноидального StyleCop'a — ставим http://code.msdn.microsoft.com/PowerCommands и вуаля — автоворматирование при сохранении.
Для отступ-driven языков за отступами (и форматированием) должен следить программист. Лишние грабли.
S>>4. Семантика программы не должна определяться невидимыми символами/форматированием. no4>Если ты не видишь отступы — зачем ты их делаешь?
Ставим не моноширинный шрифт — видим?. ССЗБ, согласен.
no4>Отсутпы делают даже в скобочных языках и именно потому, что они видимы сразу. S>>5. Отступы у скобчатых получаются в нагрузку и не несут смысловой нагрузки (уже написано выше).
no4>Интересно, по вашему программисты на питон и F# не понимают своего щастья и мучаются?
Это функциональные языки, и там параметры, расписанные на несколько строк — экзотика. Да и сами ФП — пока экзотика. Для мейнстрима (читай императивщины) не пойдёт.
Здравствуйте, Sinix, Вы писали:
no4>>Интересно, по вашему программисты на питон и F# не понимают своего щастья и мучаются? S>Это функциональные языки, и там параметры, расписанные на несколько строк — экзотика. Да и сами ФП — пока экзотика. Для мейнстрима (читай императивщины) не пойдёт.
А на вопрос ответьте, интересно же. В Haskell, например, можно писать со скобочками и точками с запятыми, но, сюрприз, так не делает никто.
Здравствуйте, VoidEx, Вы писали:
no4>>>Интересно, по вашему программисты на питон и F# не понимают своего щастья и мучаются? S>>Это функциональные языки, и там параметры, расписанные на несколько строк — экзотика. Да и сами ФП — пока экзотика. Для мейнстрима (читай императивщины) не пойдёт.
VE>А на вопрос ответьте, интересно же. В Haskell, например, можно писать со скобочками и точками с запятыми, но, сюрприз, так не делает никто.
А я не ответил? Попробуем разжевать: для фп-style отступы — милое дело, ибо код компактней, смысловая нагруженность повыше, а императивщины — кот наплакал. Напомню, речь с самого начала шла о насильственном форматировании для мейнстрима. Так что не взлетит.
Здравствуйте, Lloyd, Вы писали:
A>>Chrome, Вам присуждается почётное звание Formatting Nazi: A>>
L>Это устоявшееся выражение? А откуда оно?
Явно калька отсюда: http://lurkmore.ru/Grammar_nazi
Я бы, правда, не шутил особо на тему nazi (хотя lurkmore — ресурс прикольный). По крайней мере, пока ещё живы те, кто с ними воевал. Воевал — не в смысле пререкался в форумах, а по настоящему.
Здравствуйте, Chrome, Вы писали:
C>Как думаете, со временем свобода форматирования полностью отомрет?
Нет.
Достаточно часто получается более выразительно писать с нарушением стандартов, чем с их соблюдением.
Хотя бы подряд идущие функции и метки таблицей:
case SomeValue: SomeFunction( 100000, 12, 45); break;
case SomeOtherValue: SomeFunction( 1, 24, 33); break;
/* и куча такого */
/* написание в одну строчку и таблицей повышает читабельность */
Особенно верно для всяких DSL средствами языка. Например, таких
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, no4, Вы писали: no4>Это результат опыта? S>Скорее результат привычки.
Я имел ввиду, что пробовали ли вы написать какое-нибудь количество кода на отступном языке или вас страшит сама идея снаружи, не попробовав.
S>>>2. Нет разброда в том что считать отступом и сколько раз. no4>>Где разброд? Везде зафиксировано, что считать отступом — где в компиляторах, а где в соглашениях. S>Таки 2 или 4 пробела?
в питоне — 4. http://www.python.org/dev/peps/pep-0008/
no4>>Единственная проблема — с форумами всякими, но вполне терпимая. S>Ок. Тогда другой аргумент: S>Для шарпа можно вообще автоматом удовлетворять даже правилам параноидального StyleCop'a — ставим http://code.msdn.microsoft.com/PowerCommands и вуаля — автоворматирование при сохранении. S>Для отступ-driven языков за отступами (и форматированием) должен следить программист. Лишние грабли.
Разве важно, за отступами или за скобочками следит программист? Главное
S>>>4. Семантика программы не должна определяться невидимыми символами/форматированием. no4>>Если ты не видишь отступы — зачем ты их делаешь? S>Ставим не моноширинный шрифт — видим?. ССЗБ, согласен.
Спасибо что не WinDings
no4>>Отсутпы делают даже в скобочных языках и именно потому, что они видимы сразу. S>S>>5. Отступы у скобчатых получаются в нагрузку и не несут смысловой нагрузки (уже написано выше).
no4>>Интересно, по вашему программисты на питон и F# не понимают своего щастья и мучаются? S>Это функциональные языки, и там параметры, расписанные на несколько строк — экзотика.
Питон не является функциональным языком. В выражениях, кстати, отступы не используются для обозначения вложенности — только в императивных конструкциях.
Что имеется ввиду под "параметры" — параметры вызова функций?
S>Да и сами ФП — пока экзотика. Для мейнстрима (читай императивщины) не пойдёт.
Питон очень много где применяется, и он — императивщина.
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, no4, Вы писали:
no4>>Отсутпы делают даже в скобочных языках и именно потому, что они видимы сразу. S>S>>5. Отступы у скобчатых получаются в нагрузку и не несут смысловой нагрузки (уже написано выше).
"В нагрузку", это значит, чтоб читать потруднее было? Какую же нагрузку они несут? Особенно если учесть, что они невидимы? Зачем в текст вставляют что-то невидимое, и для компилятора не играющее роли?
Здравствуйте, Alexander G, Вы писали:
AG>Достаточно часто получается более выразительно писать с нарушением стандартов, чем с их соблюдением. AG>Хотя бы подряд идущие функции и метки таблицей:
AG>
AG>case SomeValue: SomeFunction( 100000, 12, 45); break;
AG>case SomeOtherValue: SomeFunction( 1, 24, 33); break;
AG>/* и куча такого */
AG>/* написание в одну строчку и таблицей повышает читабельность */
AG>
Оно конечно выглядит красиво но добавление
case SomeOtherLongerValue: SomeFunction( 1, 24, 33); break;
вызовет необходимость переформатировать все кейсы, что в свою очередь повлечет за собой потенциальные конфликты при мерже.
да и отступление от норм в одном месте может служить поводом к их нарушению в других местах.
Здравствуйте, Sinix, Вы писали: S>Это функциональные языки, и там параметры, расписанные на несколько строк — экзотика.
Вовсе нет. В хаскеле часто так делается при документировании хэддоком: http://www.haskell.org/haddock/doc/html/ch03s02.html.