Болталка PascalABC.NET

Да, но многопоточности нет в конструкциях самого Паскаля – это уже фичи чистого .NET, который никто не запрещает использовать, если очень надо. Поэтому именно в данном языке иметь базовые неизменяемые типы никакой практической ценности нет.

Вы имеете в виду async и await? потому что все классы NET, в т.ч. современный Task разумеется присутствуют.

Ну как это нет. Стандартная NET-библиотека кишит параллельностью, всё это можно использовать в Паскале. Вот, в WPFObjects два потока :slight_smile:

А все что вы перечислили – это уже относится к Паскалю?

Разные библиотеки, стандартные и не очень, могут кишеть (? :slight_smile: ) чем угодно, но это еще не делает их реализацию частью возможностей самого языка. С помощью родных конструкций Паскаля нельзя управлять многопоточностью, с помощью классов .NET, псевдоязыка CIL и среды CLR – можно. Но мы же говорим не о скрытых трюках, а о стандартных возможностях языка и его стандартных типах.

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

Что касается неизменяемости строк в управляемых языках – это вообще оптимизация для более эффективной организации кучи и сборки мусора, а не для многопоточности.

Есть какое-то противоречие в вашей фразе. Оно странное. Вы сравниваете язык Паскаль и классы .NET. Тогда давайте будем уже сравнивать языки PascalABC.NET и C#.

Ваши попытки сказать, что .NET - библиотеки к PascalABC.NET не имеют отношения я не понимаю.

Чтобы не быть голословным приведите пожалуйста примеры конструкций языка C#, которые поддерживают многопоточность ну и которых нет в PascalABC.NET. Иначе я не пойму, о чем Вы говорите.

Я их не сравниваю, а просто разделяю понятия. Родные конструкции языка и их возможности – это одно, возможности совместимых библиотек и нижележащей платформы – другое. Они между собой слабо связаны и развиваются независимо.

Они к языку имеют отношение только в том смысле, что их как-то можно подключить и использовать в программах на этом языке. Т.е. они имеют отношение к более широкому понятию системы программирования, а не к самому языку – примерно также, как возможности библиотеки LCL являются стандартной составляющей системы программирования Lazarus, а не диалекта языка ObjectPascal, который реализует компилятор FreePascal.

Иными словами, Lazarus – это система программирования в визуальной RAD-среде (1) на языке ObjectPascal (2) и на базе фреймворка LCL (3). Т.е. существует четкое разделение понятий на среду разработки (1), язык (2), базовую платформу (3) и систему программирования (1+2+3).

В PABC.NET есть постоянная путаница этих понятий, из-за того что нет отдельного названия для языка (точнее своего диалекта), который семантически был бы отделен от названия среды и системы программирования.

По случаю предлагаю своё название: ЮФУ-Паскаль – по аналогии с Борланд Паскаль. Или Ростов-Паскаль :neutral_face: Ну, или по-модному: Modern Pascal / Future Pascal / dotPascal.

async / await

Это конструкции для обеспечения многопоточности.

Именно – конструкции для обеспечения многопоточности, которых нет в языке Паскаль, но которые есть в C#. Может быть пока еще нет.

Нет, ошибаетесь. Такая же история с Delphi - с некоторых пор язык программирования Object Pascal стал называться Delphi. А система программирования всегда называлась Delphi.

Странно, что Вы предлагаете другое название при условии что название у языка есть - PascalABC.NET. Посмотрите Википедию.

Да, согласен - async и await нет - всё руки не доходят. Зато lock есть.

Вроде это всё - других конструкций в C# нет.

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

"Это не техника дошла -- это я сама к вам дошла, на лыжах!" (с) Простоквашино

Это не я ошибаюсь, это их маркетологи в какой-то момент взяли и все опять запутали с Delphi! :slight_smile:

Мне все равно как он называется или будет называться, я всего лишь предлагаю разделить эти понятия – ЯП и системы программирования, как минимум (среда разработки не такая уж особенная, чтобы ей отдельное имя давать). Считайте тогда мои предложения вариантами для именования системы программирования.

Аббревиатура SFU Pascal (Southern Federal University) – еще жестче для знающих английский слэнг. :slight_smile:

Сколько ни говори “халва”, слаще не станет :)) Но можно еще DocentPascal :wink:

3 лайка

Но между тем в нём есть что-то особенное…

Особенно если не модерировать раздел

1 лайк

этот модуль под какой лицензией и кому принадлежит Copyright? Вам или вы передаете нам это право?

1 лайк

Я считаю, что если весь проект под LGPL, не стоит в него включать то, что этой лицензии не удовлетворяет. Иначе пользователь окажется в неприятной ситуации, когда надо изучать лицензии - где какая.

Если я правильно помню, Copyright - авторское право - автоматически принадлежит автору и не может передаваться. Можно на основе авторского права передавать права на владение, тиражирование, распространение объекта этого права, но не само право. Лицензия LGPL - одна из разновидностей такой передачи прав.

То неимущественное право. Когда программист че-то пишет на работе, то copyright принадлежит не ему, а фирме или заказчику. Но неотчуждаемое личное неимущественное право остается за программистом.

1 лайк

На простом человеческом языке это называется авторством.

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

В данном случае договор не заключался, В случае чего потом говорить “А Вася сказал, что права мне передал…” ?

Я предлагаю простой вариант - LGPL и вопросы имущественного характера снимаются. Ну вот как я сделал с NumLibABC.

1 лайк

Да, он же ещё экспериментальный - так что будет время)) Ну, я думаю сделать лицензию вообще без ограничений. То есть LGPL, но копировать лицензию не обязательно. Ну и оставлю на всяк ссылку на мой гитхаб, типо если всё же хотите меня упомянуть - вот он я.

Да, если только лицензия компонента не будет ещё более лёгкой))