LINUX.ORG.RU

Что не так с сообщениями в ООП

 ,


1

1

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

В ООП объекты получают сообщения, это так же как и в RL. А разница в чем? В том что каждый объект имеет свой язык(!!!).

Свойства, методы, их имена, названия, это сообщения. Для этих имен должен быть общий словарь, так же как и у людей есть общий язык.

Некоторым аналогом этого является глобальное пространство имен, но некоторые проблемы реализации не позволяют это использовать полноценно. Поэтому де-факто концепция языка и обмена сообщениями не раелизуется в ООП и никто даже не думает обычно в этом смысле когда программирует

А что касается проблем, одна из них в том, что не реализовано обобщение(возможно отчасти это проблема раннего нединамического связывания). Например

Командир говорит: «возьмите в руки свое оружие»

Солдат Вася должен взять палицу, а солдат Петя копье, они оба должны понять выражение «взять свое оружие» и применить к собственной специфике.(это можно реализовать в рамках паттерна издатель-подписчик)



Последнее исправление: no2700 (всего исправлений: 3)
Ответ на: комментарий от no2700

Такое «понимание» идет не от того что система умная, а от того что каждая такая операция реализована отдельно.

Прям как в голове у человека. Мозг это по сути нейросеть с хардкодом инструкций. условный помощник «Василий» в умной колонке это тоже нейросеть с набором инструкций.

anonymous
()
Ответ на: комментарий от anonymous

Прям как в голове у человека.

Нет, в голове человека, и даже животного, действует не только этот принцип, но и логический аппарат.

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

Но это вообще не лучшая сторона человеческого мозга, это ведет к как раз к аутическим тенденциям

no2700
() автор топика

ого! anonimous.

Круг то нарисовал?

Тут кстати новый твой собрат по тупнякам @metaprog. Думаю то, что он делает прям твоя тема.

anonymous
()
Ответ на: комментарий от no2700

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

а зачем пытаться впихнуть понятие «сообщение» в какую-то строку букв/звуков/байтов с какими-то правилами какой-то грамматики?
мы ж в компьютере!
тут куча разных структур данных!
пусть сообщение будет словарём (в питоновском смысле), пиши атрибуты сообщения в полях, используй потенциально неограниченную вложенность чтобы подробно разложить смысл твоего сообщения принимающей стороне, а не загоняй всё сообщение в строку!
собственно, у тебя есть AST (только s - не «синтаксис» как обычно, а «семантика»), тебе нужно его передать, ну так не ограничивай себя в средствах!
забудь про прокрустово ложе «текст + грамматика» - оно для людей (примитивных созданий с линейным устройством речевого аппарата, которые могут передавать только сериализованные данные)

Egor_
()
Ответ на: комментарий от Egor_

забудь про прокрустово ложе «текст + грамматика» - оно для людей (примитивных созданий с линейным устройством речевого аппарата, которые могут передавать только сериализованные данные)

То есть несистематизированный текст круче систематизированного? Я пока не понял чем именно.

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

Это все попахивает схоластикой с обоснованием того что Святое Писание должно быть доступно только для жреца

no2700
() автор топика
Ответ на: комментарий от anonymous

Да ты гонишь. @metaprog это просто малограмотное школиё, которое думает что оно программист и занимается гомеопатией в сфере разработки. Анонiмус хоть что-то знает в отличие от. Мысль порой коряво доносит, это да.

anonymous
()
Ответ на: комментарий от no2700

человек привык работать только со строками символов/звуков, это связано с несовершенством его способа общения (речевого аппарата)
отсюда по совместимости возникла письменность, которая тоже работает только с 1-мерными структурами (последовательностью символов)
и программы мы тоже зачем-то пишем в виде текста
это атавизм, от которого нужно уходить
программы должны храниться как граф, визуализироваться/редактироваться как граф и выполняться как граф

Грамматика какая никакая в языках программирования есть, только она касается самих языковых выражений

грамматика в ЯП - это способ сериализации программы (дерева) в текст (строку символов)

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

Egor_
()
Ответ на: комментарий от wandrien

Поздравляю, вы изобрели полиморфизм

Там и паттерн адаптер виднеется.

deep-purple ★★★★★
()
Ответ на: комментарий от Egor_

человек привык работать только со строками символов/звуков, это связано с несовершенством его способа общения (речевого аппарата)

Вообще это довольно спорное утверждение. Человеческий мозг работает, скорей всего, со словами – законченными семантическими единицами, а строки и символы лишь кодируют слова. Это не трудно понять по тому, что слова могут кодироваться и не алфавитом, хотя это сейчас меньше бытует, все же достаточно встречается, а ранее было и так, что кодировка языка была вообще не фонетической.

предлагаю кодировать смысл более подходящими структурами данных, чем строка символов

Ну программы то Вам все равно символами писать, Вы что программировать рисунками собрались? А соответственно от грамматики Вам все равно не уйти, какими бы структурами вы не кодировали сообщения

no2700
() автор топика
Ответ на: комментарий от wandrien

Солдат Вася должен взять палицу, а солдат Петя копье, они оба должны понять выражение «взять свое оружие» и применить к собственной специфике.

В Qt эти классы Вася и Петя просто подписывались бы на сигналы «взять свое оружие» и полиморфизм не нужен. Хотя сигналы-слоты существуют не только в Qt, библиотек много для обычного C++.

bhfq ★★★★★
()
Ответ на: комментарий от Egor_

человек привык работать только со строками символов/звуков, это связано с несовершенством его способа общения (речевого аппарата) отсюда по совместимости возникла письменность, которая тоже работает только с 1-мерными структурами (последовательностью символов) и программы мы тоже зачем-то пишем в виде текста это атавизм, от которого нужно уходить программы должны храниться как граф, визуализироваться/редактироваться как граф и выполняться как граф

Сами себе противоречите. Именно в силу аппаратного ограничения человека, программы представлены как одномерные объекты. От этого никуда не деться.

Впрочем, и компьютер не далеко ушел. Он может только выполнять программу одномерно, как последовательность инструкций во времени. Квантовые компьютеры всё еще фантастика.

wandrien ★★
()
Ответ на: комментарий от bhfq

В Qt эти классы Вася и Петя просто подписывались бы на сигналы «взять свое оружие» и полиморфизм не нужен. Хотя сигналы-слоты существуют не только в Qt, библиотек много для обычного C++.

Возьмём язык аж с двумя видами статически типизированного ООП и сделаем из него питон.

wandrien ★★
()
Ответ на: комментарий от Egor_

Язык, какой бы он ни был, естественный или компьютерный, имеет символьную природу. А если есть символьная природа, то нужна и грамматическая структура, чтобы определять отношения между единицами кодирования и даже для того чтобы их просто парсить, различать, выделять. И не важно что Вы будете использовать в качестве этих символов, обычные ли строки или другие структуры. Это не освобождает от грамматики

no2700
() автор топика
Ответ на: комментарий от wandrien

Он может только выполнять программу одномерно, как последовательность инструкций во времени

Программа в обычном понимании и есть последовательность инструкций, ее нельзя никак иначе выполнять, это эквивалентно понятию алгоритм.

Понятие «писать программы» это больше базарное выражение, на самом деле, особенно в ООП программист реализует системы, а тут уже нет никакой «одномерности» и всего прочего.

no2700
() автор топика
Ответ на: комментарий от no2700

Понятие «писать программы» это больше базарное выражение, на самом деле, особенно в ООП программист реализует системы, а тут уже нет никакой «одномерности» и всего прочего.

В сферическом вакууме одномерности нет. В реальности, когда внезапно оказывается, что у клиента надо обработать 1_000_000 объектов, а программа работает за О-квадрат, вот тут-то про одномерность времени и кода вспоминают.

Мы ограничены теми физическими вычислителями, что у нас есть.

Теоретически любая криптография – фикция, так как элементарно решается методом сквозного перебора. А практически – нет.

wandrien ★★
()
Ответ на: комментарий от wandrien

Теоретически любая криптография – фикция, так как элементарно решается методом сквозного перебора. А практически – нет.

В каком смысле «решается»? Предположим Вы перебрали все варианты, а как вы узнаете какой из них является корректной расшифровкой?

no2700
() автор топика
Ответ на: комментарий от no2700

Я скорее имел в виду поиск приватного ключа по открытому.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

Ктстаи да. все упорограммы @metaprog должны храниться в картинках.

anonymous
()
Ответ на: комментарий от no2700

кодировка языка была вообще не фонетической.

вы про язык жестов и ужимок лица? )))
да, животные общаются именно так
но вряд ли это можно назвать полноценным языком, там набор передаваемых смыслов минимальный

у людей сперва возникла речь, и только потом рисунки и письменность

человек привык работать только со строками символов/звуков

Вообще это довольно спорное утверждение
Человеческий мозг работает, скорей всего, со словами – законченными семантическими единицами, а строки и символы лишь кодируют слова.

я не про человеческий мозг
я про обмен сообщениями между людьми
люди привыкли общаться через строки символов/звуков
возможности упаковать информацию в другую форму не было в течение миллионов лет

Ну программы то Вам все равно символами писать, Вы что программировать рисунками собрались?

программа - это граф
текст - явно не подходящая форма для визуализации графа
рисунок тоже не очень
а вот виртуальная модель, которую можно приблизить-удалить-повернуть-раздвинуть - в самый раз! ну, и средство ввода нужно более удобное, чем клава+мышь. какая-нибудь умная перчатка с чтением положения пальцев, наверное

я думаю, программы лет через 50 уже не будут писать символами на клавиатуре
и даже клавиатур не будет )))

А соответственно от грамматики Вам все равно не уйти, какими бы структурами вы не кодировали сообщения

лык да мочало, начинай сначала!
вот главная мысль, которую вам надо понять
читайте её пока окончательно не дойдёт:
грамматика - это средства сериализации дерева в строку
если нет необходимости переводить сложновложенную структуру в текст - значит не нужна и грамматика

Egor_
()
Ответ на: комментарий от Egor_

вы про язык жестов и ужимок лица?

Нет, я про системы письменности отличные от фонетических. В современных системах используется фонетическая запись(хотя это условно), то есть буквы более-менее дублируют звуки, существуюют другие виды кодирования, например силлабическая запись.

Причем фонетическая письменность представляется не прогрессом, а наоборот деградацией письменности.

сложновложенную структуру

Это ерунда. Грамматика кроме вложенности передает еще миллионы отношений

no2700
() автор топика
Ответ на: комментарий от wandrien

компьютер может только выполнять программу одномерно

вы путаете причину и следствие
компьютеры выполняют программу «одномерно», потому что люди пишут такие «одномерные» программы, и им нужен именно такой компьютер
ничто не мешает сделать компьютер, реализующий неодномерную логику, не привязанную к последовательному выполнению инструкций
просто вы для него программу не сможете написать )))

Именно в силу аппаратного ограничения человека, программы представлены как одномерные объекты

апаратные ограничения одномерности есть только у речевого/слухового аппарата
например, у зрительного аппарата таких ограничений нет
поскольку мы не диктуем программы голосом и не принимаем их на слух, то можем использовать другие (неодномерные) формы для представления программ

или вы хотели сказать, что у вас одномерное мышление? )))
ну тогда ой )))

Egor_
()
Ответ на: комментарий от Egor_

ничто не мешает сделать компьютер, реализующий неодномерную логику, не привязанную к последовательному выполнению инструкций просто вы для него программу не сможете написать )))

Который будет потреблять неодномерное электричество? %-)

wandrien ★★
()
Ответ на: комментарий от wandrien

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

Ваша «одномерность» это последовательность, в таком случае лучше этого слова и придерживаться.

no2700
() автор топика
Ответ на: комментарий от no2700

Я просто пытаюсь представить себе вторую ось, куда может расти этот воображаемый вычислитель, и то на то выходит, что электричество он будет потреблять квадратично от времени работы %)

wandrien ★★
()
Ответ на: комментарий от wandrien

не, ну нелинейные вычислители то есть, та же самая асинхронщина пример, как и матмодели соответствующие тоже есть.

no2700
() автор топика
Ответ на: комментарий от wandrien

Любая асинхронщина. Там нет детерменизма, причинно-следственные связи не очевидны при анализе.

no2700
() автор топика
Ответ на: комментарий от no2700

нужна и грамматическая структура, чтобы определять отношения между единицами кодирования

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

выбором более удачного языка можно добиться почти нулевой сложности «грамматики»: парсинг будет тривиален

Egor_
()
Ответ на: комментарий от no2700

Грамматика кроме вложенности передает еще миллионы отношений

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

Egor_
()
Ответ на: комментарий от menangen

не вода, а девелоперская гомеопатия.

anonymous
()

Живо себе представляю ПетяFactorySingleton.

Miguel ★★★★★
()
Ответ на: комментарий от menangen

Тред изначально про воду. Это ж местный сумасшедший, который единственный знает, как надо правильно делать ООП. Погоди, через пару страниц он популярно объяснит, почему Лисков - дура.

leave ★★★★★
()
Ответ на: комментарий от leave

Э-э-э? А как его раньше звали?

Update: А, анонимус. Понял.

Miguel ★★★★★
()
Последнее исправление: Miguel (всего исправлений: 1)

В принципе, некоторым образцом этой идеи служат изначальные лиспы с fexprs. Действительно, там на вход процедуры подавалась некая структура содержащая определенную грамматику, грамматику самого же лиспа.

anonymous
()
Ответ на: комментарий от anonymous

Поэтому можно сказать, что там был общий глобальный язык, который понимали все процедуры. Это нечто близкое во всяком случае.

anonymous
()

Формальное определение понятия «язык» в студию! Иначе то, что ты написал не имеет смысла.

seiken ★★★★★
()

как и в RL. А разница в чем? В том что каждый объект имеет свой язык(!!!).

Ну то есть ты хочешь что бы например кошка и утка общались на одном языке?

invy ★★★★★
()
Ответ на: комментарий от anonymous

На каком языке общаются человеки внутри вида?

На инглише.

Или на более универсальном языке жестов:

Директор мебельной фабрики поехал в командировку в Париж. Возвращается - масса
впечатлений. Рассказывает своим приятелям:
- О, такой город! Такие улицы! Такие магазины!
- Ну а женщины?
- О-о! Это что-то невероятное! Мечта! Главное - любого мужика понимают с
полуслова. Вот например: захожу я в маленький ресторанчик, сажусь за столик. Ко
мне подсаживается умопомрачительная красотка. Ну сразу сообразила, что я по
ихнему - ни слова. Рисует мне на салфетке рюмку. Я - наливаю ей шампанского.
Рисует сигарету. Я - даю закурить. Рисует две танцующие фигурки. Я - приглашаю
ее на танец.
- Ну а потом?
- Рисует кровать...
- А ты?
- Хмм... До сих пор не пойму - как она узнала, что я - директор мебельной
фабрики...
vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.