Re[17]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 22.07.21 11:04
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>>>возможность опускать создает неопределенность.


N>>В чём?

AA>if (true)
AA>do1();
AA>do2();

Это не неопределённость. Она совершенно конкретно решена, ну а то, что можно форматированием сбить чтение для человека — это уже проблема человека, и решается она с человеческой стороны.

Я вашу реплику изначально понял как то, что возможность опускать вторую часть для лисповского if создаёт неопределённость — вот это было бы точно странно.

Что сейчас большинство новых языков форсирует блочные скобки или в стиле if (условие) { блок } или if условие then блок end — факт, да, как раз после таких проблем с "куда отнести этот оператор".

AA>>>в любом языке есть правописание. старые языки не могли обеспечить контроль форматирования.


N>>Это насколько старые и какие именно?

AA>все что возникло до раста

"Контроль форматирования" это Обстракция (tm).
В том же примере с if(cond) do1; do2; — автоформатирование отлично справится:

if (cond)
   do1;
do2;


и точно так же можно написать чушь:

if (cond) {
   do1;
do2;                                                                            }


Вот из-за подобных чудес некоторые требуют автоформаттер как commit hook или CI check (как у нас — даже несмотря на все диверсии применяемых средств, обычно лучше с ними, чем с неконтролируемыми эффектами от кривых отступов и т.п.)

AA>Я утверждаю, что если в обычно тексте, опустить хотя бы одну запятую весь смысл меняется.

AA>Так и у каждого ЯП своя семантика. И свои правила ее выразить, но в отличии от обычного языка у ЯП есть возможность быстро эволюционировать.
AA>Правда эволюция не всегда идет в нужном направлении. например C#, очевидно что он достиг своего пика.

Про C# такие подробности не скажу — но эволюция ЯП очень часто упирается в тупые проблемы легаси.
Вот как, например, организовать в языке вместо "int foo(int x);" — "func foo(x: int): int"?
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.