Замечания и предложения

А какой в них смысл?

Да я в них тоже смысла не вижу, это учитель мой на это жаловался. Впрочем, в C# они зачем-то есть.

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

Ну там суть была именно в константах, а отсутствие справки и какой-либо документации это уже вторичное. А про правила дорожного движения плохое сравнение, инструкция именно по эксплуатации всех узлов есть у каждого автомобиля, в этом плане даже к родному автовазу не подкопаться.

Да ну? Ну-ка попробуйте по материалу из сервисной книжки любого автомобиля купить набор запчастей, скажем, для замены стеклоподъемника двери. Придется лезть в каталог запчастей, который не идет с автомобилем.

Касательно констант - ну в точности как в старом анекдоте про Чапаева:

  • Василий Иванович, ракеты привезли!
  • Ага, а седла не забыли к ним?
  • А зачем к ракетам седла?
  • Ты еще молод Петька, седла завсегда быть должны!

И потом, какая, к лешему, еще нужна документация? Четыре книги, обучающий курс, куча презентаций, стримы… Я по-простому скажу: зажрался учитель ваш!

Неисправности не относятся к эксплуатации узлов в плане этого сравнения с паскалем, потому как при любой неисправности в паскале мы либо её игнорируем (куча ошибок форматирования, анализатора кода и так далее), либо обращаемся к разработчикам на форум/гитхаб (обращаемся в сервисный центр производителя авто, получается).

Касательно ракет, я бы сравнил константы с ремнём безопасности в ракете.

Документация новых фич: ##, ### (про это, кстати, я и сам не знаю ничего), ** и прочие, например недавно добавленная распаковка кортежей. Всё это должно быть максимально доступно в документации языка в справке, а не где-то там на просторах интернета, где это всё ещё надо дополнительно искать зная заранее что ты ищешь, в чём осведомлённость населения сильно хромает. Гораздо удобнее открыть справку и найти в поиске/по тегу интересующий тебя материал, чем перечитывать сотни страниц книг, в которых искомого материала может и не найтись (вы сами, если бы абстрагировались от всего этого, стали бы таким заниматься?)

P.S. пора уже переходить в болталку

2 лайка

Еще раз: константы не делают код безопаснее, это рудимент первых компиляторов, который был введен для повышения эффективности компиляции. Константы, если они не предопределены в языке, работают как глобальные переменные и это плохо, это ломает концепцию самодостаточности модулей.

1 лайк

В любом случае, для себя лично я вижу смысл только в константах класса: дефолтные значения чего-либо и генерируемые значения для атрибутов. Мне без разницы существование внутриблочных констант и уровень IT-подготовки школьников, просто если отталкиваться от того, что ## это программы без begin-end, в которых могут быть другие элементы программы (процедуры, функции, секция uses), то логично было бы и константы включить в этот список.

Есть еще ограничения синтаксиса, связанные с разбором выражений. Если авторы языка что-то не включили в него, значит они видят проблемы в реализации.

Могу предложить константы в ##:

4 лайка

Так себе аналогия…

Сравним с пультом для телевизора у которого кнопки не подписаны. Купят его если в магазине есть много пультов других фирм с подписанными кнопками? Даже если у этого кнопок в 10 раз больше и фирма заявляет, что каждый день появляется несколько новых, но узнать о них сложно т.к. они невидимые.

Здесь столько рассуждают о быстроте, простоте написания кода на PascalABC.NET и забывают, что хорошая справка тоже для этого.

2 лайка

#$число вместо char($число).

#n означает “символ, десятичный код которого равен n”. $m означает, что число m представлено в шестнадцатиричной системе счисления. Это просто литерал, он по тетрадам укладывается в память набором бит. #$ даст плохо читаемую конструкцию. Само собой, это мое личное мнение.

В Delphi есть такое: #$D#$A

Ну и что? А мне эта конструкция не нравится. Я же свое впечатление написал. Для меня никогда Delphi не был эталоном, возле которого надлежит стоять на коленях и бить поклоны.

Лишняя “ы”:

Спасибо. Поправили

Вот на этом коде PascalABC.net ломается:

В самой IDE отображается нормальной, в консоли IDE тоже, имя файла корректное, но в системной консоли отображается криво (Shift-F9), в созданном файле (Ctrl-O. выбрать файл, открыть) — криво.

Надо указывать кодировку в Rewrite

Rewrite(f,Encoding.UTF8);
Writeln(f, 'Unicode — ελληνικά, русский, 中国文字 Zhōngguó wénzì.');

Но UTF-8 и так должна быть по умолчанию, по идее. Логично требовать указания кодировки, только если требуется какая-нибудь экзотическая или устаревшая (866, 1251 и тд), разве не так?

И как насчёт консоли?

1 лайк