Кортежи ValueTuple

Так а в чём проблема то? Вы можете не уходить в абстракцию каждый раз как не знаете что ответить?

Не могу я ответить, не переходя на персоналии, а это не есть хорошо.

То, что Вы, в частности предлагаете, можно себе позволить, только если подсадить на PascalABC.NET хотя-бы 65-70% пользователей в учебных заведениях. Тогда можно что-то диктовать в стиле “не хочешь - не ешь!”. Но не сейчас, когда все преспокойно уйдут на FPС, благо лобби у него есть неслабое.

На XP нельзя установить .NET выше 4.0.

Мне кажется, можно существенно улучшить этот показатель, выкладывая на оф. сайте только полные дистрибутивы Паскаля (с интегрированным .NET 4.7+), а “голые” инсталляшки без свежего .NET распространять только через модуль обновления из-под уже установленной среды. Как вам идея?

Часто бывает так что на казённых компах приходится переустанавливать винду, со сносом всего что было.

Ради эксперимента, у кого остался доступ на XP-шку, можете проверить работает ли на нем dll-ка System.ValueTuple.dll из свежего пакета (из папки lib/portable-net40* или lib/netstandard1.0).

1 лайк

Так а чем моё предложение помешает этому сценарию? Поставят вместе с Паскалем сразу свежую версию .NETа, если раньше её не успели установить.

А если установили XP? Не на все компы семёрка станет. Вот у моей мамы семёрку поставили с 2 гигами оперативки - так половина вещей не работает. Проигрыватель вин медиа ели получилось заставить работать, к примеру (ему очень не нравится когда оперативки мало).

1 лайк

Совсем недавно у меня именно так было. Двухканальная память, две планки cо строго одинаковой памятью по гигабайту, DDR-2. Пойди найди докупить еще две по одному, чтобы 4 Гб сделать. Хорошо, нашлась в славном Ростове-на- Дону добрая душа в одной из нескольких оставшихся компьютерных фирм, работающих со старой техникой, раздобыл четыре планки по 2 Гб и сейчас под семеркой с 8 Гб получаю ну просто немеряное удовольствие.

А до того вообще не жизнь была даже с PascalABC.NET, не говоря о более прожорливых приложениях.

И кстати, из разговора в этой же компьютерной фирме узнал, что сейчас просто резко взлетел спрос на старую компьютерную технику. И причиной тут вовсе не ностальгический ренессанс - банальная нехватка денег у населения. Приходят мамы-папы, берут для детей “бэушные” системные блоки чуть ли на первых селеронах с гигабайтом памяти. Берут по смешным ценам, от 1.5-2 тысячи рублей. И знаете куда? Детям, дома информатику делать! А мы им - бац! Быстро все поставили десятку на 16 гиг! А кто не может, PascalABС.NET не виноват!

… попытаемся под 4.7 всех загнать - разработчикам икаться будет круглые сутки из-за недоброго поминания пользователями.

Пожалуйста, не валите все в кучу. Я не предлагаю насильно всем устанавливать 7-ку вместо XP. Я предлагаю добровольно-принудительно увеличивать долю машин с установленной версией .NET 4.7+ на Win7 и выше путем ограничения свободного доступа к инсталлятору Паскаля без .NETа. Т.е. первый раз при установке среды ВСЕ будут вынуждены установить свежий .NET.

Разумеется, это не относится к отдельному дистрибутиву XP, хотя и там было бы полезно также навязывать установку, но уже .NET 4.0, т.к. он может быть совсем какой-нибудь древний.

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

То есть вы всё же предлагаете то что предложил я изначально - 2 разных установщика, на ХП и на семёрку?

Принудительная установка .NET 4.7 на Win7 и выше никак не может повлиять на работу системы – это максимум вопрос наличия нескольких десятков МБ на диске. Ни на совместимость, ни на производительность остальных приложений это никак не повлияет. Исполнительная среда CLR в .NET 4.0…4.7.2 – одинаковая (версии 4.0).

Нет, не совсем – ваше предложение, как я понял, было в том, чтобы делать дистрибутивы не просто с разными базовыми инсталляшками .NET и, может быть, еще отсутствием некоторых дополнительных модулей (вроде GraphWPF и подобных), а с разной реализацией компилятора или системной библиотеки (как в случае с Tuple/ValueTuple). Этого я не поддерживаю.

Для случая же просто отдельного установщика с .NET 4.0 для XP, как это уже сделано сейчас – да, разумно. Там я предлагаю только навязывать скачивание с сайта установщика с .NET 4.0, чтобы не возникало попыток запускать Паскаль на .NET 3.5 или еще ниже. А после первой оффлайн-установки обновляться уже из-под среды по облегченному варианту (или с помощью какой-то внешней утилиты-апдейтера).

Да оставьте Вы это всё как есть. Я не помню, кто предложил, что надо просто “забросить” ту версию PABC.NET, которая с .NET 4.0. Но предложил правильно, я поддерживаю. Исправлять в ней лишь те явные баги, которые делают работу с ней невозможной/затруднительной. Но чтобы что-то запрещать, нужно быть либо РКН, либо Microsoft со своей 10.

Тут - вторая проблема. Откомпилированный exe не будет работать на 85% машин с неустановленным Паскалем. Со страшной ошибкой он даже не будет запускаться.

1 лайк

@Admin, в компиляторе C# есть возможность задать целевую версию .NET. Можно ли это сделать в PABC?

Разумеется, это не решит сразу проблему существования более старых версий .NET на клиентских машинах под Win7 и старше. Я предложил это исключительно как посильное средство в деле постепенного, но более активного увеличения доли .NET 4.7 у вашей целевой аудитории (в т.ч. в учебных заведениях). В нынешней ситуации у них просто нет никакого стимула апгрейдить свой .NET и они даже не понимают зачем это вообще делать.

Кроме того, отдельный от установки Паскаля апгрейд .NET требует от пользователя не только понимания “зачем”, но и дополнительных усилий и времени на поиски нужного установщика. Я предлагаю упростить ему эту задачу (в т.ч. и проблему выбора между “полным” дистрибутивом Паскаля и базовым). По-вашему, в этом предложении нет никакого практического смысла?

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

P.S. @admin Кстати, не хотите добавить в свой установщик автоматический сбор статистики по используемым версиям .NET, чтобы не гадать на кофейной гуще? Можно даже там сделать страницу микроанкеты с вариантами использования, напр.:

  • не важно/не скажу (по-умолчанию)
  • домашний ПК
  • учебный ПК
  • рабочий ПК

Привязку можно делать либо по IP (грубо), либо по уникальному GUID – более точно, но с явного разрешения пользователя.

2 лайка

Ну давайте Вы всё-таки ответите на вопрос. Что делать тем, у кого вообще Паскаль на машине не установлен, но приносится exe - и он не работает со страшной ошибкой?

2 лайка

Странно, почему вы задаете этот вопрос именно мне с таким “пристрастием”? А вы сами то знаете, что делают сейчас в аналогичной гипотетической ситуации ваши пользователи? Вы же сами утверждаете, что около 40%-60% из них до сих пор используют XP, где .NETа из коробки нет вообще! Да даже в 7-ке изначально предустановлен только .NET 3.5. Т.е. при нынешней ориентации Паскаля на возможности .NET 4.0 (сколько лет уже, кстати?) проблем совместимости гарантированно нет только у тех, кто использует Win8 и выше.

  • Какова доля таких пользователей у вас?
  • Как все они раньше решали поставленный вами вопрос?

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

2 лайка

Это с чего вдруг? Хотя, если плевать на тех, у кого сейчас XP, то придёт время и для тех, у кого 7, а затем и 8.