Алексей
О чём спор вообще?
Alexander
я спросил какую проблему должно решать наличие Free/FT для реализации STM
Alexander
причем предпложил несколько вариантов, для чего я вижу это может быть полезно
Alexander
то, как я интерпретировал ответы мне я говорить не будут, т.к. что подумал кролик никто не узнал
Alexander
сейчас спор идёт о том, дает ли Free магические свойства по разделению интерфейса от имплементации, если используется единственный интепретатор
Алексей
Нет, конечно
Alexander
Я не понимаю, почему не дает
Alexander
Что здесь есть "магическость"?
Alexander
"то, что я не могу объяснить, но оно должно быть"
Alexander
Как же так, если 2 интерпретатора и больше - такое свойство есть, а если 1 - нет?
Алексей
Я так думаю, что если _можно_ написать несколь реализаций интерфеса, то разделение есть
Alexander
моё утверждение - Free дает возможность делать разные интерпретаторы, по сравнению,со, скажем, модулями
Alexander
это его основное свойство
Alexander
Я и не отрицал этого свойства в такой формулировке
Alexander
новое по сравнению с module
Alexander
оно не дает большего отделения, если у тебя 1 интепретатор, то возникает вопрос, а зачем мне Free
Alexander
и что я должен продемонтрировать если напишу на FT
Alexander
Alexander
вот опять
Alexander
Зачем закрывают интерфейсом ровно 1 имплеметацию в обычных ООП-языках?
Alexander
Даже зная, что никогда второй имплементации не понадобится
Alexander
Правильно, чтобы уменьшать сложность путем разделения ответственностей
Алексей
Ну можно, например, скрыть реализацию, не покзывая её з модулдя
Алексей
С тем же эффектом
Alexander
3 варинта:
1. понадобится
2. для множественного наследованя
3. карго-культ
Alexander
выбирай, тот что удобнее
Alexander
НЕТ!
Alexander
просто использование класса иил модуля дает тот же эффект
Alexander
причем даже не мл-евского модуля
Alexander
Big Bux Chungus
Alexander
класса в смысле class
Alexander
Alexander
картинка_с_соломенным_самолётом.jpg
Alexander
я устал, я мухожук
Alexander
Это типичная задача, которая решается ОО-интерфейсами. И не потому, что "так принято в архитектурках", а потому что клиенту, где мой интерфейс используется, не полагается знать о рантайм-данных, которые я под него подсунул
Alexander
если что-то новое и толковое будет - пните пожалуйста
Alexander
я устал, я мухожук
Ну вот можно что-нибудь из книжек про дизайн и архитектуру в ООП почитать
A64m
там шизофазия
Alexander
Big Bux Chungus
кана
Alexander
кана
если интерпретатор один, то вроде нет разницы
Alexander
у FT и Free изоморфны
Alexander
можно преобразовать одно в другое
Alexander
Например, на каждый вызов операции кидать инфу в лог
Alexander
ЭТО НАЗЫВАЕТСЯ ПОМЕНЯТЬ ИНТЕРПРЕТАТОР
Alexander
/me бьется головой о стол
Alexander
кана
Alexander
Хочу - в том же интерпретаторе делаю, если так задача решается без проблем
кана
то есть старый стм-интерпретатор меняется новым, который еще логает что-то
Alexander
как можно пытаться учить других и указывать им на книжки не понимая базовых вещей
Alexander
У вас какой-то формалистический подход
Alexander
тем не менее мы тут все друг друга поняли
Alexander
и вроде on the same page, как говорится
Alexander
хотя вроде с разными background-ами и не в одном месте работаем
Alexander
Держать его мертвым грузом в проекте?
Alexander
Alexander
нет
кана
Alexander
кана
все, я понял
кана
проблема: есть либа stm, есть код, который ее использует, нужно не меняя этот код добавить логирование
Alexander
Продолжай :)
Alexander
Да, такой кейс например
Alexander
Или метрики снимать.
Alexander
Или еще что.
кана
решение @graninas: сделать интерфейс к либе, который будет будет реализовываться либой, и использовать ее
кана
(очень хороший кейс для окамл-модулей имхо)