OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 21 Сентябрь, 2020 18:38

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 253 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12, 13  След.
Автор Сообщение
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Среда, 12 Февраль, 2020 03:36 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3191
Откуда: Астрахань
Пётр Кушнир писал(а):
Много шума из ничего.

Не-не-не...
Уже только одно ЯВНОЕ представление архитектуры из компонентов - дорогого стОит.
Конструирование типа из частей - нечто похожее есть в Додиезе - там можно писать частичные классы.
Конечно, для сборки программы из компонентов потребуется метаинформация.
Но, на мой взгляд, к единообразию все равно прийти не удастся.
В отличие от материального мира, в программировании очень легко создаются новые сущности.
Поэтому каждый, кто хочет (и способен) просто делает свое "в меру своей испорченности".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Среда, 12 Февраль, 2020 09:44 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2654
Откуда: Россия, Ярославль
Валерий Лаптев писал(а):
Не-не-не...

Очень убедительно. Мы-то лапотные, трейтов с миксинами не видели ни разу, а уж про тип как тег или интерфейс как сумму методов и мечтать не могли. В итоге вся суть новости в том, что кто-то что-то сделал. Ну ок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Среда, 12 Февраль, 2020 15:21 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 954
Вот мне опять же неясно. Несколько уровней компонент есть в яве и C# (функция - класс - пакет - приложение). Явного описания структуры в java, может быть, и не существует, но, если программа вся статическая и не грузит классы по имени, то эту структуру, видимо, легко получить (сам с явой практически недостаточно опыта имел, чтобы знать этот вопрос).

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

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

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

Поэтому всё же осмелюсь снова спросить, в чём же инновация в ВИРе?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Среда, 12 Февраль, 2020 15:26 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 306
Валерий Лаптев писал(а):
Конструирование типа из частей - нечто похожее есть в Додиезе - там можно писать частичные классы.



А чем ABSTRACT RECORD не "частичное описание класса"? Views.View асбтрактный, оч много всего реализовывает, изящно, элегантно и незаметно, а программист потом дописывает Restore, макушку айсберга - и вот оно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Среда, 12 Февраль, 2020 17:34 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1102
Откуда: Киев
budden писал(а):
Явного описания структуры в java, может быть, и не существует, но, если программа вся статическая и не грузит классы по имени, то эту структуру, видимо, легко получить (сам с явой практически недостаточно опыта имел, чтобы знать этот вопрос).
Структура программы может быть и статической по замыслу и не грузить явно классы по именам из строк, но сама по себя Java в отношени компоновки классов существенно динамическая и всё равно неявно грузит классы по имени в тот момент, когда они понадобятся, и их отсутствие можно корректно обработать, если использующий код отлавливает ClassNotFoundException.

Цитата:
Поэтому всё же осмелюсь снова спросить, в чём же инновация в ВИРе?
Для ответа на этот вопрос, видимо, нужно чтобы кто-то, всё-таки, воспользовался предложением и после консультаций с автором описал бы систему со стороны. Не хотите взяться? Там есть горячая перезагрузка кода и русский язык, как Вы любите.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 08:56 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3191
Откуда: Астрахань
adimetrius писал(а):
Валерий Лаптев писал(а):
Конструирование типа из частей - нечто похожее есть в Додиезе - там можно писать частичные классы.

А чем ABSTRACT RECORD не "частичное описание класса"?

Не. Абстрактные классы - это обычный ООП, который есть во всех языках.
Наследники реализуют и добавляют.
Частичный класс - это несколько другое.
Можно ДОБАВИТЬ в БАЗОВЫЙ класс чего не хватает. Совсем в другом месте программы.
При этом исходный базовый класс не требуется заново транслировать, а только добавления.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 11:15 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1102
Откуда: Киев
Валерий Лаптев писал(а):
Можно ДОБАВИТЬ в БАЗОВЫЙ класс чего не хватает. Совсем в другом месте программы.
При этом исходный базовый класс не требуется заново транслировать, а только добавления.
Иными словами, это аналог добавления процедуры, которая работает с экземпляром класса, объявленного в другом модуле, где ради "красивого" вида вызова, вводятся побочные эффекты:
    1. Неочевидность места происхождения "метода" и возможность путаницы.
    2. Необходимость разрешать конфликты пересекающихся "расширений".
    3. Стимулирование отказа от полноценного сокрытия и внесенения зависимости от внутреннего содержимого, повышая хрупкость связей.
Чтобы понять полезность или бесполезность этого, "обязательно" нужно сделать концепт и провести годы экспериментов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 14:32 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3191
Откуда: Астрахань
Ну, "молча" предполагается, что эти "годы экспериментов" проделала Микрософт, и потом внесла эти фичи в язык.
Собственно, Недоря тоже проводит "годы экспериментов", разрабатывая ВИР.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 14:45 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 954
Цитата:
Цитата:
Поэтому всё же осмелюсь снова спросить, в чём же инновация в ВИРе?
Для ответа на этот вопрос, видимо, нужно чтобы кто-то, всё-таки, воспользовался предложением и после консультаций с автором описал бы систему со стороны. Не хотите взяться?

Не, так не пойдёт. Я спрашиваю у тех, кто её там увидел и пришёл в восторг. Если никто ничего не увидел, то не о чем и говорить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 16:57 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 306
Валерий Лаптев писал(а):
adimetrius писал(а):
Валерий Лаптев писал(а):
Конструирование типа из частей - нечто похожее есть в Додиезе - там можно писать частичные классы.

А чем ABSTRACT RECORD не "частичное описание класса"?

Не. Абстрактные классы - это обычный ООП, который есть во всех языках.
Наследники реализуют и добавляют.
Частичный класс - это несколько другое.
Можно ДОБАВИТЬ в БАЗОВЫЙ класс чего не хватает. Совсем в другом месте программы.
При этом исходный базовый класс не требуется заново транслировать, а только добавления.


Хм, вот интересно:
Пусть есть тип А, и для него автор гарантировал множество инвариантов ИА.
Клиент К использует А, полагаясь, ессно, на ИА.
Потом некто, годы спустя, подмешивает в А что-то. Получается А'. Но выглядит как А. Вопрос: что будет с клиентом К, которому под видом А подсунули А'? Кто гарантирует, что ИА соблюдается для А'?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 17:47 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1102
Откуда: Киев
Валерий Лаптев писал(а):
Ну, "молча" предполагается, что эти "годы экспериментов" проделала Микрософт
Результаты исследований имеются в открытом доступе?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 17:54 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1102
Откуда: Киев
budden писал(а):
Не, так не пойдёт. Я спрашиваю у тех, кто её там увидел и пришёл в восторг. Если никто ничего не увидел, то не о чем и говорить.
Восторг, или, точней, живой отклик вызывает ряд высказываемых мыслей. Качество воплощения глобальных идей и оценку оврагов в конкретной системе вряд ли кто делал из здесь обитающих.
Валерий, может, Вам или Вашим студентам будет интересно поработать с Вир-1?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 19:47 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 155
Откуда: Russia
Comdiv писал(а):
Валерий Лаптев писал(а):
Ну, "молча" предполагается, что эти "годы экспериментов" проделала Микрософт
Результаты исследований имеются в открытом доступе?
А кто сказал, что они что-то исследовали? Partial types в C# - это заимствование из Модулы-3 ( естественно, со спецификой шарпа )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 19:54 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 436
budden писал(а):
В динамической среде не так-то легко определить структуру зависимостей (и даже само понятие о зависимости не вполне ясно), таковая структура может спокойно содержать циклы и проч.

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

Поэтому всё же осмелюсь снова спросить, в чём же инновация в ВИРе?

Ни общее описание системы, ни краткая инструкция не дают полного представления. В блоге автора также оказалось мало информации по самой сути.
В целом, природа "явной схемы программы" выглядит не статичной. Вот здесь шире представлен "дух" системы (существующего и планируемого концепта):
- Компонентный ассемблер для цифрового пространства. Часть 1
- Компонентный ассемблер. Часть 2. Дух языка
- Вир-2. Интерфейсы

Ранее автор делал акцент, прежде всего, на "программировании в большом" ("от распределенных приложений до распределенных много под-системных систем, работающих в неоднородной вычислительной среде"), или см. здесь. Сейчас, вроде бы, стоит задача охватить и "программирование в малом". Однако, публичные результаты пока наблюдаются лишь такие:
OOP or not OOP or better OOP
Цитата:
Цитата:
Множество интерфейсов для одной и той же структуры данных напоминают возможности языка модулей ML.
Рассматривали ли вы языки ML-семейства — SML, OCaml?

Мы рассматриваем широкий набор языков, в основном те, с которыми мы собираемся конкурировать: Java, Kotlin, C#, Go, Swift, Dart, Lua, JS. Смотрим и на ML’s, на Rust и на Jai. Но это не значит, что мы берем какой-то язык за основу.

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

И ещё до кучи насчёт языков: CLIP/CLOP vs pure OOP


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 20:00 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1102
Откуда: Киев
Sergej Durmanov писал(а):
Comdiv писал(а):
Валерий Лаптев писал(а):
Ну, "молча" предполагается, что эти "годы экспериментов" проделала Микрософт
Результаты исследований имеются в открытом доступе?
А кто сказал, что они что-то исследовали? Partial types в C# - это заимствование из Модулы-3 ( естественно, со спецификой шарпа )
Похоже, что Валерий Лаптев так считает, если я правильно его понял. Ну и заимствование откуда бы ни было не противоречит наличию своих исследований. Исследования из других источников тоже сгодятся.


Последний раз редактировалось Comdiv Четверг, 13 Февраль, 2020 20:02, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 20:02 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 436
Во время доклада на Дне Оберона были ремарки по поводу "огромного" размера пустой программы на Go. Также автор упоминал негативные ("прожорливые", хотя на фоне тех же Java c Net-ом ...) результаты от "компонентных" экспериментов на Delphi в 2000-х гг., предшествующих проекту ВИР.
В самом деле, в те времена для Delphi возникла библиотека KOL (Key Objects Library), которая продемонстрировала "аппетиты" типового ООП-подхода, показав на порядок меньше (плюс эффективнее использование памяти, да и скорость...). Стандартная VCL в Delphi имеет традиционный раздутый абстрактный и виртуальный слой. Компилятор и линковщик из-за механизмов наследования и, прежде всего, таблиц виртуальных методов не могут "выкидывать" неиспользуемую "виртуальщину". В KOL использовали старый борландовский тип "object" вместо "class" и "interface", имеющий компактнее формат (в сравнении с "interface" -- и меньшую стоимость виртуального вызова), был задействован крайне минималистический набор виртуальных методов. Чтобы не разбухало RTTI вынуждены были не плодить типы для реализации визуальных "control"-ов, был общий TControl с огромным набором методов для всех случаев -- последствия обхода особенностей системы сборки (или всей системы). Также оказалось, что на размер конечного образа влияет большое количество исходных файлов-модулей, в результате применялись огромные модули (но в малом количестве) с массой содержимого. Предусматривалась замена стандартных системных модулей (которые могут через секции инициализации/финализации задействовать много чего нужного, однако не во всех программах) и др. Была возможность не использовать механизм исключений или задействовать в ограниченной форме на основе объекта исключения единственного класса. Архитектура объектов предусматривала адекватное внедрение зависимостей. Например, некая "техническая" процедура обработки событий от ОС определенных типов попадает в конечный образ только в случаях, если для объекта будет задан соответствующий "пользовательский" обработчик события (зависимость явного использования "технической" процедуры задаётся лишь в единственном месте -- в процедуре установки обработчика события). И пр.

Ранее в теме была ссылка на JSC -- альтернативное новое поколение компонентной модели. Также информация без полного охвата, вроде бы, речь больше о программировании "в большом" (грубо, "фабрики типов"), не ясно насчёт программирования "в малом". Однако, докладчик говорит о переписывании или реализации системы "на Си с классами" (своё "наколенное" ООП), утверждает, что производительность и пр. существенно лучше, чем решение на основе Qt.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 20:07 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 436
Sergej Durmanov писал(а):
Если я правильно понимаю, это что-то вроде partial types из Модулы-3 и C# ( тоже позаимстовано из Модулы-3 ).
Когда объект разбивается на самодостаточные части ( интерфейс + реализация ) и при компиляции собирается в единый тип ( возмодна вариативность )

Скорее, usebox больше напоминает более гибкие "встраиваемые" или "расширяемые" модули (Module Embedding), когда-то предложенные для Оберонов. Встраивание (отношение contains-a) и импортирование (разделение модуля -- shares-a) -- разные отношения и могут быть одновременно между модулями.
С учётом замечания от Недори: "так как в современной разработке всегда используются системы управления кодом и версиями, технически мы готовы к переходу к защите кода через авторизацию" в том числе, вроде бы, можно для "расширенных" модулей разрешить доступ и к приватной части базового модуля (например, используя паскалевское/борландовское ключ. слово "inherited"). В результате такой механизм будет включать и возможности "дочерних" модулей из Ada. И, вроде бы, нет преград в механизме и для "родовых" модулей (с generic-параметрами).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Четверг, 13 Февраль, 2020 20:16 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1102
Откуда: Киев
PSV100 писал(а):
Имхо, "компонентный ассемблер" для программирования "в большом" ("сборочного") вряд ли будет приемлемым без адекватного "ассемблера" и для "синтезирующего" программирования.
Не стоит обесценивать это утверждение имхой. Без адекватного соответствия сборочного и синтерзирующего уровней невозможно эффективное создание эффективных же систем. Сгинете на согласовании и не сможете воспользоваться преимуществами друг друга.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Пятница, 14 Февраль, 2020 00:14 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 228
Comdiv писал(а):
PSV100 писал(а):
Имхо, "компонентный ассемблер" для программирования "в большом" ("сборочного") вряд ли будет приемлемым без адекватного "ассемблера" и для "синтезирующего" программирования.
Не стоит обесценивать это утверждение имхой. Без адекватного соответствия сборочного и синтерзирующего уровней невозможно эффективное создание эффективных же систем. Сгинете на согласовании и не сможете воспользоваться преимуществами друг друга.

не совсем понятны критерии эффективности?
Речь идет о больших или малых системах?
Например, сборочный уровень - язык метапрограммирования может быть "подобен" языку порождаемой программы, в т.ч. для более лёгкого вхождения - это тоже эффективно ...

типа https://compscicenter.ru/media/courses/2018-spring/spb-cpp-2/slides/cpp_2_lecture_240418.pdf

Как примеры метапрограммирования - https://habr.com/ru/post/137446/

- здесь каждая из техник по-своему эффективна.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2019
СообщениеДобавлено: Пятница, 14 Февраль, 2020 08:23 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3191
Откуда: Астрахань
adimetrius писал(а):
Хм, вот интересно:
Пусть есть тип А, и для него автор гарантировал множество инвариантов ИА.
Клиент К использует А, полагаясь, ессно, на ИА.
Потом некто, годы спустя, подмешивает в А что-то. Получается А'. Но выглядит как А. Вопрос: что будет с клиентом К, которому под видом А подсунули А'? Кто гарантирует, что ИА соблюдается для А'?

В том-то и дело, что для клиента К все останется по-прежнему.
У Недори это как-то гораздо более прозрачно сделано. И лично мне почему-то гораздо понятнее.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 253 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12, 13  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2020, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB