vit_r: default (vit_r)
[personal profile] vit_r

Пара слов про стандарты на кодирование



В топике у [livejournal.com profile] metaclass мне уже второй раз предоставляют ссылку на «Стандарт кодирования в Хаскеле»

Ха. Уже второй раз я это открываю, хмыкаю и закрываю. Не вдаваясь в подробности, всего два пункта.

Первым делом, «Длина строки не должна превышать 80 (78) символов».

Привет, перфокарты! Рад, что самый современный, самый крутой, и самый-самый язык программирования в двадцать первом веке сохраняет вам верность.

Вторым, идёт замечательное требование, отражающее всю мошь, всю суть, и всю экзестенциальность поклонников Хаскеля: «Табуляция запрещена. Разрешены только пробелы».

Ну что ж. Признаю своё полнейшее ничтожество. Ни в распечатке, ни при взгляде на экран четыре или восемь белых полей табуляции я не отличу от четырёх или восьми белых пробелов. А хаскелисты МОГУТ! Не ощупывают же они каждый раз код вслепую, чтобы убедиться, что он соответствует стандарту.

(То, что это правило просто кричит о нестабильности по отношению к форматированию, можно оставить за скобками.)

Кстати, метрика на стабильность: Вы оставили код в рабочем окне. Пришёл ребёнок и понажимал на кнопочки. Вам нужно восстановить первоначальное состояние. Время пошло. (Ребёнок взят вместо коллеги, потому что он вносит ошибки случайные, а идиоты, особенно с глубоким знанием предмета, могут быть очень изобретательными, и тут уже идёт борьба не с языком, а с чужим интеллектом. Хотя, конечно, метрика отражает стабильность во втором случае.)

Date: 2013-09-16 12:46 pm (UTC)
From: [identity profile] metaclass.livejournal.com
За табы надо вырывать руки. Потому что в распределенных командах вечно проблемы вида "у меня табы заменяются на пробелы по 2-3-4-8 символов, а у меня не заменяются вообще" и в конечно итоге на код без слез смотрет невозможно.
А в хаскеле отступы являются элементом синтаксиса и мешать табы и пробелы там ни в коем случае нельзя.

И нормальные редакторы показывают отличия между табами и пробелами.

Date: 2013-09-16 12:51 pm (UTC)
From: [identity profile] vit-r.livejournal.com
В распределённых коммандах просто всем говорится: "Таб у нас 4 символа. Для идиотов: в редакторе А это ставится так, в редакторе Б - так, а в редакторе С - вот так."

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

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-09-16 01:00 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 08:47 pm (UTC) - Expand

(no subject)

From: [identity profile] asox.livejournal.com - Date: 2013-09-17 11:26 am (UTC) - Expand

(no subject)

From: [identity profile] rageous.livejournal.com - Date: 2013-09-16 01:27 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-16 02:25 pm (UTC) - Expand

(no subject)

From: [identity profile] rageous.livejournal.com - Date: 2013-09-16 02:35 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-16 02:37 pm (UTC) - Expand

(no subject)

From: [identity profile] gineer.livejournal.com - Date: 2013-09-16 04:01 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-16 04:11 pm (UTC) - Expand

(no subject)

From: [identity profile] honeyman.livejournal.com - Date: 2013-09-16 02:29 pm (UTC) - Expand

(no subject)

From: [identity profile] rageous.livejournal.com - Date: 2013-09-16 02:32 pm (UTC) - Expand

Бабах кровь кишки

From: [identity profile] honeyman.livejournal.com - Date: 2013-09-16 03:37 pm (UTC) - Expand

Re: Бабах кровь кишки

From: [identity profile] rageous.livejournal.com - Date: 2013-09-16 03:45 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-16 04:13 pm (UTC) - Expand

(no subject)

From: [identity profile] voidex.livejournal.com - Date: 2013-09-16 04:43 pm (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-09-17 05:05 am (UTC) - Expand

(no subject)

From: [identity profile] voidex.livejournal.com - Date: 2013-09-17 03:05 pm (UTC) - Expand

(no subject)

From: [identity profile] asox.livejournal.com - Date: 2013-09-17 11:29 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 09:04 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 08:50 pm (UTC) - Expand

(no subject)

From: [identity profile] dmytrish.livejournal.com - Date: 2013-09-17 07:22 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-17 08:23 pm (UTC) - Expand

(no subject)

From: [identity profile] asox.livejournal.com - Date: 2013-09-17 11:21 am (UTC) - Expand

(no subject)

From: [identity profile] rageous.livejournal.com - Date: 2013-09-17 11:24 am (UTC) - Expand

(no subject)

From: [identity profile] asox.livejournal.com - Date: 2013-09-17 11:36 am (UTC) - Expand

Date: 2013-09-16 02:22 pm (UTC)
From: [identity profile] honeyman.livejournal.com
> За табы надо вырывать руки.

А за форматирование отступов пробелами надо отсылать на курсы младших секретарш.

(no subject)

From: [identity profile] nealar.livejournal.com - Date: 2013-09-16 02:25 pm (UTC) - Expand

(no subject)

From: [identity profile] vanderdecken-lj.livejournal.com - Date: 2013-09-16 08:20 pm (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-09-17 05:07 am (UTC) - Expand

(no subject)

From: [identity profile] do-dodo.livejournal.com - Date: 2013-09-17 07:13 am (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-09-17 07:27 am (UTC) - Expand

(no subject)

From: [identity profile] do-dodo.livejournal.com - Date: 2013-09-17 07:41 am (UTC) - Expand

(no subject)

From: [identity profile] voidex.livejournal.com - Date: 2013-09-17 04:08 pm (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-09-19 06:40 am (UTC) - Expand

(no subject)

From: [identity profile] do-dodo.livejournal.com - Date: 2013-09-20 11:13 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-20 02:26 pm (UTC) - Expand

(no subject)

From: [identity profile] voidex.livejournal.com - Date: 2013-09-21 11:31 am (UTC) - Expand

(no subject)

From: [identity profile] dmytrish.livejournal.com - Date: 2013-09-17 07:27 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-17 08:26 pm (UTC) - Expand

Date: 2013-09-16 02:30 pm (UTC)
From: [identity profile] potan.livejournal.com
Хаскел позволяет все писать по человечески - с фигурными скобками вместо питоньих отступов.
Правда ни кто так не пишет, кроме как в REPLе...

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 09:08 pm (UTC) - Expand

(no subject)

From: [identity profile] potan.livejournal.com - Date: 2013-09-17 06:27 am (UTC) - Expand

Date: 2013-09-16 02:53 pm (UTC)
From: [identity profile] sab123.livejournal.com
За замену табуляций на пробелы надо отрывать руки. И вообще использовать пробелы вначале строк по уму нельзя. В начале строк должны быть только табуляции.

(no subject)

From: [identity profile] alexeyk77.livejournal.com - Date: 2013-09-16 07:00 pm (UTC) - Expand

Date: 2013-09-16 06:46 pm (UTC)

Date: 2013-09-17 11:24 am (UTC)
From: [identity profile] asox.livejournal.com
Потому что в распределенных командах вечно проблемы вида "у меня табы заменяются на пробелы по 2-3-4-8 символов, а у меня не заменяются вообще" и в конечно итоге на код без слез смотрет невозможно.

А если "в нормальных командах" не зафиксировать политику форматирования - то текст и при отсутствии табуляций смотреть невозможно.

Date: 2013-09-16 01:29 pm (UTC)
From: [identity profile] rageous.livejournal.com
80 символов -- достаточно аггресивный лимит, 100 в наше время, наверное, было бы разумнее. Но уж лучше 80, чем никакого лимита: если вам не доводилось отлаживать/читать код со строчками в 150-250 символов, то я вам завидую -- приятного в этом мало.

Date: 2013-09-16 08:52 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Прежде, чем вводить культ, надо ответить на вопросы "почему?" и "зачем?". Вот тут как у создателей языков, так и у адептов различных правил большие проблемы.

(no subject)

From: [identity profile] polytheme.livejournal.com - Date: 2013-09-17 07:30 am (UTC) - Expand

Date: 2013-09-16 01:40 pm (UTC)
From: [identity profile] ilya-portnov.livejournal.com
По сравнению с тем же питоном, синтаксис хаскеля более гибкий. В частности, он позволяет писать полностью в "c-style", когда вложенность конструкций определяется только фигурными скобками, а форматирование ни на что не влияет — пиши хоть всё в одной строке. Если вам или вашей команде не нравится, что форматирование может влиять на смысл — просто внедряете правило всегда использовать синтаксис с фигурными скобками.

А над разными coding style-ами можно издеваться долго и громко. Ну хоть тот же linux kernel coding style — только табы для отступов, таб 8 пробелов, длина строки всё те же 80 символов. Ничо, живут как-то.

Date: 2013-09-16 02:01 pm (UTC)
From: [identity profile] orleanz.livejournal.com
" Первым делом, «Длина строки не должна превышать 80 (78) символов».
Привет, перфокарты!

Вит, ты тут попал пальцем в небо. Хаскель тут совсем ни при чем.

Потому что и в Питоне, который в миллион раз распространенне Хаскелля, и вообще является одним из самых распространненых языков в мире, во всяком случае совершенно принятым индустрией - именно такой же стандарт хорошего стиля

цитата

"Limit all lines to a maximum of 79 characters.
Limiting the required editor window width makes it possible to have several files open side-by-side, and works well when using code review tools that present the two versions in adjacent columns.


И с табами в Питоне тоже же самое

Spaces are the preferred indentation method.
Tabs should be used solely to remain consistent with code that is already indented with tabs.
Python 3 disallows mixing the use of tabs and spaces for indentation.

http://www.python.org/dev/peps/pep-0008/

Date: 2013-09-16 02:06 pm (UTC)
From: [identity profile] orleanz.livejournal.com
" Ни в распечатке, ни при взгляде на экран четыре или восемь белых полей табуляции я не отличу от четырёх или восьми белых пробелов. А хаскелисты МОГУТ!

Это потому что ты не пользуешься современным редактором типа Сублайма

В Сублайме, когда ты выделяешь некую часть текста, он тебе показывает все скрытые символы. это очень удобно. выглядит это так

Image

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-16 02:32 pm (UTC) - Expand

(no subject)

From: [identity profile] orleanz.livejournal.com - Date: 2013-09-16 02:36 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-16 03:02 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 09:11 pm (UTC) - Expand

(no subject)

From: [identity profile] asox.livejournal.com - Date: 2013-09-17 11:44 am (UTC) - Expand

(no subject)

From: [identity profile] do-dodo.livejournal.com - Date: 2013-09-17 12:11 pm (UTC) - Expand

(no subject)

From: [identity profile] asox.livejournal.com - Date: 2013-09-17 06:24 pm (UTC) - Expand

(no subject)

From: [identity profile] nealar.livejournal.com - Date: 2013-09-16 02:16 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 08:55 pm (UTC) - Expand

(no subject)

From: [identity profile] orleanz.livejournal.com - Date: 2013-09-17 09:29 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-17 08:43 pm (UTC) - Expand

Форматирование кода.

Date: 2013-09-16 02:12 pm (UTC)
From: [identity profile] livejournal.livejournal.com
User [livejournal.com profile] thesz referenced to your post from Форматирование кода. (http://thesz.livejournal.com/1395743.html) saying: [...] http://vit-r.livejournal.com/680513.html?nc=8 [...]

Re: Форматирование кода.

Date: 2013-09-16 08:58 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Милый способ банить человека у себя в журнале, а потом глубокомысленно отвечать ему. У себя в журнале.

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2013-09-17 07:08 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-17 08:17 pm (UTC) - Expand

Date: 2013-09-16 02:14 pm (UTC)
From: [identity profile] orleanz.livejournal.com
" Вы оставили код в рабочем окне. Пришёл ребёнок и понажимал на кнопочки. Вам нужно восстановить первоначальное состояние.

для этого есть git вообще-то, или какой нибудь другой сурс контрол



Date: 2013-09-16 02:29 pm (UTC)
ext_646638: (Default)
From: [identity profile] rdia.livejournal.com
u до упора.
Edited Date: 2013-09-16 02:31 pm (UTC)

(no subject)

From: [identity profile] ko-bx.livejournal.com - Date: 2013-09-16 03:59 pm (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2013-09-17 10:55 am (UTC) - Expand

(no subject)

From: [identity profile] ko-bx.livejournal.com - Date: 2013-09-17 12:24 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 09:02 pm (UTC) - Expand

Date: 2013-09-16 02:17 pm (UTC)
From: [identity profile] nealar.livejournal.com
Вы оставили код в рабочем окне. Пришёл ребёнок и понажимал на кнопочки. Вам нужно восстановить первоначальное состояние. Время пошло.
Облокачиваюсь на Alt+Backspace, и жду секунд 40.

Date: 2013-09-16 02:31 pm (UTC)
ext_646638: (Default)
From: [identity profile] rdia.livejournal.com
У меня Vim, его так просто не закроешь, поэтому u до упора.

Date: 2013-09-16 02:53 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Последняя задача решается так; local history -> compare...

Date: 2013-09-16 08:28 pm (UTC)
From: [identity profile] http://users.livejournal.com/_windwalker_/
ну тут же идеей только жабщики и скалисты пользуются... а автору интересны хаскелиты.

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 09:33 pm (UTC) - Expand

Date: 2013-09-16 03:25 pm (UTC)
From: (Anonymous)
> Привет, перфокарты! Рад, что самый современный, самый крутой, и самый-самый язык программирования в двадцать первом веке сохраняет вам верность.

А при чем здесь, собственно, перфокарты? Вот у меня, обычный самый ноутбук, 15" экран, разрешение 1366x768 (ок, разрешение маленькое, но размер-то букв от этого меньший удобнее не станет).

Вот мой экран с редактором, разделённым на две части:

http://screencloud.net/img/screenshots/f7db28f2d00c0391ec57ba28a04d7af4.png

Как видите, вмещается целых 90 символов.

Date: 2013-09-16 03:54 pm (UTC)
From: [identity profile] gineer.livejournal.com
теплый ламповый Хаскель :)
не зря же они напирают на "с 25-летней историей",
как буд-то это что-то хорошее (само по себе)

Date: 2013-09-16 04:40 pm (UTC)
From: [identity profile] voidex.livejournal.com
Как хаскелист, официально открещиваюсь от описанных двух пунктов.
Табы - благо, 80 символов не использую, у меня немоноширинный шрифт.

Date: 2013-09-16 05:56 pm (UTC)
From: [identity profile] migmit.livejournal.com
Табы — жуткая гадость. Вне зависимости от языка.

(no subject)

From: [identity profile] voidex.livejournal.com - Date: 2013-09-16 07:26 pm (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2013-09-16 09:01 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 09:23 pm (UTC) - Expand

(no subject)

From: [identity profile] voidex.livejournal.com - Date: 2013-09-17 12:42 am (UTC) - Expand

(no subject)

From: [identity profile] nealar.livejournal.com - Date: 2013-09-17 04:50 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-17 05:12 am (UTC) - Expand

(no subject)

From: [identity profile] zelych.livejournal.com - Date: 2013-09-17 05:53 am (UTC) - Expand

Date: 2013-09-16 05:56 pm (UTC)
From: [identity profile] migmit.livejournal.com
> Вторым, идёт замечательное требование, отражающее всю мошь, всю суть, и всю экзестенциальность поклонников Хаскеля: «Табуляция запрещена. Разрешены только пробелы».

Во всех компаниях, где я работал, было ровно то же самое правило. Хотя, в основном, это были C и C++.

И это очень правильно.

Date: 2013-09-16 08:23 pm (UTC)
From: [identity profile] vanderdecken-lj.livejournal.com
Почему?
Потому что гладиолус? Или это религиозный догмат?

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2013-09-16 09:00 pm (UTC) - Expand

(no subject)

From: [identity profile] voidex.livejournal.com - Date: 2013-09-16 09:34 pm (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2013-09-16 09:45 pm (UTC) - Expand

(no subject)

From: [identity profile] voidex.livejournal.com - Date: 2013-09-17 12:40 am (UTC) - Expand

(no subject)

From: [identity profile] nealar.livejournal.com - Date: 2013-09-17 04:53 am (UTC) - Expand

(no subject)

From: [identity profile] asox.livejournal.com - Date: 2013-09-17 11:54 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2013-09-17 01:11 pm (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2013-09-17 05:53 am (UTC) - Expand

(no subject)

From: [identity profile] voidex.livejournal.com - Date: 2013-09-17 03:11 pm (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2013-09-20 02:03 pm (UTC) - Expand

(no subject)

From: [identity profile] voidex.livejournal.com - Date: 2013-09-21 11:42 am (UTC) - Expand

Ada Style Guide

Date: 2013-09-17 04:59 am (UTC)
From: [identity profile] geniepro.livejournal.com
Далеко не только в хаскелле рекомендуется выдерживать длину строки кода в 78 символов. Вот, например, Ada Style Guide:
http://en.wikibooks.org/wiki/Ada_Style_Guide/Source_Code_Presentation#Source_Code_Line_Length

Source Code Line Length

guideline

Adhere to a maximum line length limit for source code (Nissen and Wallis 1984, §2.3).

instantiation

Specifically, it is recommended that you:
Limit source code line lengths to a maximum of 72 characters.

rationale

When Ada code is ported from one system to another, there may be restrictions on the record size of source line statements, possibly for one of the following reasons: some operating systems may not support variable length records for tape I/O, or some printers and terminals support an 80-character line width with no line-wrap. See further rationale in the note for Guideline 7.1.2.

Source code must sometimes be published for various reasons, and letter-size paper is not as forgiving as a computer listing in terms of the number of usable columns.

In addition, there are human limitations in the width of the field of view for understanding at the level required for reading source code. These limitations correspond roughly to the 70- to 80-column range.

exceptions

An alternate instantiation is to limit source code length to 79 characters. The 79-character limit differentiates the code from the FORTRAN 72-character limit. It also avoids problems with 80-character width terminals where the character in the last column may not print correctly.

automation notes

The guidelines in this section are easily enforced with an automatic code formatter.

Так что дело не только в "привет, перфокарты", терминалы, принтеры и журнальные статьи, но ещё и в особеностях человеческого зрения -- в конце концов, в обычных книгах тоже в районе 65-70 символов в строке. (Правда в книгах текст плотный, в программах же обычно разрежённый за счёт выравнивания и отступов.)

Re: Ada Style Guide

Date: 2013-09-17 05:37 am (UTC)
From: [identity profile] vit-r.livejournal.com
Благородный дон читает то, что пишет?

Adhere to a maximum line length limit for source code (Nissen and Wallis 1984, §2.3).

Всё остальное - мусор.

В середине восьмидесятых годов прошлого века умные люди ввели умное правило. С тех пор мир ушёл вперёд. Но военные (мы не забываем, кто использует Аду) до сих пор маршируют как записано в уставе.
Edited Date: 2013-09-17 05:38 am (UTC)

Date: 2013-09-17 05:26 am (UTC)
From: [identity profile] geniepro.livejournal.com
Ну а Ваши-то какие аргументы? Вы свою позицию так и не обозначили ясно и чётко, только удивляетесь чужим правилам и привычкам...

Date: 2013-09-17 05:40 am (UTC)
From: [identity profile] vit-r.livejournal.com
Это блог. Он не для общения, а не для отстаивания позиций, так что я это делаю в другом месте.

ви таки будете смеятся

Date: 2013-09-17 06:43 am (UTC)
From: [identity profile] yajohn.livejournal.com
Работал я как-то на одного олдскульного работодателя, у которого 80 символов были законом, причем не лишенным смысла. Дело в том, что исходники там передавались клиенту, причем в распечатанном на бумаге виде. Причем печатали на каком-то древнем матричном эпсоне, который просто обрезал строки за 80 символом. А в коде начиная с 80 символа шли комментарии не предназначенные для посторонних глаз.

Такая вот программно-аппаратная защита ноу-хау :)

Re: ви таки будете смеятся

Date: 2013-09-17 06:51 am (UTC)
From: [identity profile] vit-r.livejournal.com
Любое, даже самое странное правило будет разумным, если на вопрос "почему?" есть чёткий рациональный ответ.

Date: 2013-09-17 07:41 am (UTC)
From: [identity profile] dmytrish.livejournal.com
Табы — это, фактически, нетекстовая сущность, это элементы форматирования, и это было бы хорошо, если бы они были не такие анахроничные и убогие:

Originally, printer mechanisms used mechanical tab stops to indicate where the tabs went. This was done horizontally with movable metal prongs in a row, and vertically with a loop of mylar or other tape the length of a page with holes punched in it to indicate the tab stops. Initially these were manually set up to match the preprinted forms that were loaded into the printer. Later, the intention was to have the machine be pre-programmed, by using other control characters to set and clear the stops: ISO 6429 includes the codes 136 (Horizontal Tabulation Set), 137 (Horizontal Tabulation with Justification) and 138 (Vertical Tabulation Set). - википедия о Tab character


То есть, сначала табы использовались для того, чтобы принтер просто отступил место, не тратя время на каждый пробел (вам это сейчас нужно?). Потом табы использовались в юниксах для быстрого форматирования колонок таблиц в консоли (это имеет какое-то отношение к тексту?). И лишь потом в WYSIWYG-редакторах эта «ненужная» для GUI клавиша была переосмыслена в отступ.

Но программный код — это вовсе не текст, как он пишется в Ворде, ему нужна четкость, легкость восприятия и понимания, а не плюшки и свистелки, именно поэтому код до сих пор в ASCII. Примешивать сюда какие-то угребищные анахроничные элементы форматирования родом из 70-ых мне кажется ужасным. Я хочу видеть текст, а не что-то, что расползается или сжимается в зависимости от настроек редактора.

Если уж на то пошло, почему месье не использует Vertical tabulation и другие химерные порождения принтеростроения 70-ых?!
Edited Date: 2013-09-17 07:42 am (UTC)

Date: 2013-09-17 08:35 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Насколько помню, горизонтальная табуляция была ещё в пишущих машинках. Если клавиша сохранилась до наших дней, в ней есть смысл.

Date: 2013-09-17 07:53 am (UTC)
From: [identity profile] dmytrish.livejournal.com
Вы когда-нибудь вообще программировали на языке, в котором синтаксис зависит от отступов?

Date: 2013-09-17 08:37 pm (UTC)
From: [identity profile] vit-r.livejournal.com
В чём смысл задавать вопрос с "вообще"? Что даст ответ "да"? Что даст ответ "нет"? Какой следующий шаг?

Date: 2013-09-17 05:30 pm (UTC)
From: [identity profile] Константин Лихоманов (from livejournal.com)
Поскольку в хаскеле отступы синтаксически значимы, размер табуляции с точки зрения компилятора прописан в стандарте (http://www.haskell.org/onlinereport/haskell2010/haskellch10.html#x17-17800010.3). Не думаю, что найдётся много людей, которым комфортно работать с кодом, уехавшим хотя бы на 4-5 восьмисимвольных отступов. А поскольку то же самое layout rule заставляет в определённых случаях следить и за выравниванием текста (alignment), оставлять табы, но отображать их другим числом пробелов, чревато.

Date: 2013-09-17 09:11 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Если хочется, чтобы комментарий не попадал в спам, имеет смысл писать ссылки в теге "а"

В остальном же адепты хаскеля напоминают поклонников вериг.

(no subject)

From: [identity profile] Константин Лихоманов - Date: 2013-09-18 04:39 am (UTC) - Expand

Profile

vit_r: default (Default)
vit_r

January 2026

S M T W T F S
    12 3
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 8th, 2026 05:03 am
Powered by Dreamwidth Studios