Аналог System.ValueTuple для PascalABC.NET

Ну, начинающим, думаю, возиться с установкой .NET 4.7 - не особо захочется. Поэтому я предложил свой вариант кортежей. Преимущество же Паскаля в том, что ничего устанавливать дополнительного не надо - открыл и пользуйся. :slight_smile: Если этот модуль был бы стандартным, то это ёще раз поддержало этот принцип. И более того помогло бы лучше оптимизировать программы.

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

Я мотивировку понимаю, но не разделяю её.

Начинающим (в некотором понимании этого слова) вообще неважна производительность в 20%

Те, кому важна, - не начинающие. И они конечно же поддерживают самые новые версии платформы.

Дополнительный модуль будет выглядеть странно особенно для тех, у кого уже стоит .NET 4.7 - а таких нашими стараниями всё больше - стандартная установка не под XP включает в себя NET 4.7. Так вот, под NET 4.7 будет целых три разновидности кортежей. Это, я думаю, для большинства будет выглядеть странно.

Ну, не всегда же это возможно технически. Насколько помню, на XP - .NET 4.7 - не идёт. И насколько помню пользователей на XP немало. Чтобы было проще - можно считать, что TuplesABC - для всех тех, у кого .NET 4.7 просто не может быть установлен. А те - у кого .NET 4.7 - могут просто моим модулем не пользоваться. Я думаю, что не стоит оставлять за бортом тех, у кого XP. :slight_smile: Все мы в одной команде - все мы пишем на PascalABC.NET.

Это - школы со старым парком компьютеров. Они точно не будут этим пользоваться.

Всё-таки я, несмотря на ваши ссылки, не увидел улучшенной производительности ValueTuple. Моя ссылка говорит о том, что они хуже, тест SunSerega - что они в 50% случаев на 20% быстрее, а воставшихся 50 - на 20% медленнее.

Ну, всё-же есть 20% преимущества,

:slight_smile: Поэтому можно TuplesABC добавить как эксперементальный модуль.

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

К моему и Вашему, как вижу, тоже сожалению. Полезная была бы возможность.

Именно так. Но это возможность не первостепенной важности, поэтому пока что в каждом конкретном случае разработчик самостоятельно принимает решение о возможности включения чего-либо еще в дистрибутив.

Как я себе это представляю. Примерно так же как и менеджер пакетов NuGet в Visual Studio - открыл, установил, продолжил работать. Главное - ничего лишнего, несколько кликов мыши.

Да что вы всё - замусоривает да замусоривает… Кому он там и чем может помешать? Весить много он не может, и имя он не занимает, потому что одноимённый модуль из папки с программой всегда имеет больший приоритет.

1 лайк

Предлагаю новый логотип для будущих версий программы PascalABC.NET.

1 лайк