LINUX.ORG.RU

Вопрос по ООП в CL

 , ,


0

3

Много раз слышал, что в CL очень мощная модель ООП. И вот, когда наконец дошли руки почитать об этом подробней, с удивением обнаружил, что в CL НЕ все есть объект. Тогда непонятно, что же в ней сильного? В смолтоке, джаваскрипте, ио, селфе и во многих других языках все есть объект. А в CL, получается, урезанная модель ООП, близкая к плюсовой? А как с этим, кстати, обстоят дела в схемах?

Ответ на: комментарий от linux-101

Никто не мешает, не выходя из плюсов, написать точно такие же типы как в лиспе, используя последние биты под тайптег. Как мы знаем, от этого получатся тормоза при сдвигах. Будет ли какой от этого профит — не знаю; но так или иначе это сделать можно.

Да на С++ можно хоть целый лисп написать, это вообще не имеет никакого отношения к теме.

А основная тема была в том, что некий кукарекушка кукарекал о том, что в CL, якобы Ъ-ооп. Именно с этим утверждением его и слили в гавно.

В CL вполне себе годный ООП. Нужно просто понимать, что там сосуществуют по сути две объектные системы: базовая, благодаря которой все есть объект, и пользовательская CLOS, благодаря которой есть тот самый годный ООП. Ну а кукарекушка слился на провокационном вопросе, а не на собственно своем утверждении.

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

Кукаретик тут ты. Ты вякнул о том, что наследование — это плохо, а объяснить не можешь. Если бы ты знал о чем кукарекаешь, ты мог бы объяснить это совами. А я, да, смоллток не знаю, но зато знаю, что он спроектирован так, что там все является объектом. Если бы смолтокеры считали это чем-то плохим, они бы сделели как в плюсах. Так что отдыхай.

linux-101
() автор топика
Ответ на: комментарий от staseg

Никто не мешает, не выходя из плюсов, написать точно такие же типы как в лиспе, используя последние биты под тайптег. Как мы знаем, от этого получатся тормоза при сдвигах. Будет ли какой от этого профит — не знаю; но так или иначе это сделать можно.

Да на С++ можно хоть целый лисп написать, это вообще не имеет никакого отношения к теме.

На CLOSе кстати тоже можно написать свои консы, сар, сдр и т.д. и уже с ними извращаться как душе угодно с наследованием и пр.

staseg ★★★★★
()
Ответ на: комментарий от linux-101

Ты вякнул о том, что наследование — это плохо

Ссылку на комментарий, в котором я это утверждал.

А я, да, смоллток не знаю

Вот это сюрприз!

но зато знаю, что он спроектирован так, что там все является объектом.

Все-все? Ты не знаешь язык, как ты можешь утверждать что-то о его архитектуре?

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

null - это отдельный тип с единственным значением.

Я не говорю, что это невозможно, я спрашиваю: зачем? Null - это особый объект, его наличие продиктовано реализацией, это вопрос реализаци, а мы говорили о построение абстракций.

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

Для меня совершенно очевидно и то, что ты также не знаешь JS. И то, что программировать ты не умеешь, но пытаешься научиться по ЛОРовским лиспосрачам. Желаю успехов!

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

этому в универах уже учат.

Ну раз в универах учат, тогда отказываюсь от использования наследования!

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

Я тебе уже ответил зачем.

Я не понял не только ответа, я не понял даже того, К ЧЕМУ это было сказано. Ну можено иметь класс 1 с еинственным значением — 1, и что?

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

Ты сам придумал, что я говорю о наследовании. А часть про Википедию адресована непосредственно тебе. Вперед!

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

Ты мне предлагаешь прочитать всю википедию?

Твое сообщение было ответом на сообщение вурдалака о том, что real можно определить отнаследовавшись от number. Тво йответ был, что это, якобы, плохая практика. Пруфа мы так и не дождались.

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

Тво йответ был, что это, якобы, плохая практика.

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

Пруфа мы так и не дождались.
Ты мне предлагаешь прочитать всю википедию?

Вы это кукаретики? Читайте Вики, я же вас туда послал. Вот подсказка: в ООП не так много фундаментальных принципов. Раз ты их не знаешь, значит, ты не знаешь и не понимаешь ООП. Если хочешь знать и понимать - RTFM.

Какой смысл разжевывать тебе вполне продвинутые, хотя и весьма конкретные принцыпы, если ты не знаешь основ? Аналогии и объяснения «на пальцах» здесь не работают, это тебе не кукарекинг.

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

Аналогии и объяснения «на пальцах» здесь не работают, это тебе не кукарекинг.

Они работают всегда и везде, при условии, что объясняющий понимает о чем он говорит.

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

в ООП не так много фундаментальных принципов

И непонятно, кстати, что ты подразумеваешь под ООП. Кей не имел в виду ++, если чо, так что базворбы из быдлопедии тут не работают, к твоему сожалению. Хочешь пожужжать про инкапсуляцию-полиморфизм-наследование? Ну-ну.

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

при условии, что объясняющий понимает о чем он говорит.

Только если объясняющий и вникающий находятся на одном уровне. Ты же не умеешь пользоваться Википедией. Это уровень пониже гуманитария.

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

Ладно, давай абстрагируемся от высоких материй, скажи проще: почему нелзя наследовать от number. Каким принципам ООП это противоречит. Если не ответишь, я просто засчитываю слив.

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

И непонятно, кстати, что ты подразумеваешь под ООП

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

Кей не имел в виду

Вместо интервью с Кеем лучше бы почитал его статьи и его код.

++
базворбы из быдлопедии
инкапсуляцию-полиморфизм-наследование

Очень показательный набор штампов. Мальчик перечитал лиспосрачей.

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

скажи проще: почему нелзя наследовать от number

Сначала покажи, где я это утверждал. Процитируй мои слова и объясни, как из них получилось «нелзя наследовать от number».

Если не ответишь, я просто засчитываю слив.

Можешь просто на голову себе нассать.

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

Сначала покажи, где я это утверждал. Процитируй мои слова и объясни, как из них получилось «нелзя наследовать от number».

Если ты не умеешь ходить по ссылкам на собственные сообщения, придется процитировать, да, буквально:

Ответ на: комментарий от vurdalak 01.10.2014 14:31:10

отнаследовать Real от Integer

Это нарушение одного из фундаментальных принципов OOP. Кукаретиков прошу пройти в Википедию.

Комментарии излишни

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

нелзя наследовать от number
отнаследовать Real от Integer
Комментарии излишни.

Ты принялся макать себя в говно самостоятельно, комментатор херов.

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

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

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

Какая разница, в данном контексте? Впрочем понятно, что ты ходишь вокруг-да около, просто вякнул, а теперь отмазываешься. Отвечай тогда, почему нельзя наследовать real от integer? Твой последний шанс выплыть из говна.

linux-101
() автор топика

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

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

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

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

в данном контексте

Вот я и говорю, биомусор типа тебя пользуется определениями, которые зависят от «контекста». Лиспосрачи, собственно, из-за таких ГСМ-чмошников и случаются.

ты ходишь вокруг-да около
просто вякнул, а теперь отмазываешься

Я сразу предложил вести обсуждение с примерами на смолтоке. Ты сказал, что не знаешь ни его, ни ООП.

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

отнаследовать от конкретной сущности класс, а затем, сделать эту сущность экземпляром этого класса

Да-да, отнаследовать класс от сущности.

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

тут из-за одного термина «ООП» могут сраться десятками страниц, а ты предлагаешь сразу два термина и их проекцию на CL - не взлетит...

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

Да-да, отнаследовать класс от сущности.

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

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

Им не понять, не отличить

Можно простыми словами, чтобы самое последнее ограниченное быдло уяснило разнице? Я даже в lor-wiki не поленюсь внести.

anonymous
()

Прошу дать однозначное определение терминов:

  • ООП
  • модель ООП
  • мощность модели
  • сила модели
  • урезанная модель
  • расстояние между моделями
anonymous
()
Ответ на: комментарий от anonymous

уяснило разнице?

я же сказал, что оно на это не способно. Оно и отличается тем, что путает реализацию с абстракцией, если бы это было не так, у нас не было бы java/++ реализации ООП

linux-101
() автор топика
Ответ на: комментарий от Debasher

это когда 1.toString() вместо String(1)

Вот чему в универах учат!

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

Смогу, и УЖЕ объяснил, а понял ли ты объяснение — это твои проблемы.

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

Ок, сделаю еще одну попытку. Наследование — это, по сути, техническая сторона, это вопрос реализации. На объект нельзя смотреть как на набор свойств и методов, Иерархия наследования не обязана соответствовать логической иерархии объектов, надеюсь, понятно теперь?

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

Ага, погляди в окно, это не я там побежал давать всем направо и налево.

linux-101
() автор топика
Ответ на: комментарий от Debasher

это когда 1.toString() вместо String(1)

Это динамическое говно, а не ООП. Вон настоящее, строгое, дисциплинированное, жесткое ООП для настоящих сильных, накаченных, мужественных мужчин:

NumberOneAbstractFactorySingleton numberOne = new NumberOneAbstractFactorySingleton(ABSTRACT_FACTORY_FACTORY_TYPE.VeryVeryAbstract);

IntializerFactory intializerFactory = numberOne.getIntializierFactory();

Intializer intializer = intializerFactory.makeInitializer();

intializer.initialize(1);

numberOne.setInitializer(intializer);

StringerFactory stringerFactory = numberOne.getStringerFactory();

Stinger stringer = stringerFactory.makeStringer();

stringer.doString(numberOne);

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.