Здравствуйте, Ikemefula, Вы писали:
I>>>У Алана Кея, в той части где он поясняет, что же такое messaging. L>>Прочтите эту часть внимательнее: он поясняет, не что такое messaging, а как взаимодействуют объекты.
I>Какую эту ? Я тебя только что попросил выделить и ты вместо "этой части" про взаимодействие привел высказывание, что же ООП значит для Алана Кея лично Потому мне совсем не ясно, какое именно высказываение Кея ты иммешь ввиду.
Я имею в виду то высказывание, кусок разговора о котором я оставил отквоченым в своем посте. Да, повторю совет про читать внимательнее.
I>>>Это ж определение ООП, а не messaging и то не совсем уж определение, скорее просто мнение
L>>Это определение через базовые понятия.
I>Это не определение, т.к. "to me" — стало быть, всего лишь мнение.
Нет, это определение OOP мо мнению Кея.
I>>>Да как хочешь назови, ничего не изменится.
L>>Конечно не изменится
I>Ну раз ты согласен, на том можно и закончить.
Ты опять недостаточно вчитался в ответ:
Конечно не изменится ибо мое сообщение до получателя никак не доходит.
Здравствуйте, samius, Вы писали:
I>>После фразы "Легко, но ради того что бы тебе что-то вталдычить я его накидывать не собираюсь." я уже не ждал никакого конструктива от тебя. S>Персонально у тебя не было повода ждать конструктива от меня и до этой фразы.
Не льсти себе, персонально для тебя у меня нет никаких приёмов Потому я жду ровно столько же как и от любого другого. Более того, скажу страшное, я даже не всегда замечаю кому именно пишу ответ В данном топике я например не сразу заметил что разговариваю с Lloyd
>Можешь рассчитывать на подобное и впредь, пока у меня нет ни повода, ни желания отвечать тебе конструктивом.
Я ж говорю — ты слишком хорошо себя знаешь и я тут точно ни при чем
Здравствуйте, Ikemefula, Вы писали:
I>Не льсти себе, персонально для тебя у меня нет никаких приёмов Потому я жду ровно столько же как и от любого другого. Более того, скажу страшное, я даже не всегда замечаю кому именно пишу ответ В данном топике я например не сразу заметил что разговариваю с Lloyd
Что, Павел, в лишний раз подтверждает факт, что вы не читаете не только пост, на который отвечаете, но и даже то, что вы сами пишете.
Иначе как понять, что вы не заметили "Здравствуйте, Lloyd, Вы писали:" в каждом своем ответе?
Здравствуйте, Lloyd, Вы писали:
I>>Какую эту ? Я тебя только что попросил выделить и ты вместо "этой части" про взаимодействие привел высказывание, что же ООП значит для Алана Кея лично Потому мне совсем не ясно, какое именно высказываение Кея ты иммешь ввиду.
L>Я имею в виду то высказывание, кусок разговора о котором я оставил отквоченым в своем посте. Да, повторю совет про читать внимательнее.
Смотри сам, что было:
I>>"I thought of objects being like biological cells and/or individual
I>>computers on a network, only able to communicate with messages "
I>>Где здесь "более базовое понятие ?"
L>Ты не понимаешь что означает "более базовое"?
Я тебя спрашиваю, где ты углядел определение через родовые, т.е. базовые понятия во фразе "я думал об объектах как о..."
Просто выдели нужные слова и этого будет достаточно.
И совершенно не ясно, как ты перепрыгнул на высказывание про ООП, когда речь явно про то, что же такое messaging
L>Ты опять недостаточно вчитался в ответ: L>
L>Конечно не изменится ибо мое сообщение до получателя никак не доходит.
L>Суть я выделил, раз вы с первого раза не уловили.
Ты мог бы и не стараться, я скипнул все лишнее, ровно так же, как и ты перед этим — просто что бы показать тебе твой же собственный подход. Ты, по моему, слишком часто злоупотребляешь тем, что удаляешь лишний текст да еще стараешься обвинять меня в том, что я чего то искажаю.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, Ikemefula, Вы писали:
I>>Не льсти себе, персонально для тебя у меня нет никаких приёмов Потому я жду ровно столько же как и от любого другого. Более того, скажу страшное, я даже не всегда замечаю кому именно пишу ответ В данном топике я например не сразу заметил что разговариваю с Lloyd
L>Что, Павел, в лишний раз подтверждает факт, что вы не читаете не только пост, на который отвечаете, но и даже то, что вы сами пишете. L>Иначе как понять, что вы не заметили "Здравствуйте, Lloyd, Вы писали:" в каждом своем ответе?
Очень просто.
Во первых я вообще не смотрю на первые строчки как раз потому что там "Здравствуйте, xxx, Вы писали" и бывает таких строчек не одна а штук пять. И по моему эта как раз та ненужная фича которая только загромождает экран.
Во вторых меня интересует точка зрения, а не её автор.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, gandjustas, Вы писали:
F>>>Я думал, что если нет состояния, то ООП тоже нет. G>>Неправильно думал ООП — про поведение, а не про состояние.
I>А как без состояния реализовать поведение которое зависит от предыстории сообщений ?
А почему без состояния?
Ты видимо не так понял фразу
ООП — про поведение, а не про состояние
как то что в ООП нет состояния, но это неверно.
Принципы которыми руководствуется ООП (инкапсуляция, полиморфизм) надо применять для поведения, а не для состояния.
Например наследование — не средство добавления полей в класс, а средство специализации поведения класса.
Здравствуйте, Ikemefula, Вы писали:
I>>>Какую эту ? Я тебя только что попросил выделить и ты вместо "этой части" про взаимодействие привел высказывание, что же ООП значит для Алана Кея лично Потому мне совсем не ясно, какое именно высказываение Кея ты иммешь ввиду.
L>>Я имею в виду то высказывание, кусок разговора о котором я оставил отквоченым в своем посте. Да, повторю совет про читать внимательнее.
I>Смотри сам, что было: I>
I>>>"I thought of objects being like biological cells and/or individual
I>>>computers on a network, only able to communicate with messages "
I>>>Где здесь "более базовое понятие ?"
L>>Ты не понимаешь что означает "более базовое"?
I>Я тебя спрашиваю, где ты углядел определение через родовые, т.е. базовые понятия во фразе "я думал об объектах как о..."
I>Просто выдели нужные слова и этого будет достаточно.
I>И совершенно не ясно, как ты перепрыгнул на высказывание про ООП, когда речь явно про то, что же такое messaging
Нет, Павел, вы опять не читаете. В процитрованном вами тексте речь не о messaging, а о способе взаимодействия объектов.
Ровно та же самая ошибка.
L>>Ты опять недостаточно вчитался в ответ: L>>
L>>Конечно не изменится ибо мое сообщение до получателя никак не доходит.
L>>Суть я выделил, раз вы с первого раза не уловили.
I>Ты мог бы и не стараться, я скипнул все лишнее, ровно так же, как и ты перед этим — просто что бы показать тебе твой же собственный подход. I>Ты, по моему, слишком часто злоупотребляешь тем, что удаляешь лишний текст да еще стараешься обвинять меня в том, что я чего то искажаю.
Павел, ну это, право, смешно слышать от вас про "удаляешь лишний текст".
Вас уже такое кол-во раз посадили в лужу, но вы упорно в своих ответах просто скипаете этот факт и переходите к другой более удобной теме. За примером ходить далеко не надо: смотрите 52-й пост, когда вы в обсуждение о том, что такое messaging элегантно вплели обсуждение identity.
Здравствуйте, gandjustas, Вы писали:
F>>>>Я думал, что если нет состояния, то ООП тоже нет. G>>>Неправильно думал ООП — про поведение, а не про состояние.
I>>А как без состояния реализовать поведение которое зависит от предыстории сообщений ?
G>А почему без состояния?
Так ведь исходная посылка у Flem1234 — "если нет состояния, то ООП тоже нет"
G>Ты видимо не так понял фразу
G>
G>ООП — про поведение, а не про состояние
G>как то что в ООП нет состояния, но это неверно.
Ну это Синклер утрировал. Идея в том, что поведение это основная цель и об этом же говорит и Алан Кей. А состояние это уже дело десятое.
А сейчас мы говорим о том, что сказал Flem1234 — "если нет состояния, то ООП тоже нет"
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, gandjustas, Вы писали:
F>>>>>Я думал, что если нет состояния, то ООП тоже нет. G>>>>Неправильно думал ООП — про поведение, а не про состояние.
I>>>А как без состояния реализовать поведение которое зависит от предыстории сообщений ?
G>>А почему без состояния?
I>Так ведь исходная посылка у Flem1234 — "если нет состояния, то ООП тоже нет"
Она неверна. ООП может быть как с состоянием, так и без оного. Посмотри паттерны проектирования, добрая половина вообще никак с состоянием не связаны.
Здравствуйте, gandjustas, Вы писали:
I>>Так ведь исходная посылка у Flem1234 — "если нет состояния, то ООП тоже нет"
G>Она неверна. ООП может быть как с состоянием, так и без оного. Посмотри паттерны проектирования, добрая половина вообще никак с состоянием не связаны.
Здравствуйте, Lloyd, Вы писали:
I>>Смотри сам, что было: I>>
I>>>>"I thought of objects being like biological cells and/or individual
I>>>>computers on a network, only able to communicate with messages "
I>>>>Где здесь "более базовое понятие ?"
L>>>Ты не понимаешь что означает "более базовое"?
I>>Я тебя спрашиваю, где ты углядел определение через родовые, т.е. базовые понятия во фразе "я думал об объектах как о..."
I>>Просто выдели нужные слова и этого будет достаточно.
I>>И совершенно не ясно, как ты перепрыгнул на высказывание про ООП, когда речь явно про то, что же такое messaging
L>Нет, Павел, вы опять не читаете.
Я нахожу такие аргументы крайне скучными и абсолютно бесполезными "у вас ошибка", "вы не так прочитали" и тд. Ты можешь не стараться, такое мнение очень легко симулировать
L>Ровно та же самая ошибка.
Это и есть messaging Еще раз — у Алана Кея messaging это не совсем тот messaging, что в сетях передачи данных. Слово Messaging он использует для обращения к одному из принципов ООП, их несколько, messaging во всех источниках это второй принцип, например вот такая формулировка:
"Communication is performed by objects communicating with each other, requesting that objects perform actions. Objects communicate by sending and receiving messages. A message is a request for action, bundled with whatever objects may be necessary to complete the task. "
I>>Ты мог бы и не стараться, я скипнул все лишнее, ровно так же, как и ты перед этим — просто что бы показать тебе твой же собственный подход. I>>Ты, по моему, слишком часто злоупотребляешь тем, что удаляешь лишний текст да еще стараешься обвинять меня в том, что я чего то искажаю.
L>Павел, ну это, право, смешно слышать от вас про "удаляешь лишний текст". L>Вас уже такое кол-во раз посадили в лужу, но вы упорно в своих ответах просто скипаете этот факт и переходите к другой более удобной теме.
Я то продолжаю ровно ту же тему — messaging.
>За примером ходить далеко не надо: смотрите 52-й пост, когда вы в обсуждение о том, что такое messaging элегантно вплели обсуждение identity.
смотрим 52й пост, опаньки, в этой ветке их два и оба принадлежат некому Lloyd. Что ты там говорил про умение читать ?
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, gandjustas, Вы писали:
I>>>Так ведь исходная посылка у Flem1234 — "если нет состояния, то ООП тоже нет"
G>>Она неверна. ООП может быть как с состоянием, так и без оного. Посмотри паттерны проектирования, добрая половина вообще никак с состоянием не связаны.
L>А identity совсем без состояния реализуема?
Здравствуйте, Ikemefula, Вы писали:
L>>Нет, Павел, вы опять не читаете.
I>Я нахожу такие аргументы крайне скучными и абсолютно бесполезными "у вас ошибка", "вы не так прочитали" и тд. Ты можешь не стараться, такое мнение очень легко симулировать
Зечем мне симулировать мое же мнение?
L>>Ровно та же самая ошибка.
I>Это и есть messaging
Что означет эта фраза?
I>Еще раз — у Алана Кея messaging это не совсем тот messaging, что в сетях передачи данных. Слово Messaging он использует для обращения к одному из принципов ООП, их несколько, messaging во всех источниках это второй принцип, например вот такая формулировка: I>"Communication is performed by objects communicating with each other, requesting that objects perform actions. Objects communicate by sending and receiving messages. A message is a request for action, bundled with whatever objects may be necessary to complete the task. "
Вы зачем это пишите-то?
Да, он использует понятие messaging при описании способа взаимодействия объектов, но это не делает messaging применимым только к этой задаче.
Понятия messaging шире и потому ваша фраза про то, что messaging вклюяает identity — не корректна, взимодействие объектов — включает identity (нужен адресат), но не messaging-же [включает identity].
I>>>Ты мог бы и не стараться, я скипнул все лишнее, ровно так же, как и ты перед этим — просто что бы показать тебе твой же собственный подход. I>>>Ты, по моему, слишком часто злоупотребляешь тем, что удаляешь лишний текст да еще стараешься обвинять меня в том, что я чего то искажаю.
L>>Павел, ну это, право, смешно слышать от вас про "удаляешь лишний текст". L>Вас уже такое кол-во раз посадили в лужу, но вы упорно в своих ответах просто скипаете этот факт и переходите к другой более удобной теме.
I>Я то продолжаю ровно ту же тему — messaging.
Нет, Павел, вы уходите в лес да по дрова, т.к. messaging не имеет никакого отношения к identity, вам даже примеры привели с широковещательным сообщением и mq.
>>За примером ходить далеко не надо: смотрите 52-й пост, когда вы в обсуждение о том, что такое messaging элегантно вплели обсуждение identity.
I>смотрим 52й пост, опаньки, в этой ветке их два и оба принадлежат некому Lloyd. Что ты там говорил про умение читать ?
Спасибо, что поправили, действительно 51-й пост. Иногда вы-таки читаете, признаю.
Здравствуйте, gandjustas, Вы писали:
G>>>Она неверна. ООП может быть как с состоянием, так и без оного. Посмотри паттерны проектирования, добрая половина вообще никак с состоянием не связаны.
L>>А identity совсем без состояния реализуема?
G>Да, а почему нет?
Разве 2 объекта с одинаковым контрактом и без состояния можно как-то отличить?
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, gandjustas, Вы писали:
G>>>>Она неверна. ООП может быть как с состоянием, так и без оного. Посмотри паттерны проектирования, добрая половина вообще никак с состоянием не связаны.
L>>>А identity совсем без состояния реализуема?
G>>Да, а почему нет?
L>Разве 2 объекта с одинаковым контрактом и без состояния можно как-то отличить?
Легко:
class A
{
}
//...var a = new A();
var b = new A();
var c = a;
a==b //false
a==c //true
В этом и заключается свойство identity. При этом если a == b, то a.Equals(b) == true.
Если взять SOA и принять что identity обеспечивается адресом endpoint, а эквивалентность — поведением в зависимости от состояния, то легко сделать так чтобы a == b, но при этом a.Equals(b) = false
Здравствуйте, gandjustas, Вы писали:
G>>>>>Она неверна. ООП может быть как с состоянием, так и без оного. Посмотри паттерны проектирования, добрая половина вообще никак с состоянием не связаны.
L>>>>А identity совсем без состояния реализуема?
G>>>Да, а почему нет?
L>>Разве 2 объекта с одинаковым контрактом и без состояния можно как-то отличить?
G>В этом и заключается свойство identity. При этом если a == b, то a.Equals(b) == true.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, gandjustas, Вы писали:
I>>>Так ведь исходная посылка у Flem1234 — "если нет состояния, то ООП тоже нет"
G>>Она неверна. ООП может быть как с состоянием, так и без оного. Посмотри паттерны проектирования, добрая половина вообще никак с состоянием не связаны.
L>А identity совсем без состояния реализуема?
Если к отсутствию состояния добавить требование детерминированности, то у однотипных объектов поведение будет неотличимо, т.е. их идентичность не может быть опровергнута. А раз так — нет оснований их считать неидентичными. Это абсолютная аналогия объектам, расшаривающим общее состояние. Разница может быть выявлена лишь с помощью сравнения ссылок, что нельзя отнести к поведению объекта.
детерминированность достаточное требование, но не необходимое. Объект-обертку(без состояния) над статическим методом Console.ReadLine() можно считать идентичным другому такому же объекту.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, gandjustas, Вы писали:
G>>>>>>Она неверна. ООП может быть как с состоянием, так и без оного. Посмотри паттерны проектирования, добрая половина вообще никак с состоянием не связаны.
L>>>>>А identity совсем без состояния реализуема?
G>>>>Да, а почему нет?
L>>>Разве 2 объекта с одинаковым контрактом и без состояния можно как-то отличить?
G>>В этом и заключается свойство identity. При этом если a == b, то a.Equals(b) == true.
L>Это не объекты без состояния, у них адрес есть.
Это не относится к их состоянию и типично не влияет на поведение с его историей, кроме тех случаев, когда поведение объекта завязано на физический адрес.
Вообще нам identity нужно не для того, что бы отличать объекты, а для того, что бы не путать их. Т.е. если я начал работу с одним объектом и его поведение зависит от истории ранее посланных сообщений, я должен быть уверен в том, что именно этот объект обработает мое сообщение, а не какой-то другой, находящийся в неожиданном для меня состоянии. Если же поведение объектов неотличимо, то какая разница?
new Foo().Bar() сделает то же самое что и cachedFoo.Bar()
Конечно, до тех пор, пока мы не строим логику на сравнении ссылок.
Здравствуйте, Lloyd, Вы писали:
I>>Я нахожу такие аргументы крайне скучными и абсолютно бесполезными "у вас ошибка", "вы не так прочитали" и тд. Ты можешь не стараться, такое мнение очень легко симулировать L>Зечем мне симулировать мое же мнение?
Я разве говорю что тебе надо симулировать ? Представь, я сам могу представить твои ответы, смотри:
"Ошибка", "Опять нет", "Ровно та же самая ошибка."
Информативность таких ответов примерно одинаковая и стремится к нулю слева.
L>>>Ровно та же самая ошибка. I>>Это и есть messaging L>Что означет эта фраза?
Это я случайно скипнул предложение. Вот цепочка
I>И совершенно не ясно, как ты перепрыгнул на высказывание про ООП, когда речь явно про то, что же такое messaging
Нет, Павел, вы опять не читаете. В процитрованном вами тексте речь не о messaging, а о способе взаимодействия объектов.
Ровно та же самая ошибка.
"Это и есть messaging "
Имеется ввиду выделеный текст, т.е. способ взаимодействия объектов == messaging. Если читать Кея, то он говорит что "messaging" это центральная часть Smalltalk, а messages в Smalltalk как то не допускают вольной трактовки.
I>>"Communication is performed by objects communicating with each other, requesting that objects perform actions. Objects communicate by sending and receiving messages. A message is a request for action, bundled with whatever objects may be necessary to complete the task. "
L>Да, он использует понятие messaging при описании способа взаимодействия объектов, но это не делает messaging применимым только к этой задаче.
Разумеется не делает. Он ведь указывает: "The big idea is "messaging" — that is what the kernal of Smalltalk/Squeak
is all about". Т.е. messaging в его трактовке это чуток не тот messaging что в сетях передачи данных и я уже говорил и повторяю снова.
L>Понятия messaging шире и потому ваша фраза про то, что messaging вклюяает identity — не корректна, взимодействие объектов — включает identity (нужен адресат), но не messaging-же [включает identity].
Я говорю про то, что Алан Кей называет messaging, а не про messaging вообще. Т.е. имеет место обычная практика — в зависимости от контекста термины часто меняют значение и это нормально.
I>>Я то продолжаю ровно ту же тему — messaging.
L>Нет, Павел, вы уходите в лес да по дрова, т.к. messaging не имеет никакого отношения к identity, вам даже примеры привели с широковещательным сообщением и mq.
Скажи пожалуйста, а где MQ и широковещательные сообщения в ядре Смаллтолка ?
"The big idea is "messaging" — that is what the kernal of Smalltalk/Squeak is all about ..."
При этом MQ и широковещательные сообщения можно свести к кеевскому "messaging", если под получателем понимать не конечного, а любого, в т.ч. промежуточно, т.е. транзитного, а сеть как объект. То есть, сеть получает сообщение А "передать сообщение Б всем подключенным участникам"
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Lloyd, Вы писали:
L>>Разве 2 объекта с одинаковым контрактом и без состояния можно как-то отличить?
G>Легко:
G>
G>class A
G>{
G>}
G>//...
G>var a = new A();
G>var b = new A();
G>var c = a;
G>a==b //false
G>a==c //true
G>
G>В этом и заключается свойство identity. При этом если a == b, то a.Equals(b) == true.
Тут мы получили равенство ссылок, а не отличие в поведении объектов.
Отличие в поведении мы получим так: