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

Ленивый это так:

function LazyPrintln<T>(self: sequence of T): sequence of T; extensionmethod;
begin
  foreach var el in self do
  begin
    Print(el);
    yield el;
  end;
end;

А то что у вас (Result := self) - это не в стили ленивости. Это только в стиле ООП.

1 лайк

Кроме того. Весь смысл этого Result := self в ООП стиле - в том чтоб писать программы в 1 строчку (применяя несколько функций к 1 объекту). Тем временем каждая 3-5 программа на куберфоруме содержит что то такое:

begin
  var a := ArrRandom;
  a.Println;
end.

То есть приходиться разбивать на 2 строчки, потому что криво реализован ООП стиль.
Иначе у a будет тип последовательности вместо массива, а у массивов всё же есть незаменимый функционал (как доступ к последнему элементу, без вычисления всей последовательности).

1 лайк

Println должен возвращать последовательность. Всё остальное - да - криво

1 лайк

И при выводе массивов? Почему? Снова принципиальность ради принципиальности?

1 лайк

Возможно он действительно должен. Должен каким-то высоким обстоятельствам. Но для пользователя еще бы хотелось, чтобы он был должен и житейскому смыслу. Согласно которому Print - это создание “твердой копии”. Т.е. визуализация копии внутреннего представления. И посему обычная логика немножко привстает на дыбы ,когда оказывается, что копирование меняет тип оригинала. Причем не всегда, что усложняет запоминание.

Это были аргументы “pro”. А теперь “contra”.

На массивах свет клином не сошелся. Мы же не возмущаемся, когда Print превращает в последовательность выводимые HashSet, List и т.д. Можно просто считать, что для матриц сделано исключение, Кстати, хорошо, что сделано. Страшно подумать, как потом бы мы работали с последовательностью последовательностей.

В общем, мое предложение простое: flame mode off и все остается, как есть.

2 лайка

В отличии от массивов, для распаковки списка, стека, очереди или хэшсета синоним создавать не нужно

1 лайк

Может быть, в настройках имеет смысл добавить “птичку”, взведя которую получим автоматическую проверку наличия обновлений версии? Т.е. чтобы после загрузки IDE у желающего автоматом выполнялся пункт меню “Помощь” - “Проверить обновления”. Ленивым и забывчивым будет напоминать, что можно обновиться.

Разработчики так и не смогли сделать асинхронную проверку обновлений. А без этого - вся IDE зависает пока проверяются обновления.
Кроме того, обновления лучше проверять при закрытии IDE.

Что есть - то и есть. Я предлагаю всего лишь ввести опциональную возможность автоматически после загрузки среды вызывать пункт меню. Ничего особого делать для этого не нужно.

Только IDE тогда будет всегда зависать при отсутствии подключения к интернету.

Если это опционально, пользователь сам решит, нужна ему такая возможность или нет. Есть пользователи, имеющие стабильный интернет, раздаваемый по сети 24/7. Например, я ))

А если вам отключат интернет вы даже в настройки зайти из-за зависания не сможете ))

Придётся .ini-файл редактировать

Если отключат - подожду. ибо что делать-то в РАВС без интернет?

А сейчас что - удобно? Вон человек вопрос написал, я зашел, проверил, считал что версия последняя, смотрел совсем недавно. Кто знал, что вышло обновление? Практически при каждом входе надо запускать проверку руками. Иногда забываешь, поскольку никакой закономерности в частоте появления обновлений нет и информации о том, что обновление было, нет также.

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

Нет, хуже всего когда инет слабый. Когда инета нет - через пару секунд выдаёт ошибку сети. А если он слабый или нестабильный, или ещё хуже, если сайт паскаля снова лежит (для чего не нужно отсутствие инета) - то пока оно ещё одумается, пройдёт сек 15.

@Admin, В http://pascalabc.net/chto-novogo всё ещё 3.4.2 написано. Хотя и скачивается последняя версия

1 лайк

@Admin, можно поподробней о модуле BBCMicroBit? Что это и зачем? (посмотреть исходный код у меня сейчас нет возможности)

Это для школьников. Платы типа Arduino

1 лайк

Почему в последних версия паскаль стал компилировать exe файлы в папку C:\PABCWork.NET\Output вместо той, в которой лежит исходник. Это до жути неудобно стало. Или как это отключить.

Отключите это в настройках. Подавляющему большинству удобна настройка, сделанная сейчас по умолчанию.

Привык юзать в коде функцию: ExtractFilePath(GetEXEFileName) и с новыми версиями начали сыпаться ошибки в коде.