Под предыдущим постом получилась замечательная дискуссия. «Больше нельзя, потмому что в скафандре стекло потеет», «Шире не получится, потому что гамак пружинит», «А нам не жарко, надо просто скафандр с вентиляцией использовать»... И, конечно, спор пробельщиков с табуляторщиками.День, определённо, удался.
Я не собираюсь спорить, просто расскажу о результатах одной серии экспериментов.
Про восемьдесят символов
Перфокарта содержала строку из 80 символов. Машинный байт умножить на человеческий десяток. Всё разумно.
Прогресс двигался вперёд, вычислительная техника развивалась. 80 символов было и на алфовитно-цифромом дисплее. (Может кто ещё помнит, такие тёмные с зелёненькими буквами). 80 символов было и в распечатке многих принтеров.
Правило не писать в строке больше 80 символов было сначала необходимым, а потом - разумным. Пока текст был виден на небольшом дисплее, а проверялся в распечатке на бумаге, нужно было держать длину строки в рамках, чтобы избежать переноса и спокойно читать напечатанный текст. Кстати, с тех же времён нам достался и другая священная корова - одиноко висящая открывающая скобка.
Потом появились графические интерфейсы с полосами прокрутки, редакторы научились подсвечивать код разными цветами, мониторы стали шире, потом ещё шире... Печатать код стало совершенно не нужно.
Кстати, хоть тогда код и печатали, но работа с ним принципиально отличалась от форматирования бумажной книги. Тем более, прежде чем упоминать типографику, стоило бы прочитать про неё хотя бы элементарный учебник. Чего адепты 80, естественно, не делали.
Правило, которое было на самом деле не про 80 символов, звучит сейчас примерно так «Желательно, чтобы весь логический блок кода был виден на экране без необходимости горизонтальной или вертикальной прокрутки».
Это слабое правило, которое не действует, если противоречит другим, более важным. (Их много, но я не хочу углубляться.)
В задачах со сложной предметной областью часто используются идентификаторы шириной 25-30 символов. В текстовой строке в ковычках может быть спокойно те же самые 80 символов, а к ним надо добавить ещё и переменные, и связки, и пробелы между ними. Лесенка вправо может быть построена так, что сама строка начинается на позиции 36-40... Короче, без всяких правил есть масса ситуаций, когда Древний Закон 80 Символов лучше игнорировать.
Но и в наше время многоцветного кода, широких графических дисплеев и умных редакторов дофига людей, которые увидев хвост стоки за позицией 81 тащат дрова и готовят спички.
Насчёт восстановления кода после внесения шума.
Это было не задание на сообразительность, а описание метрики, выражаемой в минутах. Причём, метрика интегральная, отражающая много интересных параметров. Если шум невозможно убрать без дополнительных средств, или не получается за разумное время, значит в системе большие проблемы.
Грубо говоря, в написание кода - это то же самое устранение шума по отношению к ещё не существующему, и потому не известному мудрым тулам, оптимальному решению.
Да,
И, чтобы не разводить бодягу под этим постом, сразу добавлю: как только левый край текста в Physical Review начнёт выглядеть также, как он выглядит в программистском исходном коде, я начну принимать во внимание высокомудрые размышления о его правом крае.
no subject
Date: 2013-09-17 12:51 am (UTC)Я бы хоть гистограммы смотрел, что бы понять что да где.
Ну и да, хороший холиварчик на пустом месте.
no subject
Date: 2013-09-17 05:16 am (UTC)Вайнберг писал, что в IBM он поспорил с другими создателями спецификации. Они требовали, чтобы была откомментирована каждая строка. Он утверждал, что комментарии должны быть не в конце строк, а в шапке перед ними отдельно. В результате 3 против 1 и консенсусом было загнанное в компилятор правило: "3/4 строк кода должно содержать комментарии".
В результате люди много лет забивали в комментарии мусор, лишь бы компилятор отвязался.
Но в стандартах на кодирование стоит не "в среднем", а "запрещено".
no subject
Date: 2013-09-17 02:05 am (UTC)Уточнения для:
void main()
{ <----- Вот эта?
У вас опечатка -
"Печатать код сТало совершенно не нужно."
----------------------------------------------------------------
> Насчёт восстановления кода после внесения шума.
Вы недостаточно чётко объяснили задачу и лежащую внутри неё идею. Спасибо за разъяснения, теперь понятно.
no subject
Date: 2013-09-17 02:21 am (UTC)Конечно, если верстать серьёзно, это смешно, но вы же не можете перевёрстывать код под разные мониторы/размер шрифта автоматически?
no subject
Date: 2013-09-17 05:24 am (UTC)И 80 символов ограничивают только на стандартном листе, служащим только для измерения объёма текста. В остальных случаях верстальщики гораздо умнее программистов.
И самое главное - код не читают.
no subject
Date: 2013-09-17 07:20 am (UTC)Это как же так получается? Код на выброс -- написал, скомпилировал и стёр исходники? о_О Это теперь стало трендом в промышленном программировании?
no subject
Date: 2013-09-17 11:23 am (UTC)no subject
Date: 2013-09-17 04:05 pm (UTC)Все еще тяжелее - код смотрят в редакторах с 2 или 3 колонками, для диффа и мерджа. Именно поэтому берется ограничение на 80 символов.
no subject
Date: 2013-09-17 09:21 pm (UTC)Нужно срочно придумать другие извращения. Это не катит, правило было придумано задолго до колонок, да и до диффов.
no subject
Date: 2013-09-18 04:43 am (UTC)После Вашего заявления о том, что "код не читают" уже не имеет значения, как код оформлен. 80 символов в строке или 800 -- какая разница?
no subject
Date: 2013-09-18 05:22 am (UTC)Третий закон Чизхолма.
Date: 2013-09-18 06:46 am (UTC)Следствия.
1. Даже если ваше объяснение настолько ясно, что исключает всякое ложное толкование, все равно найдется человек, который поймет вас неправильно.
_____________________________________
Раз уж Вы программист, Вам следует яснее высказываться. Тогда и не было бы всяких недопониманий. Хотя и то без гарантии...
no subject
Date: 2013-09-17 08:33 pm (UTC)no subject
Date: 2013-09-17 08:20 pm (UTC)no subject
Date: 2013-09-17 05:59 am (UTC)no subject
Date: 2013-09-17 05:21 am (UTC)Да. Она позволяла на распечатке провести линию сверху вниз и смотреть содержимое блока отдельно.
У вас опечатка
Спасибо
Вы недостаточно чётко объяснили задачу и лежащую внутри неё идею.
Ну мы, вроде, говорим про культуру Хаскеля, а там так принято.
В принципе, слово "метрика" всё остальное подразумевает.
no subject
Date: 2013-09-17 07:23 am (UTC)Глупая и непонятно зачем нужная метрика.
Научитесь, что ли, отходя от терминала блокировать его против детей и коллег...
no subject
Date: 2013-09-17 05:13 pm (UTC)Да, интересно было бы заслушать мнение докладчика.
Однако, давайте вернёмся к чтению текстов. Мы, как высокообразованные в русском языке люди, читаем не по слогам, а целыми словами, парами и тройками слов. Те, у кого развито скорочтение, читают ещё большими кластерами символов.
Распознавание в мозгу, естественно, работает тем быстрее, но и тяжелее, чем больший кластер одновременно подаётся на вход. Этому механизму можно помочь, вставляя некоторый избыток символов, служащий для автокоррекции. В естественных языках, как правило, контекст и словарь имеют этот избыток:
"По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета, не иеемт занчнеия, в кокам пряокде рсапожолена бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы не чиатем кдаужю бкуву по отдльенотси, а все солво цликеом."
Насколько я понимаю мысель докладчика, при конструировании искусственных языков тоже желательно предусматривать некоторую избыточность ключевых слов. Если моё понимание правильно, иллюстрация докладчика крайне неудачна.
no subject
Date: 2013-09-17 09:23 pm (UTC)Не правильно, но мысль об избыточном кодировании очень здравая. Про распознавание вместо прочтения - тоже.
А, чтобы понять, зачем нужна метрика, имеет смысл попробовать поиграться, а потом проанализировать результат.
no subject
Date: 2013-09-17 09:49 pm (UTC)Огласите весь список, пожалуйста.
Я так много раз игрался и "u" в Vim'е всё время работал. Ни малейшей поддержки языка не требовалось. Право слово!
Более того, покорёженный редакторами/полетевшей ФС код тоже приходилось восстанавливать. Но с распространением git и подобных, эта практика как-то сошла на нет. Т.е. либо откат в vcs, либо откат в редакторе, либо написание с 0я (если потеряно вообще всё).
no subject
Date: 2013-09-17 09:53 pm (UTC)no subject
Date: 2013-09-17 10:03 pm (UTC)no subject
Date: 2013-09-17 08:24 pm (UTC)Проблемы на вашей стороне.
no subject
Date: 2013-09-18 04:33 am (UTC)Вот те на те.
Date: 2013-09-17 10:17 am (UTC)no subject
Date: 2013-09-17 08:10 pm (UTC)no subject
Date: 2013-09-17 09:15 pm (UTC)no subject
Date: 2013-09-17 10:28 pm (UTC)no subject
Date: 2013-09-17 08:48 pm (UTC)no subject
Date: 2013-09-17 09:16 pm (UTC)no subject
Date: 2013-09-17 09:31 pm (UTC)Примером такого договора может служить руководство по стилю кода в том или ином проекте.
no subject
Date: 2013-09-17 09:56 pm (UTC)