Болталка PascalABC.NET

Он работает как интерфейс, но только во where и его можно как экстеншн метод, делать для стандартных типов, чтоб, к примеру, IList и IDictionary назвать 1 именем, и, к примеру, получить свойство Count (у них оно по разному описано, без них никак). Точный синтаксис, пока лучше не говорить, потому что они, похоже, ещё совсем не готовы.

1 лайк

Буду иметь ввиду, что “мало кто пользуется” и “никто не пользуется” - одно и то же.

Он нужен при решении некоторых задач.

Согласен, только Паскаль не наследовал Decimal от C#. От .NET - да.

А я по-вашему только этот форум и читаю? Наивно.

Я не критиковал Decimal. Моё сообщение о том, что данный тип работает медленнее, не имеет ничего общего с критикой. Этот факт определён самой структурой типа. И опять таки, это не значит, что тип плохой и бесполезный.

Вообще не понял, что за передергивание! Вам с утра скучно, что-ли? Или просто лень в своей будущей книге про формочки писать? Смысл моего послания был совсем не в том, чтобы постебаться свысока над косяками или намекнуть на некомпетентность разработчиков.

НО! Помимо дежурных багов, разных недоделок и несовершенств в проекте – полно, и они всем, кто достаточно давно им пользуется, хорошо известны. Мой тезис как раз в том, что нерезонно вдруг убивать весьма полезный функционал только на основании того, что он до сих пор не доведен до идеала, а по разным причинам им некому вплотную заняться.

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

Вот кому этот редактор сейчас жить-то мешает? Что проект выиграет, если его отпилят? Мне кажется, разработчики просто поддались некоторой панике из-за этого “молдавского” всёпропальщика и теперь, что называется, уже просто “дуют на воду” – баги же!

1 лайк

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

Вам все время что-то своё мерещиться в моих словах. Я нигде никаких указивок никому не давал, а моё предложение очевидное – даже если по какой-либо причине не можете дальше что-то развивать или доводить до ума (то, что уже давно и весьма неплохо работает и кем-то реально используется), просто не трогайте это, пусть живет, как есть! Зачем сразу под нож-то?!

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

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

Я не понял, вы тут бесплатным адвокатом работаете что-ли? Давайте вы не будете додумывать на свой лад ни за авторов проекта, ни за их пользователей! Мой изначальный пост к вам вообще не относился, чего вы встряли-то со своим особым мнением?! Вы все больше начинаете походить на какого-то фанатичного сектанта своим поведением – мгновенно набрасываетесь на любого, кто посмеет тут что-то предложить или (не дай бог!) покритиковать. Оставайтесь “в своей шкуре” и не пытайтесь устанавливать свои порядки, вам никто здесь право модератора не давал.

З,Ы, Вас послушать, так это только вы тут самый главный и полезный контрибутор, а все остальные участники – просто никчемные критики и бестолковые фантазеры, только зря отвлекающие разработчиков вашей любимой игрушки для хобби.

1 лайк

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

Английский бизнесмен получил письмо от коллеги. Письмо гласило:

“Дорогой сэр, поскольку моя секретарша - дама, я не могу продиктовать ей то, что о вас думаю. Более того, поскольку я джентльмен, я не имею права даже думать о вас так. Но, так как вы ни то, ни другое, я надеюсь, вы поймете меня правильно”

Явное всё-же лучше неявного…

Вроде нормально все… а что должно произойти?

В Паскале почему-то Private ни чем не отличается от Internal. Например такой код

Type A = Class
  Private P1: Int32;
  Public Constructor Create();
  Begin
    P1 := 1;
  End;
End;

Begin
  var Dat := new A();
  Console.WriteLine(A.P1);
End.

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

Вы уже писали об этом. И вам ответили - в паскале private разрешает доступ со всего модуля, в котором он описан. Если вы разнесёте на разные модули - работать не будет.

Про это слышу впервые, но всё равно, спасибо!

Почаще читайте документацию

Кроме того, private и protected члены видны отовсюду в пределах модуля, в котором определен класс.

Просто подмывает перефразировать популярное: “Это Паскаль, детка!” :grinning:

Не подключаются сборки System.IO.Compression.FileSystem и System.IO.Compression.ZipFile. Пробовал добавлять в проект и через {$reference.

Перечисленных Вами сборок не существует. Это классы, находящиеся в сборке System.IO.Compression.dll. Попробуйте написать

{$Reference 'System.IO.Compression.dll'}
1 лайк

А он какой глаз - куперовский или марвеловский? )) Кстати, еще у Алан Парсонс Проджект есть неплохая мелодия HawkEye - лет так десять назад я брал ее на озвучку ролика ))) Послушать можно тут

1 лайк

Хорошая идея! А давайте предложим. Но вот думаю тут надо скорее их не файлами называть, а, например, дампами. Основать их на стандартной сериализации средствами .NET, чтоб проще было. То есть типизированный файл для классов.

Type a = class
End;
Begin
  Var f: dump of a;
End.

В соответствии с давно установившейся терминологией дамп - это посмертная шестнадцатиричная выдача области памяти, задействованной в ситуации, когда произошло аварийное завершение программы/системы