[00:22:30] <_valexey__> ну да
[00:22:43] <_valexey__> там же постоянно трапы валятся
[00:22:48] <_valexey__> вот просто регулярно, в ББ
[00:22:54] <_valexey__> и не только в ББ
[00:23:30] <_valexey__> нормальной горячей замены кода в ББ и Обероне нет. там есть только некие зачатки которые теоретически могли бы позволить это реализовать
[00:24:06] <_valexey__> и после того как реализуешь, получишь нечто что будет лишь немногим хуже того, что в erlang'e искаропки идет
[00:25:30] <_valexey__> но при этом это один фиг для серьезного продакшена не будет годиться. для серьезного продакшена это то, что в ерланге сделано либой через систему супервайзеров. erlang/OTP
[00:25:45] <_valexey__> без этого это всё игрушки
[00:28:33] <_valexey__> но оберонкоровцы это не признают никогда. у них горячая замена кода в ББ это священная корова. а то, что она регулярно обсирается и обсирает все вокруг, про это говорить не принято.
[08:06:06] <Kemet> все ж таки странные решения, вернее не завершенные
Base* = OBJECT
VAR value*: INTEGER;
END Base;

Ext*= OBJECT(Base)
VAR value-: REAL;
END Ext;

в Ext переопределено поле value, поле из предка теперь скрыто, но как бля к нему получить доступ то - приведение типа ext(Base) низя.
[09:04:02] <geniepro> а зачем пытаться получить доступ к полю, которое было переопределено? теперь вместо него другой вариант этого поля, базовый вариант не доступен же
[11:15:30] <Kemet> geniepro, Ну вот надо, в конкреьном случае в базовом типе было поле с доступом только для чтения, в наследнике его перекрыли таким же полем но без спецификаторов доступа непонятно зачем, но кот в базовгм типе таки испольщует свое поле и нужно получить значение этого поля в производном типе, но без геттера в базовом типе это сделать невозможно, а изменять базовый тип низя, такая вот дурния
[11:17:47] <NEW> а в наследнике обязательно использовать именно это имя?
[11:17:50] <_valexey_> Отсюда вывод - смешивание ооп с recordами - зло
[11:18:06] <NEW> неправильный вывод
[11:18:38] <NEW> реализация ООП - это реализация ООП. Форма значения не имеет.
[11:18:57] <_valexey_> Верный. Ооп основанный не на структурах и записях этой проблемы не имеет
[11:20:05] <NEW> Реализация не имеет этой проблемы. А если разработчик захочет, то эта проблема будет.
[11:20:37] <_valexey_> Убогая и неполная реализация
[11:20:41] <_valexey_> Калечная
[11:20:59] <NEW> и для записей тоже можно сделать так, чтобы и к перекрытому полю был доступ
[11:22:08] <NEW> в смысле убогая и неполная?
[11:22:34] <NEW> та, которая не на структурах и записях?
[11:24:07] <NEW> _valexey_> Верный. Ооп основанный не на структурах и записях этой проблемы не имеет
NEW> _Реализация_ не имеет этой проблемы. А если разработчик захочет, то эта проблема будет.
[11:52:42] <geniepro> Kemet> geniepro, Ну вот надо, в конкреьном случае в базовом типе было поле с доступом только для чтения, в наследнике его перекрыли таким же полем но без спецификаторов доступа непонятно зачем, но кот в базовгм типе таки испольщует свое поле и нужно получить значение этого поля в производном типе, но без геттера в базовом типе это сделать невозможно, а изменять базовый тип низя, такая вот дурния

неправильная архитектура значит
[11:53:49] <geniepro> _valexey_> Верный. Ооп основанный не на структурах и записях этой проблемы не имеет

ООП без иерархий типов, что ли? это и не ООП на самом деле. Так было в Соллтоке когда-то, но они вскоре добавили иерархии классов
[11:55:34] <geniepro> в более сложных ООЯ есть возможности квалификации имён полей базовых классов, типа в эйфеле
[11:56:58] <Kemet> NEW, Ну это не я использовал, я бы так не делал
[14:31:58] <_valexey_> geniepro: без полей же.
[14:32:14] <_valexey_> Иерархиям это не мешает.
[14:34:03] <geniepro> без полей -- это как?
[14:37:04] <_valexey_> А зачем они?
[14:37:58] <_valexey_> Делать переменную объектом - глупо
[14:38:22] <geniepro> о_О а что есть объект?
[14:38:35] <geniepro> и при чём здесь переменная?
[14:38:51] <geniepro> речть-то шла о внутренней структуре объекта
[14:39:51] <_valexey_> Ее не должно быть
[14:46:00] <geniepro> то есть объект должен быть сферическим конём в вакууме?
[14:47:26] <geniepro> думаю, идеологи ООП не согласятся с твоей точкой зрения, что у объекта не должно быть внутренней структуры
[14:48:01] <_valexey_> Внутренняя структура это детали реализвции
[14:48:40] <_valexey_> Это не должно заботить никого кроме того кто этот конкретный класс реализует.
[15:07:11] <geniepro> https://www.youtube.com/watch?v=TjSnFPKAEA4 прикольная анимеха выйдет в 18 году, что-то про ктулху там будет, 6 эпизодов по 15 минут
[17:21:43] <Kemet> у объекта должны быть инварианты - непротиворечивые состояния, а как это реализуется совсем не важно, поля это частный случай, но достаточно простой и понятный
[23:38:48] <_valexey__> а вот строгая статическая типизация для питона: http://blog.zulip.org/2016/10/13/static-types-in-python-oh-mypy/