Pull to refresh
1
0
Send message
Небанальное распознавание и понимание текста работает на основе распознавания более низкоуровневых признаков — типа букв, отступов и т. п.

>потоковое чтение текста

Не обязательно. Чтение и просмотр исходников могут происходить в разных направлениях — например, снизу вверх. Но и в таком случае будут довольно простые распознающие цепочки — типа «текст, пустая строка, уменьшение отступа» при просмотре исходников вверх.

>«воздух» вокруг «плотных» участков сильно облегчают жизнь

лишь привычка, нет объективных причин для иного. Что, «буфер чтения» перегрузится?
Может, еще повлияло, что в детстве многие на Паскале программировали — а begin на той же строке не попишешь.
Так это вынужденное отступление от правил, иначе код будет менее читабельным. Зачем слепо следовать правилам во всех случаях?
Для многострочных условий if я тоже делаю скобку на новой строке — потому что иначе будет сложно увидеть конец условия и начало тела. Аналогично после списков инициализации.
Автоматическое рисование линий после начала функции не особо нужно — после переобучения достаточно ориентироватся по отступам.
Скорее всего, вы говорите про привычку: когда идет распознавание нейронной цепочки, то вместе с распознаванием происходит и прогнозирование на несколько шагов вперед, появляются ожидаемые элементы — в данном примере «должна быть пустая строка», и когда распознавание совпадает с ожиданием — и срабатывает «разрядка», условный рефлекс закрепляется. Но эта привычка легко заменяется (ведущей становится другая нейронная цепочка), и не нужно будет никакой разрядки. Наоборот, пустые строки будут вызывать напряжение — «куда подевался код, что это мне тут лапшу многострочную подсовывают, почему я должен тратить время на пустые строки».
>Оба разрешают делать отступы пробелами, табуляциями и любым их сочетанием

Зачем?
На хабре уже была эта картинка:
www.emacswiki.org/pics/static/TabsSpacesBoth.png
Если полный переход на табы — никаких пробелов, и один отступ всегда один таб.
Некоторые описанные приемы можно применять и на других языках — например, более короткие комментарии начала файла, и т. п.
Если это будет язык типа python, тогда после описанного стиля на него будет перейти довольно легко (в плане визуального распознавания блоков команд).
Египетские скобки — так с перехода на них и начинается статья, я их и сейчас отстаиваю — код короче, похож на python, применяются в java и qt…
По поводу «а не оставлять ли } на строке с последним оператором» — будет слишком неудобно добавлять новые инструкции в блок кода. В остальном, по возможности — как в Python, ибо короче и визуально совпадает.
>Вам кажется очевидным, что «в финале» они придут к какому-то единому для себя стандарту. К сожалению, это не более чем произвольная догадка.

Не потому ли так происходит, что стандарт выбирается больше на основе привычек, а не логического анализа с изменением привычки?

>я не очень понимаю, как это решает проблему работы с этими двумя конкретными coding styles

Может я что не так понял… Но если вставить одну табуляцию вместо 4 пробелов, и одну табуляцию вместо двух пробелов? Не будут же они вставлять по 2 и 1 табуляции соответственно. А значит и неоднозначности пропадут.
Предвидя такой ваш ответ, я и написал уточнение:
>речь о признаках, которые распознаются мозгом за миллисекунды (анализ областей сплошных цветов, например, начинается еще в нейронах сетчатки, и пустая строка или новый отступ для мозга воспринимаются быстро. А вот подпрограмма действий «прокрутка» — это уже дольше, целый набор рефлексов)<

Напишу еще одно уточнение. Низкоуровневые признаки распознаются автоматически (нейроны шлют сигналы в параллельном режиме), без усилий. Усилия нужны для более высокоуровневой работы — например, синтаксический анализ выражения на J, где надо сопоставлять разные варианты, делать выбор и запоминать его («а это значит параметр вот той функции»). Вон те пустые места и в теории не могут принести каких-то сложностей — что было «а вот пустое место — пустая горизонтальная строка, значит начало функции», что станет «пустое место — дополнительный отступ, значит начало функции» — все это простейшие нейронные цепочки, одинаково комфортные после переобучения.
Отдохнуть взглядом на таком узком пространстве в одну строку?? Если отдых для глаз, то лучше перевести взгляд от монитора. Если же для мозга… Тоже перевести взгляд от монитора?
>Устраиваетесь на работу, читаете местный coding style и следуете ему

Но кто пишет такие стили? Программисты-тимлидеры. А они могут за свою жизнь попробовать много стилей, и к чему они придут в финале, то и будет очередным стандартом. Поэтому полезно анализировать и выбирать, что лучше. Тогда у большего количества фирм может быть лучший стандарт.

>ставим 4 дополнительных пробела или 2, если оператор продолжается на следующей строке

Не лучше ли использовать табуляции? ))
habrahabr.ru/post/149210/#comment_5042696
речь о признаках, которые распознаются мозгом за миллисекунды (анализ областей сплошных цветов, например, начинается еще в нейронах сетчатки, и пустая строка или новый отступ для мозга воспринимаются быстро. А вот подпрограмма действий «прокрутка» — это уже дольше, целый набор рефлексов)
>академическими знаниями о нейронах

Академические тут и не нужны. Можно и науч-поп типа Хокинса «Об интеллекте», можно и здравый смысл (как люди вообще чему-то учатся?).

>Есть много вещей, который стоит попробовать

Для программистов вопросы стиля весьма важны.
Если стили отличаются не сильно, то и в памяти надо держать меньше отличий. Должно быть легче…
Если прийти к универсальному стилю не суждено, то можно хотя бы частично к этому подойти — договариваться по все большему количеству частных случаев, отличия будут уменьшатся…
>из-за такой вот фигни полночи

А что там было? Инициализация одних полей класса полями того же класса? Если я избегаю таких вещей, то вроде не просижу пол ночи… Если бы где-то использовал такие вещи то да, пришлось бы в том конкретном классе внимательно проследить за порядком. Но в остальных случаях, зачем тратить свое внимание на такие вещи?
>По умолчанию — не верю

Я попытался доказать другим методом — рассуждения «хватит ли мозгу информации о признаке Х при беглом взгляде на исходники в новом стиле». Если информации потенциально хватает, то после обучения будут выработаны соответствующие гностические (распознающие) нейроны, и в качестве основного источника информации о коде будут использоваться уже они. Значит что признак типа «это новая функция» тоже будет видно с первого взгляда. И еще было замечено, что по факту так оно и оказалось.

>Многие люди принимают наркотики

Так попробовать на одну неделю другой стиль — это не наркотики принять. Хотя привыкание вырабатывается )).

>ибо приколы с git-ом и прочими ребятами

Можно подробнее? Я работал только с VSS и SVN, и не знаю, о чем вы.
После изменения привычки — наоборот.

Information

Rating
Does not participate
Registered
Activity