Да, но многопоточности нет в конструкциях самого Паскаля – это уже фичи чистого .NET, который никто не запрещает использовать, если очень надо. Поэтому именно в данном языке иметь базовые неизменяемые типы никакой практической ценности нет.
Вы имеете в виду async и await? потому что все классы NET, в т.ч. современный Task разумеется присутствуют.
Ну как это нет. Стандартная NET-библиотека кишит параллельностью, всё это можно использовать в Паскале. Вот, в WPFObjects два потока
А все что вы перечислили – это уже относится к Паскалю?
Разные библиотеки, стандартные и не очень, могут кишеть (? ) чем угодно, но это еще не делает их реализацию частью возможностей самого языка. С помощью родных конструкций Паскаля нельзя управлять многопоточностью, с помощью классов .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 есть постоянная путаница этих понятий, из-за того что нет отдельного названия для языка (точнее своего диалекта), который семантически был бы отделен от названия среды и системы программирования.
По случаю предлагаю своё название: ЮФУ-Паскаль – по аналогии с Борланд Паскаль. Или Ростов-Паскаль Ну, или по-модному: Modern Pascal / Future Pascal / dotPascal.
async / await
Это конструкции для обеспечения многопоточности.
Именно – конструкции для обеспечения многопоточности, которых нет в языке Паскаль, но которые есть в C#. Может быть пока еще нет.
Нет, ошибаетесь. Такая же история с Delphi - с некоторых пор язык программирования Object Pascal стал называться Delphi. А система программирования всегда называлась Delphi.
Странно, что Вы предлагаете другое название при условии что название у языка есть - PascalABC.NET. Посмотрите Википедию.
Да, согласен - async и await нет - всё руки не доходят. Зато lock есть.
Вроде это всё - других конструкций в C# нет.
Язык и библиотеки сейчас тесно связаны друг с другом - теснее чем когда бы то ни было. Многие сахарные конструкции языка реализуются через библиотечные конструкции. Например - кортежи. Или у нас - срезы.
"Это не техника дошла -- это я сама к вам дошла, на лыжах!" (с) Простоквашино
Это не я ошибаюсь, это их маркетологи в какой-то момент взяли и все опять запутали с Delphi!
Мне все равно как он называется или будет называться, я всего лишь предлагаю разделить эти понятия – ЯП и системы программирования, как минимум (среда разработки не такая уж особенная, чтобы ей отдельное имя давать). Считайте тогда мои предложения вариантами для именования системы программирования.
Аббревиатура SFU Pascal (Southern Federal University) – еще жестче для знающих английский слэнг.
Сколько ни говори “халва”, слаще не станет :)) Но можно еще DocentPascal
Но между тем в нём есть что-то особенное…
Особенно если не модерировать раздел
этот модуль под какой лицензией и кому принадлежит Copyright? Вам или вы передаете нам это право?
Я считаю, что если весь проект под LGPL, не стоит в него включать то, что этой лицензии не удовлетворяет. Иначе пользователь окажется в неприятной ситуации, когда надо изучать лицензии - где какая.
Если я правильно помню, Copyright - авторское право - автоматически принадлежит автору и не может передаваться. Можно на основе авторского права передавать права на владение, тиражирование, распространение объекта этого права, но не само право. Лицензия LGPL - одна из разновидностей такой передачи прав.
То неимущественное право. Когда программист че-то пишет на работе, то copyright принадлежит не ему, а фирме или заказчику. Но неотчуждаемое личное неимущественное право остается за программистом.
На простом человеческом языке это называется авторством.
Исключительное право на служебное произведение принадлежит работодателю, если трудовым или иным договором между работодателем и автором не предусмотрено иное.
В данном случае договор не заключался, В случае чего потом говорить “А Вася сказал, что права мне передал…” ?
Я предлагаю простой вариант - LGPL и вопросы имущественного характера снимаются. Ну вот как я сделал с NumLibABC.
Да, он же ещё экспериментальный - так что будет время)) Ну, я думаю сделать лицензию вообще без ограничений. То есть LGPL, но копировать лицензию не обязательно. Ну и оставлю на всяк ссылку на мой гитхаб, типо если всё же хотите меня упомянуть - вот он я.
Да, если только лицензия компонента не будет ещё более лёгкой))