| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Флейм > Просто интересно, как это - без ООП? |
| Автор: sidiakin 12.8.2013, 22:17 |
| Вот появился новый яп GO и там нет поддержки ООП. Этож получается что ООП себя не оправдало? |
| Автор: irinazanuda 13.8.2013, 09:50 |
У гламурной, великовозрастной, но "косящей под лолитку" и оттого слегка шепелявящей поэтессы, берут интервью: - А муза у вас есть? - Ох, - вздыхает поэтесса, - а муза у меня нет... Добавляет, после слезливой паузы: - Вот такая в зизни зопа! |
| Автор: CompWorm 14.8.2013, 02:34 |
посерчай по форуму, уже обсуждалось, что ООП - это лишь инструмент, при том не всегда нужный. например (Мне) чисто математические задачи удобно решать без ООП. если верит твоим словам, то видимо конкретно в ГО он не нашел применения. |
| Автор: ТарасАтавин 11.9.2013, 20:24 |
| ООП - парадигма. Не всегда нужная, но часто необходимая. |
| Автор: Wowa 24.9.2013, 18:36 |
| Не для всех целей ООП нужно. |
| Автор: ТарасАтавин 8.10.2013, 10:03 |
| Нафиг ООП в сиквеле? Или в прологе? В то же время есть задачи, которые проще решить в объектной парадигме, чем в любой другой. Не для всех целей? Эйси. И для таких целей есть языки или с поддержкой ООП в числе других парадигм, или вообще без поддержки ООП. Но для некоторых то целей нужна. |
| Автор: CompWorm 9.10.2013, 03:16 |
| ТарасАтавин, повторюшка дядя хрюшка |
| Автор: k0rvin 9.10.2013, 15:07 |
А на самом деле: http://golang.org/doc/faq#Is_Go_an_object-oriented_language |
| Автор: Bulat 25.10.2013, 10:56 | ||
Разработчки Erlang: "What is OOP?". |
| Автор: ТарасАтавин 6.12.2013, 06:35 |
| Объясните мне, каким боком прикрутить ООП, например, к прологу, эрлангу, или к сиквелу? Или как исключить ООП из умл? |
| Автор: ТарасАтавин 6.12.2013, 08:15 |
| Вика утверждает, что функциональное. А декларативное - это пролог. |
| Автор: Bulat 6.12.2013, 08:49 |
это подмножество, множества, которое называется Есть парадигма, которая называется - декларативное программирование. В нее входит и функциональное и логическое программирование(пролог) |
| Автор: k0rvin 9.12.2013, 12:47 | ||||||||
Это смотря http://www.infoq.com/interviews/johnson-armstrong-oop
Это https://gist.github.com/mwotton/6862813. =)
|
| Автор: Bulat 9.12.2013, 13:07 |
Мне довелось маленько пописать на эрланге, а не только смотреть. =) А полиморфизм был и "до ООП". Можно взять любой процедурный ЯП и своими силами реализовать. И как же пример, типа межпроцессового взаимодействия, раскрывает ООП?? ООП в эрланге нет, но это не значит, что задачи решаемы путем ООП(императивного программирования) невозможно решать путем декларативного. Об это кстати и статья. Просто разные подходы к решению задач. А вообще, отсутствие именно такого понятия как переменная иногда о-о-очень мешает, вот там классы, объекты - не так, а перемнная все же бывает нужна. |
| Автор: CompWorm 9.12.2013, 20:02 |
select DB.table ... SQL не ООП? |
| Автор: k0rvin 10.12.2013, 13:12 | ||||||
Я выделил главное.
Этот пример не о межпроцессном взаимодействии, а об изменении внутреннего состояния процесса: переменная N меняет свое значение после обработки каждого поступившего сообщения. Поскольку обмен сообщениями считается ключевым в ООП по Кею, а в Эрланге этот обмен присутствует в избытке, получаем, что Эрланг вполне себе объектно-ориентирован "искаробки". |
| Автор: Bulat 10.12.2013, 14:05 |
Ты просто выдернул из контекста наиболее подходящие строки и манипулируешь ими так, как тебе удобно Ключевые черты ООП: 1. Инкапсуляция 2. Наследование 3. Полиморфизм Вот попробуй реализовать наследование в ерланге. Опять же выдернул из контекста, а как насчет того, что потому же Кею - Все является объектом?? |
| Автор: k0rvin 11.12.2013, 08:22 | ||||||||
Это не ключевые черты, а механизмы, присутствующие в некоторых реализациях. Ну да ладно. Модули. В приведенном примере "клиент" не может получить доступа к N. Делегирование. Да и вообще http://en.wikipedia.org/wiki/Object-oriented_programming#Formal_semantics. Что мне мешает посылать одинаковые сообщения разным (по реализации) процессам и получать разное поведение? Ничего.
Это идеалистическое утверждение, нет такого языка, где все является объектом. Из практических соображений. |
| Автор: Bulat 11.12.2013, 10:08 |
Таким образом мы получаем, что и эрланг не язык ООП. Так об чем тогда речь?? |
| Автор: ksnk 11.12.2013, 10:33 |
| k0rvin, А С++ есть обмен сообщениями? Прям из коробки? Без всяких осовских API. |
| Автор: k0rvin 11.12.2013, 10:45 |
Да, пожалуйста, реализовывай в своих классах только метод void dispatch(Message *m); и будет тебе обмен сообщениями. При чем тут API ОС? |
| Автор: ksnk 11.12.2013, 11:44 |
| А Message это что (в каком файле инклюдится?) А dispatch это откуда? Просто моя коробка немного другая, наверное Мне всегда казалось, что без транспортного уровня смысла в сообщениях немного. А транспорт (средство доставки сообщений) и идентификацию адресатов-отправителей определяет нам ос. |
| Автор: k0rvin 11.12.2013, 12:14 | ||||
Тип "Сообщение". Например в самом простом виде это *void. В любом. В каком смысле откуда? Откуда методы у классов берутся?
При чем тут это все, если мы говорим о языке. Грубо:
|
| Автор: ksnk 11.12.2013, 14:30 |
| "Из коробки" и "Давайте я тут прямо вот все напишу" - разные вещи. Не? |
| Автор: k0rvin 11.12.2013, 14:34 | ||
А что в таком случае должно значить "из коробки"? Специальные ключевые слова? Но зачем? Их и так довольно много. |
| Автор: ksnk 11.12.2013, 15:01 | ||
Это я про то, что
Если вспоминать про "а я тут и сам все напишу", то можно вспомнить про язык Форт. Его никто даже и не подозревает в ООП'ности с инкапсуляцией и наследованием, однако на самом форте можно написать вполне себе ООП, со всеми необходимыми половыми признаками. Это я про то, что определения - они такие определения. |
| Автор: k0rvin 11.12.2013, 15:14 |
Потому что ООП не имеет единственно верного или хотя бы четкого определения и кроме SmallTalk есть еще Simula, от которой C++-ное ООП и идет. Спорить, какое ООП самое правильное, нет никакого желания, так что да, |
| Автор: Bulat 11.12.2013, 15:16 | ||
|