[Ответить в тред] Ответить в тред

16/08/16 - Запущен Двач Трекер
01/08/16 - Вернули возможность создавать юзердоски
09/07/16 - Новое API для капчи - внимание разработчикам приложений



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 237 | 13 | 60
Назад Вниз Каталог Обновить

Хорошее ООП Аноним 11/07/16 Пнд 05:59:13  793393  
14682059533840.jpg (44Кб, 932x554)
Недавно меня осенило, что хорошее ООП это ни что иное, как ФП, сделанное через жопу.

Хорошее ООП минималистично, хороший архитектор будет стараться писать атомарные классы.

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

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

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

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

Паттерн "визитор" это ни что иное, как банальный колбэк, оверинджернутый, неявный колбэк

Паттерн "фабрика" это ни что иное, как неявное, неестественно написаное каррирование.

Паттерны "билдер" и "декоратор" это опять же, неявные, неестественный, криво написаные функции высшего порядка.

и т.д. Я так весь день могу. Дискасс?
Аноним 11/07/16 Пнд 06:18:46  793397
>>793393 (OP)
Картинка говно, кстати.
Слева можно было написать "объекты, объекты, объекты", типа тоже все ПРОСТО И ЛАКОНИЧНО. Но двуличные функционалобляди предпочитают захуярить strawman'а.
Аноним 11/07/16 Пнд 06:36:14  793400
>>793397
>Слева можно было написать "объекты, объекты, объекты
Ты имел в виду "классы, приватные абстрактные чистые виртуальный деструкторы, фабрики фабрик фабрик, объекты"?
Аноним 11/07/16 Пнд 13:33:03  793494
>>793393 (OP)
Ты забыл написать, что лямбды - это те же объекты, только иммутабельные и с одним методом.
Аноним 11/07/16 Пнд 14:28:55  793530
>>793393 (OP)
ООП хорошо подходило для сочетания двух условий - "у нас есть задачи дискретно-событийного моделирования" и "у нас есть Algol60 и больше нихуя". К Алголу60 оказалось очень легко прикрутить несколько полезных (для той задачи) хаков, которые (на тех компьютерах) еще и были дешевы в смысле скорости. Сначала они хотели сделать препроцессор (что логично - Страуструп через много лет тоже начал с этого и собирался этим и ограничиться), но им понадобились и некоторые другие расширения Алгола и ограничиться препроцессором не удалось.

И все эти "Концепции ООП" появлялись именно таким способом: вот интересный (и дешевый в реализации) эффект — как мы можем его использовать? Началось все с того, что понадобилось придумать новый (быстрый) способ передачи параметров в процедуры. Стандартные алголовские способы: по значению и по имени были медленными по разным причинам. Тогда Хоар изобрел ссылки и null. Раз уж структурная эквивалентность оказалось сложной в реализации, сравнивать стали адреса, по которым "объекты" располагаются — появилось identity. Обратили внимание на то, что блок памяти B, структурированный в начале так же, как и блок A можно обрабатывать процедурами, написанными для работы с A — появился "префиксинг" (даже синтаксически объявление класса родителя было префиксным), под который потом подвели идеологию и назвали "наследованием" (ну и понятно, почему сначала никаких "множественных наследований" не было — что такое "множественный префиксинг"?). К рекордам добавили процедуры, диспетчеризующиеся по одному аргументу. Почему именно по одному? Потому что по n > 1 — сложно в реализации.

Прекрасно решили свои задачи дискретно-событийного моделирования, на тех компьютерах что у них были, и успокоились. Но пришел Алан Кей и все испортил. Кей и прочие смолтокеры захотели сделать не такой вот "натянутый" на структурное программирование ООП, а идеологически чистый и непротиворечивый. Для этого они подвели базу под все эти технические срезания углов. Получилась чистая реализация идей, придуманных для быстроты и простоты реализации, только медленная и сложная. Они не смогли все это заставить вертеться с приемлемой скоростью до 90-х годов, когда стало уже поздно. Чтоб ввести Симула-лайк ООП в мейнстрим понадобилось только (временно) отказаться от сборщика мусора. Однако, вся философия и методология ООП, паттерны и юнит-тесты и т.д., придуманные смолтокерами не пропали, а были адаптированы мейнстримом.

Смолток — это не "изначальное древнее ООП", а возрождение умирающего старого и реформация неправильного ООП, загнувшееся, правда, раньше нем неправильное, пока по настоящему древнее ООП все продолжало умирать. Ну и, понятно, философия ООП, которая превратила все картины, загораживающие дырки на обоях, в "краеугольные камни" концепции и "имманентные особенности человеческого мЫшленья".
Аноним 11/07/16 Пнд 16:00:13  793583
ооп для питухов
Аноним 11/07/16 Пнд 17:37:01  793648
>>793393 (OP)
По паттернам ты всюду обосрался. Визитор это не колбек, а используется для двойной диспетчеризации. Абстрактная фабрика создает разные конкретные типы в рантайме, какое нахуй каррирование. Билдер - чтобы твои любимые иммутабельные типы создавать, а как иначе то. Короче учи ооп, хватит у мамки на шее сидеть.
Аноним 11/07/16 Пнд 17:43:12  793654
>>793583
Василий, 35 лет, младший научный сотрудник в Крыжопольском НИИ ХУЯ.
Аноним 11/07/16 Пнд 18:59:03  793695
>>793654
надеюсь ты математик, тогда ты будешь знатаком двух бесполезных хуйнь
Аноним 11/07/16 Пнд 19:00:36  793697
>>793648
>двойной диспетчеризации.
защеку, вот это вот все нинужно
Аноним 11/07/16 Пнд 19:05:34  793702
>>793393 (OP)
>Паттерн "петушиная фабрика"
Аноним 11/07/16 Пнд 19:41:08  793714
>>793702
Монада "иммутабельный анус".
Аноним 11/07/16 Пнд 20:03:51  793722
Ещё один осознал, что ООП умерло.
Аноним 11/07/16 Пнд 20:06:14  793723
>>793722
Думаешь вкатываться в ойти, учишь ООП и паттерны. Как только стал готов к собеседованиям, оказывается, что ООП умерло.
Аноним 11/07/16 Пнд 20:41:33  793745
14682588934870.jpg (18Кб, 251x251)
>>793393 (OP)
ФП:
Анаморфизм
Катаморфизм
Хиломорфизм
Параморфизм
Препроморфизм
Постпроморфизм
Зигоморфизм
Хистоморфизм

ООП:
Цикл
Цикл
Цикл
Цикл
Цикл
Цикл
Цикл
Цикл
Аноним 11/07/16 Пнд 20:44:45  793749
>>793393 (OP)
>Паттерн "визитор" это ни что иное, как банальный колбэк, оверинджернутый, неявный колбэк
У вас там мультиметоды-то все никак не завезут, я погляжу.
Аноним 11/07/16 Пнд 21:26:18  793791
 1 005 631 387 байт весит ебаный редактор IntelliJ, эталон ООП уебищности и непригодности.
Аноним 11/07/16 Пнд 21:33:06  793796
>>793791
Будь он написан с приминением функциональщины (а особенно хуиты вроде реактивщмны) тормозил бы ещё сильнее, не говоря о том что ни у одного функционального компилируемого языка нету нормального линкера.
Аноним 11/07/16 Пнд 21:36:45  793797
>>793796
>Будь он написан с приминением функциональщины
по крайней мере не создавался бы класс на каждый ебаный чих со стопицот ненужными методами прозапас
Аноним 11/07/16 Пнд 21:37:58  793798
>>793796
>ни у одного функционального компилируемого языка нету нормального линкера
это еще что за маняфантазия?
Аноним 11/07/16 Пнд 21:45:38  793803
>>793798
А хаскель/окамл уже научились компилироваться во что-то меньшее чем дыа десятка мегабайт на хэловорлд?
>>793797
И тормозил бы ещё в 10 раз сильнее, разницы?
Аноним 11/07/16 Пнд 21:48:05  793806
>>793803
>А хаскель/окамл уже научились компилироваться
>И тормозил бы ещё в 10 раз сильне
кошерная сишечка тормозила бы и занемала меньше дыа десятка мегабайт на хэловорлд?
и причем тут ненужное говно типа хаскель/окамл?
Аноним 11/07/16 Пнд 21:50:34  793807
>>793806
Как процедурная сишечка относится к функциональным языкам, поехавший? Может справку на википедии хоть откроешь прежде чем что-то писать?
Аноним 11/07/16 Пнд 21:57:07  793812
>>793807
чем процедура от функции отличается, мамкин куаретик?
Аноним 11/07/16 Пнд 22:00:56  793816
14682636560850.png (74Кб, 468x675)
>>793812
Я мимокрокодил.
Аноним 11/07/16 Пнд 22:04:10  793819
>>793816
вот зачем ты свое матановское говно сюда принес? тащи два снипита, где функциональную парадигму нельзя выразить через процедурную и наоборот.
Аноним 11/07/16 Пнд 22:04:14  793820
>>793812
Тем что ты либо поехавший, либо траль?
Просто открой хотя бы первый же раздел и найди там си, после можешь продолжать тралить (правки котироваться не будут).
Аноним 11/07/16 Пнд 22:04:44  793821
>>793820
https://ru.m.wikipedia.org/wiki/Функциональное_программирование
Макаба - хороший движок
Аноним 11/07/16 Пнд 22:05:02  793822
>>793745
Полиморфнул тебе в зигаморфизм.
Аноним 11/07/16 Пнд 22:07:15  793824
>>793745
>Хистоморфизм
Иди джинсы подворачивай.
Аноним 11/07/16 Пнд 22:14:00  793833
>>793820
в си например можно применить ооп подход и? почему его не отнесли к ооп?
Аноним 11/07/16 Пнд 22:14:25  793834
>>793745
Клаудморфизм
Хардкордморфизм
Индиморфизм
Маняморфизм
Аноним 11/07/16 Пнд 22:16:17  793837
>>793820
>>793821
Некоторые концепции и парадигмы специфичны для функционального программирования и в основном чужды императивному программированию (включая объектно-ориентированное программирование). Тем не менее, языки программирования обычно представляют собой гибрид нескольких парадигм программирования, поэтому «большей частью императивные» языки программирования могут использовать какие-либо из этих концепций.

вот в этом весь смысл, матанопидоры сами же понапридумали всякой хуйни и сами же обосрали.
Аноним 11/07/16 Пнд 22:21:45  793839
Википидоры говорят:
Языки функционального программирования
...
F# — функциональный язык семейства ML для платформы .NET
...

а в статье про F#:
...
F# (произносится эф-шарп) — это мультипарадигмальный язык программирования из семейства языков .NET Framework, поддерживающий функциональное программирование в дополнение к императивному (процедурному) и объектно-ориентированному программированию.
...

манякукаретики, оправдывайтесь, чем ФЯП отличаются от ПЯП?

Аноним 11/07/16 Пнд 22:23:46  793843
>>793819
Долбоебик узнал про тезис Черча и тезис Тьюринга, аж глаза слепит от этого ПРОЗРЕВАНИЯ.
Аноним 11/07/16 Пнд 22:25:14  793846
>>793834
Вейперморфизм.
Эмоморфизм.
Херкоморфизм.
Индастриальный морфизм.
Праворадикальный морфизм.
Аноним 11/07/16 Пнд 22:31:04  793851
>>793843
Долбоебик, иди нахуй вмести со своим тезисом Черча и тезисом Тьюринга и прочими тезисами матанопидорами, вы кукаретики, придумываете всякую хуиту, от которой мы в ИТ имеем то, что имеем, ООП, Хаскелы, Джавы и прочую хуйню.
Показываешь мне реальный пример функциональщины не решаемый процедурщиной и наооборот или пиздун.
Аноним 11/07/16 Пнд 22:33:52  793852
>>793851
Двачую, матаноблядям не место в ИТ.
Аноним 11/07/16 Пнд 22:38:06  793858
>>793851
>от которой мы в ИТ имеем то, что имеем
Не в ИТ, а в макакинге. Куда ты денешься в разработке мобильных сетей без мат. анализа, теории сигналов и алгебры, петушок.
Аноним 11/07/16 Пнд 22:44:36  793861
>>793858
>Куда ты денешься в разработке мобильных сетей
че дохуя новых стандартов GSM наразрабатывал? даже вся твоя петушиная кафедра к этому никакого отношения не имеет, кукаретики аки есть. И да, сети это физика, причем довольно элементарная. Математика нинужна, лол.
Аноним 11/07/16 Пнд 22:46:30  793863
>>793861
>Математика нинужна, лол
Скажи это последовательностям Голда в лицо, питуз.
Аноним 11/07/16 Пнд 22:53:19  793869
>>793863
>Скажи это последовательностям Голда
и? вы матанопетухи к этому какое отношение имеете? все уже придумано и разжевано.
Аноним 11/07/16 Пнд 23:19:23  793878
>>793816
Б-же какой суходроч без смысла на пикче.
Аноним 11/07/16 Пнд 23:20:55  793879
>>793861
> сети это физика
Много мусора на своих сетях передал? Сети это коды, а уже потом линии.
Аноним 11/07/16 Пнд 23:41:27  793894
>>793878
Просто ты не желающий разбираться ни в чем, кроме формошлёпства, дегенерат.
Аноним 11/07/16 Пнд 23:42:10  793895
Анон, проверь себя на олигофрению.

http://psyera.ru/4239/umstvennaya-otstalost-oligofrenii
Аноним 11/07/16 Пнд 23:42:11  793896
>>793879
>Сети это коды
хуеды, волны в среде, можешь даже начинать рассказывать о максимальном размере пакета в TCP/IP.
Аноним 11/07/16 Пнд 23:44:34  793897
господа, гоните матанопитухов ссаными тряпками от кода, везде где только будет возможно.
Аноним 11/07/16 Пнд 23:46:54  793899
>>793897
Сделайте мне сайт, похожий вот на этот, пожалуйста.
Аноним 11/07/16 Пнд 23:51:55  793906
>>793899
Сделайте мне денежный перевод, похожий вот на этот 30000, пожалуйста.
Аноним 12/07/16 Втр 00:09:23  793927
>>793878
Это первая страница учебника, а уже на десятой ты охуеешь, я гарантирю это.
Аноним 12/07/16 Втр 00:20:47  793933
>>793906
Сделаю за 24к и чизбургер.
матанопидор
Аноним 12/07/16 Втр 00:42:06  793939
>>793393 (OP)
Паттерны из книги - хуйня, т.к. банда из четырех хуесосов читала Кристофера Алекзанедра жопой.

ООП нужно, т.к. это правильный подход для симуляций, игр и прочих задач, которые по самой постановке должны решаться "снизу вверх". То есть для тех случаев, когда мы не знаем, как система должна вести себя в целом, но знаем как должны себя вести ее компоненты.
Когда же нам нужно добиться конкретного поведения от системы вцелом, то делать это через объекты ебучий геморрой, т.к. поведение графа объектов с дохуллиардом связей предсказать очень сложно.
Аноним 12/07/16 Втр 02:03:59  793970
>>793816
Нахуя дан новый оператор произведения функций если у нас уже есть такая же запись g(f(x))? Более того, эти хуесосы зачем-то оставили обратный порядок вычисления, хотя операторы подразумевают прямой порядок. Почему эти ебнутые дебилы не перевернули формулу как f*g? Тут все понятно, сначала вычисляется f, потом результат передается в g, данная запись работает как арифметическая операция, без коммутативности разумеется. И в хаскеле оставили этот убогий математический выблев, ебучие дебилы.
Матанобляди хотя бы стараются?
Аноним 12/07/16 Втр 02:38:01  793984
>>793970
> Нахуя дан новый оператор произведения функций если у нас уже есть такая же запись g(f(x))?
Если бы в питоне был такой оператор (в coconut это 2 точки), его бы активно использовали
Сравни:
sorted(list(set(filter(f, seq))))
sorted..list..set..filter(f, seq)
Чище, легче читается, не объебешься со скобками. Впрочем, в императивщине это дело вкуса. Но для фп такой синтаксический сахар это мастхев.
Насчет порядка наверное ты прав
Аноним 12/07/16 Втр 02:46:25  793986
>>793970
ах да, в математике символ удобен когда мы рассматриваем уже сами функции как элементы какого-то множества со структурой (в группе автоморфизмов чего-то там любой элемент это функция, но нас это вообще не ебет никак, мы просто рассматриваем композицию функций как бинарную операцию и записываем ее как fgh чем f(g(h)))
Аноним 12/07/16 Втр 02:47:28  793988
>>793986
макаба съела звездочки, ну ты понел
Аноним 12/07/16 Втр 03:18:49  794000
14682827296390.jpg (28Кб, 600x315)
14682827296401.jpg (58Кб, 520x472)
>>793986
В математике может быть. Но зачем хаскелобляди тащат из математики все дерьмо даже не задумываясь что им нужно будет его реально применять? Не просто дрочить абстракции, а применять к реальным задачам.

В итоге получается они бездумно используют ЧИСТЫЙ МАТАН только чтобы дрочить что они МОРФЕУСЫ, которые не просто кодят, а стоят на одной ступени с богами математики.

А в итоге выходит что они строят деревянные самолеты и диспетчерские вышки как ебаные туземцы с их ебаным культом карго.
Аноним 12/07/16 Втр 03:26:01  794002
>>794000
Неистово двачую. Совсем пизданулися сэтими своими ФП. Пихают везде где только можно. И где нельзя тоже пихают. Скоро, блеать, документообороти проее говно уже на ФП делать будут.
Аноним 12/07/16 Втр 07:41:30  794040
>>793939
>ООП нужно, т.к. это правильный подход для симуляций, игр и прочих задач
>игр
Наверное, поэтому последние лет пятнадцать ооп в играх не используется.
Аноним 12/07/16 Втр 07:49:25  794042
>>794040
Есть хоть один движок, написанный без него?
Аноним 12/07/16 Втр 08:16:28  794047
14683005881880.jpg (72Кб, 1280x720)
>>793393 (OP)
Минималистичный базис обманчиво представляется тебе чем-то абсолютно хорошим. Он:

1. Затрудняет коммуникацию, "сунь функцию в функцию и недовызови вот эту функцию" очень трудно воспринимать
2. Приводит к XZIBITу. См. наивную теорию множеств.
3. Налагает неоправданные ограничения на реализацию (нет, все надо выразить через функции!!!11)

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

Сколько уже народа пришло в яваскрипт и плакало "ой, а че тут везде функции, я хочу ключевые слова класс, делегат, неймспейс, а у вас какие-то костыли все время".
Аноним 12/07/16 Втр 08:33:09  794048
>>794002
> Скоро, блеать, документообороти проее говно уже на ФП делать будут.
Прекрасно же. Отобрази дебитные счета на кредитные, а потом левой сверткой получишь бухгалтерский баланс. Не то что 1Сники ебутся на пустом месте.
Аноним 12/07/16 Втр 08:35:23  794049
Очередной сектантский фп-пиздеж в стиле квиксорта на хаскеле, который и не квиксорт, и не юзабелен. В ФП дохуя паттернов-хуятернов, антипаттернов, и прочего говна.
Аноним 12/07/16 Втр 08:38:56  794050
>>794042
Каждый второй? Если, конечно, под ооп понимать программирование объектами (у вас - классами), а не использование его для имитации модулей или как синтаксический сахар для включения/выключения функций в рантайме. Поищи, хотя бы, критику OGRE (который окодемичное ооп до самой последней строчки) и вообще Марка Актона, в частности typical c++ bullshit и data oriented design. Потом можешь поискать Entity Component Systems.
Аноним 12/07/16 Втр 08:58:51  794058
>>794050
Нахуя мне гуглить твоё говно? Слепо следовать парадигме во вред продукту – дегенератизм, потому и все мейнстримовые языки мультипарадигменны, а не сфокусированы на этом как смалталк или хаскель.
Аноним 12/07/16 Втр 09:42:31  794078
>>794058
>Слепо следовать парадигме
Ежели так, то сишка - функциональный язык, ведь в нём есть функции.
Аноним 12/07/16 Втр 10:36:18  794118
>>793530
Это надо куда-то на лурк потомкам, чтоб не смыло
Аноним 12/07/16 Втр 10:43:04  794121
>>794078
Ежели так, то ты видимо так и не смог открыть вики.
Аноним 12/07/16 Втр 11:15:11  794140
>>793393 (OP)
Долго же до тебя доходило, кк.
Аноним 12/07/16 Втр 11:16:28  794141
>>793697
Молодцом! Подставляй другую.
Аноним 12/07/16 Втр 12:58:00  794182
>>793393 (OP)
А что плохого в наследовании?
(нихуя не шарю в ООП)
Аноним 12/07/16 Втр 13:46:25  794217
>>794182
g evolve your hierarchy
Два фундаментальных неразрешимых вопроса ооп:
1. У тебя есть сущность, которая может писать, и сущность, которая может читать. Тебе нужна новая сущность, которая умеет писать, читать и кричать. От чего её лучше наследовать, WriterEntity или ReaderEntity?
2. string.write(paper) или paper.write(string)? (А если сюда добавить pen, то всё становится ещё веселее).
Аноним 12/07/16 Втр 14:11:18  794236
>>794217
Интерфейсы.
Аноним 12/07/16 Втр 14:13:37  794240
>>794236
Расскажи же.
Аноним 12/07/16 Втр 14:25:48  794252
>>794040
Ты наркоман, сука, штоле?
Юнити, анрил енджин вот эти все монстры индустрии. Везде ооп.
Аноним 12/07/16 Втр 14:38:54  794262
>>794217
Когда все нормальное человечество училось не задаваться вопросами "что было первее, яйцо или курица" и "в чем смысл бытия" функциональные бляди в очередной раз оптимизировали факториал и все проебали.

Так и появились эти два ФУНДАМЕНТАЛЬНЫХ НЕРАЗРЕШИМЫХ ВОПРОСА
Аноним 12/07/16 Втр 14:45:20  794263
>>794236
А как быть с повторным использованным? Что делать, если в классах реализующих один и тот же интерфейс, допустим, один метод выглядит одинаково? Это что же копипастить?
Аноним 12/07/16 Втр 14:47:00  794264
>>794217
мн наследование?
нет, не слышал
Аноним 12/07/16 Втр 14:49:27  794267
14683241679150.jpg (199Кб, 800x600)
Сейчас будет какареканье про множественное наследование реализаций
Аноним 12/07/16 Втр 14:52:24  794270
>>794267
Какой идиот будет так делать?
Аноним 12/07/16 Втр 14:53:52  794274
>>794262
Нихуя не понял
Аноним 12/07/16 Втр 14:55:17  794275
>>794264
Хау эбаут композиция?
Аноним 12/07/16 Втр 14:57:35  794279
>>794217
TextWriter.Write(pen, paper, string)
Аноним 12/07/16 Втр 15:02:44  794281
>>794274
Это его способ сказать "хуй его знает" на второй вопрос.
>>794279
Вот, собственно, и вся суть ооп. В учебнике у нас class Shape extends Drawable и triangle.draw(), а в реальности DrawingManager.createDrawingManager().setDrawingTarget(TargetManager().create().makeDrawingTargetFromScreen(ScreenManager.getInstance().getCurrentScreen())).build().getContext().drawShape(triangle).finalize().
Аноним 12/07/16 Втр 15:14:12  794287
Есть на свете хоть один ООП-даун, который может сформулировать постулаты своей йобаной религии? Почему во всех ООП-языках это ООП такое разное? И ведь адепты всегда считают свой самым труЪ. Что за хуйня у вас там творится? Что есть ООП, а что -- нет?
Аноним 12/07/16 Втр 15:19:50  794291
>>794287
>ООП
это философия, что есть объект, что есть сущность, а матанобляди в нее не могут.
Аноним 12/07/16 Втр 15:21:38  794292
>>794291
А ООП-дятлы могут?
Аноним 12/07/16 Втр 15:22:08  794293
>>794287
ООП это когда платят, а ФП - ждешь завтрака от невьебенного руководителя стартапа.
Аноним 12/07/16 Втр 15:24:14  794296
>>794293
Заебись вокруг да около >>794287 ходить
Аноним 12/07/16 Втр 15:24:21  794297
>>794281
>Вот, собственно, и вся суть ооп. В учебнике у нас class Shape extends Drawable и triangle.draw(), а в реальности DrawingManager.createDrawingManager().setDrawingTarget(TargetManager().create().makeDrawingTargetFromScreen(ScreenManager.getInstance().getCurrentScreen())).build().getContext().drawShape(triangle).finalize().

Высасываешь аргументы из пальца. Ну или из чего ты там их высасывать.

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

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

но таких мест немного
Аноним 12/07/16 Втр 15:25:07  794299
>>794292
наврядли, адепты ооп это по большей части матанобляди которым не нашлось места на стройке.
Аноним 12/07/16 Втр 15:26:42  794300
>>794297
>ооп это средсто
ну вот и нехуй это средство тащить как последнюю истину
Аноним 12/07/16 Втр 15:29:00  794301
>>794299
ФП фаги - это хуи которые через анальные боли осилили новый интсрумент, теперь все должны перед ними падать в охуении и предлагать самых пездатых самок и кучу бабла. Хуй вам.
Аноним 12/07/16 Втр 15:29:45  794303
>>794300
>ну вот и нехуй это средство тащить как последнюю истину

это двачи, тут все что ни попадя школьники хватают и тащат как последнюю истину

если ты решил с ними поспорить и доказать им что в интернете кто-то не прав то флаг тебе в руки
Аноним 12/07/16 Втр 15:33:25  794307
>>794301
там выше один анон так и не смог объяснить чем ФЯП отличаеюся от ПЯП на практике
Аноним 12/07/16 Втр 15:35:38  794312
>>794299
Бля, анон, объясни кто такая матаноблядь. Не вдупляю о ком ты.
Аноним 12/07/16 Втр 15:38:48  794316
>>794312
Матаноблядь - это, очевидно, существо, которое не может в хардкорный матан, из которго, понтяное дело состоит весь ФПЯ, следовательно не может его понять и никогда не достигнет конкуртного уровня в программировании. Поэтому эту парадишму нужно всячески рекламировать, чтобы им больше денег не досталось, лучше поделиться.
Аноним 12/07/16 Втр 15:40:23  794318
>>794316
Спс. Согласен с тобой
Аноним 12/07/16 Втр 15:44:35  794321
>>794307
ИМХО ничем. Но ФП легче масштабируется. Точнее эта масштабируемость легче достигается
Аноним 12/07/16 Втр 15:47:11  794325
>>794307
В том же хаскелле часто можно проглядеть последовательность выполнения без проблем.
Аноним 12/07/16 Втр 15:47:24  794326
>>794321
масштабируемость чего? безработных людей?
Аноним 12/07/16 Втр 15:57:00  794332
>>794321
>масштабируемость легче достигается
например? давай какойнить детский снипет на пару строк
Аноним 12/07/16 Втр 16:03:14  794338
>>794287
Короче, ясно -- сосать, так с проглотом
Аноним 12/07/16 Втр 16:29:30  794365
>>794281
А что собственно не так в твоем примере, кро ме того, что он в одну строку? На ФП было бы то же самое, только не последовательность методов, а последовательность передач данных и функций внутри функций.
Аноним 12/07/16 Втр 16:34:33  794373
Я не вдупляю, а что, знать И ООП И ФП и использовать определенную парадигму там, где она уместна, религия не позволяет?
А об объектно-ориентированом ФП, я так полагаю, сэры вообще не слыхивали?
Аноним 12/07/16 Втр 16:50:14  794389
>>794373
Двачую. Холивары на пустом месте разводят.
Аноним 12/07/16 Втр 19:36:47  794534
>>794373
>объектно-ориентированом ФП
Блять, какой ужас. Ты про скалку что ли?
Аноним 12/07/16 Втр 20:10:13  794599
>>794534
Главное от ашлиста унаследоваться и намазать в конструкторе монаду.
Аноним 12/07/16 Втр 20:12:28  794607
>>794534
>Ты про скалку что ли?
Да хоть динамопараша, Руби там или ЖабаСпирт. Функции возвращающие классы, вызов функции при объявлении класса, вот это вот все.
Аноним 12/07/16 Втр 20:15:28  794616
>>794607
Ахуеть. Для тебя наличие функций в языке делает его хоть немного функциональным?
Аноним 12/07/16 Втр 20:18:01  794624
>>794616
А ты там по чистоте угораешь? Что мешает в любом языке, в котором есть функции, намутить себе иммутабельные типы и принципиально писать только чистые функции?
Аноним 12/07/16 Втр 20:18:13  794625
>>794616
А для тебя отсутствие в языке понятия классов делает его тру функциональным?
Аноним 12/07/16 Втр 20:23:16  794636
>>794624
А) Всё чистыми функциями не напишешь;
Б) В моей области от постоянного копирования и прочих ништяков чистоты просос по перформансу будет.
Ц) Это даже не четверть фп паттернов. А на какой хуй их имитировать там где их нет – непонятно.
>>794625
Для меня их наличие делает язык "ОО-образным".
Аноним 12/07/16 Втр 20:24:51  794640
>>794636
>Для меня их наличие делает язык "ОО-образным".
Об Жабу обжегся? Только там ООП доведен до маразма, во всяких сисечках если не хочешь писать классы, то не пиши.
Аноним 12/07/16 Втр 20:26:16  794643
>>794636
>Для меня их наличие делает язык "ОО-образным".

И для тебя это зашквар, я правильно понимаю?
Пограммить на "ОО-образном" языке ты можешь только накрыв клавиатуру вафельницей?
Аноним 12/07/16 Втр 20:27:27  794646
>>794640
>Об Жабу обжегся? Только там ООП доведен до маразма

вангую ты не видел смалтолка
Аноним 12/07/16 Втр 20:28:21  794648
>>794646
А ты видел, что ли? Тебе сколько лет, деда?
Аноним 12/07/16 Втр 20:35:15  794655
>>794643
Сука тупая, я про то что наличие функций != фп язык, ты мне про какую-то ненависть у ооп которой нету.
Аноним 12/07/16 Втр 20:37:55  794657
>>794655
Ну ладно ладно. Че ты завелся? Нормально же общались.
Аноним 12/07/16 Втр 20:40:35  794662
>>794655
И вообще в чем тогда смысл чисто ООП или чисто ФП? Ведь есть же мультипарадигменные языки где можно юзать и то и другое в зависимости от необходимости. Те же кресты, например. я умышленно не упоминаю жабу ибо там лямбды убогие
Аноним 12/07/16 Втр 21:09:00  794690
>>794373
Можно. Но тогда ты будешь писать или как на мутабельном хаскеле, или как на скале.
Как на скале лучше не писать.
Аноним 12/07/16 Втр 21:11:17  794696
>>794690
А как на OCaml?
Аноним 12/07/16 Втр 21:15:10  794698
>>794696
Тоже не стоит.
Аноним 12/07/16 Втр 21:16:47  794700
>>794698
Свадьбу играть в конце лета или в начале осени?
Аноним 12/07/16 Втр 21:51:43  794729
>>793393 (OP)
Ну расскажи мне как Dependency Inversion функциями заменяется
Аноним 12/07/16 Втр 21:55:17  794735
Частичтное примение?
Аноним 12/07/16 Втр 22:19:55  794750
>>794729
Функциями высшего порядка.
Аноним 13/07/16 Срд 10:43:53  794982
Для необразованых даунов, которых полон /pr:
1) ООП и ФП это ортогональные парадигмы.
2) ООП применяемое в большинстве джава etc пректов это просто процедурщина со специальной записью первого параметра процедур и идиотским способом переиспользования кода.
3) Отличие ФП от ПП заключается в https://en.wikipedia.org/wiki/Referential_transparency.
Аноним 13/07/16 Срд 12:22:33  795028
>>793530
История Вирта очень трагичная, братюни. Начиналось все хорошо:
Хоар сказал: «В Алгол нужно добавить ссылки с нуллами»
А Вирт сказал: «Мы с Хоаром считаем, что в Алгол нужно добавит ссылки, да с такими-то нуллами»
Потом Хоар сказал: «Алгол 68 сосет»
И Вирт, конечно, сказал: «Мы с Хоаром ваш Алгол 68 в рот ебали, пидоры комитетские!!111»
А потом Хоар внезапно сказал: «Анаморфизм, катаморфизм, иломорфизм, параморфизм, наконец»
И Вирт сказал:«Ана-што? Иломорфизм? Хуе-мое! Так, падажжи, ебана, Карри же был моим научруком, параморфизм? Ах тыж ебаный ты нахуй!
АЛГОЛ 68 СОСЕТ!!!111 ССЫЛКИ ДА С ТАКИМИ-ТО НУЛЛАМИ!!!111 АЛГОЛ 68 СОСЕТ!! СОСЕТ АЛГОЛ 68 !!11111»
Ну, так с тех пор и повторяет.
Аноним 13/07/16 Срд 12:25:02  795031
>>795028
Теперь это копипасты тред?

Есть ли в природе хоть один жавапидорас, который знает что-нибудь кроме джавы? Ну хотя бы ту же Скалку, работающую на jvm. Причем `знает' не в смысле запускал 2 раза и посчитал рекламную хуйню с сайта, а действительно хорошо знает. Работал минимум полгода, знает, решению каких проблем адресован язык, знает, зачем он нужен и какие преимущества имеет перед джавой, хорошо понимает, какие принципы заложены в систему типов и нахуя они вообще туда заложены, знает, как она жутко она фейлит на оптимизации хвостовой рекурсии, знает, как она затирает типы и вызывает методы через рефлексию, знает, почему на уёбищной jvm по-другому не сделать, знает, почему неленивые языки - говно, знает, что такое abstraction penalty и почему любой джаваынтырпрайз адово тормозит, несмотря на превосходные результаты на шотауте, самый лучший мусоросборник и hotspot до которого всему немейнстиму в говне плыть и плыть, знает, почему джава - не язык программирования для нормальных людей, а говно для переквалифицировавшихся таксистов? Нет таких? Ни одного? Только студентота и дрочеры на абстрактные фабрики абстрактных аннотаций виртуальных плагинных шин? Так я и знал. И это программисты. Говно какое-то. Пидоры блядь.
Аноним 13/07/16 Срд 13:06:40  795065
Является ли вся GUI-концепция побочным эффектом? Ведь, что такое GUI — это бессмысленный набор состояний.
Аноним 13/07/16 Срд 13:10:03  795067
>>795065
GUI легко решается ФРП. Причем с ФРМ он намного более предсказуемый.
Аноним 13/07/16 Срд 13:12:42  795068
>>793812
>чем процедура от функции отличается, мамкин куаретик?
Ну давай разберем по частям, тобою написанное )) Складывается впечатление что ты реально контуженный , обиженный жизнью имбицил )) Могу тебе и в глаза сказать, готов приехать послушать?) Вся та хуйня тобою написанное это простое пиздабольство , рембо ты комнатный)) от того что ты много написал, жизнь твоя лучше не станет)) пиздеть не мешки ворочить, много вас таких по весне оттаяло )) Про таких как ты говорят: Мама не хотела, папа не старался) Вникай в моё послание тебе< постарайся проанализировать и сделать выводы для себя)
Аноним 13/07/16 Срд 13:53:16  795086
14684071965730.webm webm file (5545Кб, 1280x720, 00:01:10)
>>794058
>Нахуя мне гуглить твоё говно?
Наверное, потому что ты сначала верещал про ООП в играх. А потом когда тебе показали главного архитектора Insomniac Games вебмрелейтед, который доказывает, что ООП в играх НЕ НУЖНО ты начал кукарекать про мультипарадигму?
Аноним 13/07/16 Срд 14:01:33  795095
>>795067
>ФРП
>ФРМ
Расшифруй плиз.
Аноним 13/07/16 Срд 14:15:38  795099
>>795095
Функциональная реактивщина.
Аноним 13/07/16 Срд 14:18:09  795100
>>795095
Функциональное Реактивное Программирование.
"ФРМ" это очепятка
Аноним 15/07/16 Птн 08:54:53  796535
Бамп
Аноним 15/07/16 Птн 12:33:33  796635
GUI для быдла
Аноним 15/07/16 Птн 21:27:34  797030
14686072547160.png (44Кб, 1024x450)
Я офигиваю от этого треда, вы тут проста траллите, правда?

>>793812
> чем процедура от функции отличается, мамкин куаретик?

Функция при одном и том же входе всегда возвращает один и тот же результат. Всё остальное это процедура.

>>793984
> Чище, легче читается, не объебешься со скобками. Впрочем, в императивщине это дело вкуса. Но для фп такой синтаксический сахар это мастхев

(.) в Haskell это функция, а не ёбаный сахар для скриптодебилов. Это означает, что её можно использовать в более сложных композициях чем просто g . f. Например, используя (.) фолдить структуру (дерево, например) функций, ну и вообще делать всё, что можно делать с функцией.

>>794000
> А в итоге выходит что они строят деревянные самолеты и диспетчерские вышки как ебаные туземцы с их ебаным культом карго.

https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_(%D0%BF%D1%81%D0%B8%D1%85%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F)

>>794047
> 3. Налагает неоправданные ограничения на реализацию (нет, все надо выразить через функции!!!11)

Вот не знаю как в других функциональных языках программирования, но в Haskell, по моему опыту, всё выражается через типы прежде всего. Вообще там самое главное это не просто функции, а удобство моделирования данных. В Haskell система типов ещё развивается, а вот в таких языках как Agda совсем здорово, там можно программировать на уровне типов, это и есть самая смакота к которой Haskell идёт. Но часть проблемы это терминология, люди не знающие языка, узнав, что он функциональный думают, что там всё только на функциях. Как бы да, там функции везде, но это всё-равно что сказать, что в императивных языках повсюду переменные -- это как бы не самое важное и не суть, как это не парадоксально.

> Сколько уже народа пришло в яваскрипт и плакало "ой, а че тут везде функции, я хочу ключевые слова класс, делегат, неймспейс, а у вас какие-то костыли все время".

Ну ты сравнил, в JS полно особенностей, там quirk на quirk-е, quirk-ом подгоняет. Мы обсуждаем функциональное программирование, как-будто оно всё одинаково на всех языках программирования могущих в него, а это неправильно, тут надо язык смотреть каждый отдельно.

>>794325
> В том же хаскелле часто можно проглядеть последовательность выполнения без проблем.

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

TL;DR: Есть хороший курс Дэна Гроссмана в котором сравнивается ООП и ФП: https://www.coursera.org/learn/programming-languages Как раз начинается 25 Июля. Просто пройдите его для развлечения, не пожалеете.
Аноним 15/07/16 Птн 22:20:14  797075
http://www.yegor256.com/

thread/>
Аноним 15/07/16 Птн 22:57:32  797110
>>794048
>1Сники ебутся
Реквестирую 1С на хаскеле
Аноним 15/07/16 Птн 23:27:39  797153
>>797030
> (.) в Haskell это функция, а не ёбаный сахар для скриптодебилов. Это означает, что её можно использовать в более сложных композициях чем просто g . f. Например, используя (.) фолдить структуру (дерево, например) функций,
можно пример для питонодебила?
я вроде понимаю что такое дерево функций, но что значит его фолдить хз
Аноним 15/07/16 Птн 23:34:49  797161
проигрываю с дебиков, ставящих знак равенства между ФП и типами
Аноним 16/07/16 Суб 08:21:19  797348
>>797030
>Вот большой плюс ФП и Haskell конкретно это то, что ты получаешь многопоточное выполнение почти за бесплатно
>получаешь многопоточное выполнение
>получаешь
Аноним 16/07/16 Суб 14:17:33  797494
>>794275
интерфейсы наследуй, блджад, а не классы
Аноним 16/07/16 Суб 15:38:23  797577
>>797494
> реализуй классы типов, блджад
Но тогда всё ООП превратиться в хаскель.
Аноним 17/07/16 Вск 22:18:35  798719
>>797348
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак "больше" и начинаешь убирать по одному слову в каждой следующей строке
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак "больше" и начинаешь убирать по одному слову в каждой следующей
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак "больше" и начинаешь убирать по одному слову в каждой
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак "больше" и начинаешь убирать по одному слову в
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак "больше" и начинаешь убирать по одному слову
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак "больше" и начинаешь убирать по одному
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак "больше" и начинаешь убирать по
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак "больше" и начинаешь убирать
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак "больше" и начинаешь
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак "больше" и
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак "больше"
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним знак
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед ним
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь перед
>Такой пишешь сука хуйню какую-то длиной в целое предложение, ставишь
>Такой пишешь сука хуйню какую-то длиной в целое предложение
>Такой пишешь сука хуйню какую-то длиной в целое
>Такой пишешь сука хуйню какую-то длиной в
>Такой пишешь сука хуйню какую-то длиной
>Такой пишешь сука хуйню какую-то
>Такой пишешь сука хуйню
>Такой пишешь сука
>Такой пишешь
>Такой
Аноним 18/07/16 Пнд 08:45:18  799024
>>797075
почитал, чувак просто несет херню чтобы попиариться, типичный BPBS. Втюхивает всякую ерунду безосновательную для дураков, которые верят всему. Все его проекты - это кусок говнокода типичнейшего.
Аноним 18/07/16 Пнд 16:56:19  799315
>>797030
>Вот большой плюс ФП и Haskell конкретно это то, что ты получаешь многопоточное выполнение почти за бесплатно, даже не обязательно думая о нём.
Очередная пропаганда ФП-сектантов.
Аноним 18/07/16 Пнд 17:49:24  799351
>>799315
>дибил
Аноним 18/07/16 Пнд 18:21:12  799377
>>794217
>От чего её лучше наследовать, WriterEntity или ReaderEntity?
От обоих. Множественное наследование везде есть в том или ином виде.
>string.write(paper) или paper.write(string)?
По ситуации. Это проблема множественного диспатча, а не ООП.
Аноним 18/07/16 Пнд 18:24:47  799378
>>794252
>Юнити, анрил енджин вот эти все монстры индустрии. Везде ооп.
В обоих компоненты.
Аноним 18/07/16 Пнд 18:43:11  799402
>>799378
>Similar to Java, UnrealScript is object-oriented without multiple inheritance (classes all inherit from a common Object class), and classes are defined in individual files named for the class they define. Unlike Java, UnrealScript does not have object wrappers for primitive types. Interfaces are only supported in Unreal Engine generation 3 and a few Unreal Engine 2 games. UnrealScript supports operator overloading, but not method overloading, except for optional parameters.
Аноним 18/07/16 Пнд 19:01:42  799437
>>799402
А в юнити сишарп, который тоже ООП, но при этом оба движка используют компоненты, а не наследование для организации данных сцены. Потому что это удобнее.
Аноним 18/07/16 Пнд 19:14:52  799447
>>799402
У них там еще стейт-машины в язык встроены были. Олсо анрилскрипт выкинули, там теперь кресты как скриптовый язык лол.
Аноним 18/07/16 Пнд 21:02:52  799546
14688649728570.jpg (70Кб, 650x478)
>>799447
> кресты как скриптовый язык лол.
Аноним 19/07/16 Втр 14:26:18  800122
>>795031
Скорее всего, нет. Я тут мимосишарпник и считаю ООП говном, несмотря на то, что сишарп один из годнейших ООП-языков. Кресты на уровне гомоебли в сратокан. Жаба вообще дно и рак всего программирования.
Аноним 19/07/16 Втр 14:45:23  800143
>>799377
Мелкомягкие решили не заморачиваться с множественным наследованием, жрите интерфейсы.
Аноним 19/07/16 Втр 15:00:30  800160
>>793393 (OP)
Я нашел откуда картинка:

https://www.youtube.com/watch?v=E8I19uA-wGY
Аноним 20/07/16 Срд 08:18:30  800987
>>799377
>От обоих.
Псевдокот:
class WriterEntity {
fun setBuffer(buf);
fun execute();
}
class ReaderEntity {
fun setBuffer(buf);
fun execute();
}
Наследуйся, пожалуйста.
>Множественное наследование везде есть в том или ином виде
Назови-ка из головы пять языков, кроме питона и крестов, которые его поддерживают. Расскажи-ка, как это делается в шарпее и джавке.
Аноним 20/07/16 Срд 09:42:00  801018
>>800987
Мда, с таким дизайном классов понятно, откуда у тебя такие охуительные вопросы про ООП. Студент?
Аноним 20/07/16 Срд 10:03:47  801032
14689982274160.png (41Кб, 300x300)
>>794217
 Интерфейсы + стратегии.
Но конкретно эту хуйню можно через трейты заебашить.
Аноним 20/07/16 Срд 10:54:06  801055
>>794217
1. Нужна композиция.
2. Не принципиально.
>>794262
Удваиваю этого остроумного господина. Борщееды буквально выковыривают проблемы из носа и героически их решают.
Аноним 20/07/16 Срд 11:30:01  801074
>>801018
>я всегда пишу весь код с нуля
>библиотек не существует
>"повторное использование кода", которое ставят в плюсы ооп, означает, распечатывание кода на бумаге и складывание её в туалете
Ты после подписи вопросительный знак случайно поставил. Можешь не благодарить - добрососач же - но впредь постарайся следить за собой.
Аноним 20/07/16 Срд 16:28:02  801329
правильный подход к ооп -
всю get-set хуиту выкидываем нахуй
все поля делаем public + final и устанавливаем в конструкторе один раз
все методы делаем static и раскидываем по адекватным неймспейсам
таким образом мы приходим к stateless функциям оперирующими иммутабельными объектами
где-то мы это уже видели? подсказка: Haskell
Аноним 20/07/16 Срд 16:51:31  801340
Поясните мне как конченые долбоебые все время кукарекают как ООП и ФП можно совмещать, когда вся суть второго в неизменяемом стейте, а первое - в петушении инкапсулированных кусков стейта?
Ну есть конечно клоуны типа Одерский которые шутки ради засунули все в один язык и теперь это еле движется. И что это доказывает? Вон в плюсы по десять новых фишечек в секунду добавляют и скоро на этом говне никто не сможет ничего написать без опыта костыления в 40 лет.
Аноним 20/07/16 Срд 17:04:33  801350
>>801329
Нет не Haskell, потому eager.
Когда же вы, дауны, поймёте, что ФП было задолго до Хаскеля. Хаскель = ебля с ленивостью.
Аноним 20/07/16 Срд 17:06:31  801352
>>793648
> двойной диспетчеризации
Убогий костыль, покрывающий отсутствие тайпклассов или мультиметодов.
Аноним 20/07/16 Срд 17:11:17  801354
>>801340
Без копирования и множественных ссылок нет особой разницы между изменением состояния и пересозданием состояния, например.


>>801350
Классов типов не было.
Аноним 20/07/16 Срд 17:22:45  801366
>>801354
>Без копирования и множественных ссылок
Как программы писать тогда предлагаешь? Приведи пример.
Аноним 20/07/16 Срд 17:23:50  801370
>>800987
>Псевдокот
Естественно, надо к дизайну разумно подходить, и заранее предупреждать подобную хуиту.
>Назови-ка из головы пять языков, кроме питона и крестов
Почти во всех современных языках есть трейты, миксины и т.п. средства. Про динамические языки даже не говорю - там обычно можно вообще все что угодно делать. Даже в жабе добавили поведение в интерфейсы.
>Расскажи-ка, как это делается в шарпее и джавке
setWriterBuffer( buf ) {
( (WriterBuffer) this ).setBuffer( buf );
}
Аноним 20/07/16 Срд 17:25:26  801371
>>801340
>как ООП и ФП можно совмещать
ООП это сабтайпинг, он иммутабельность ортогонален - смотри окамл, например.
Аноним 20/07/16 Срд 17:27:11  801373
>>793393 (OP)
>Паттерн "визитор" это ни что иное, как банальный колбэк, оверинджернутый, неявный колбэк
Если это подписка на сообщения, передаваемые через очередь сообщений, то не совсем.
Но в целом, всё так и есть.
Аноним 20/07/16 Срд 17:46:57  801390
>>801366
Линейные/аффинные типы.
Аноним 20/07/16 Срд 17:49:34  801393
>>801371
>ООП это сабтайпинг
Вон оно оказывается как. Разве в верблюде не петушат стейт? Тоже что и в скалке получается лень даже смотреть.
>>801390
>Линейные/аффинные типы.
Полторы статьи с icfp прилагаются?
Аноним 20/07/16 Срд 19:27:32  801497
>>801340
Наоборот, писать на нем станет так же просто как на Питоне, но понимать во что это автовыводится будут только петушители конпеляторов.
Аноним 20/07/16 Срд 20:19:26  801553
>>801340
>Поясните мне как конченые долбоебые все время кукарекают как ООП и ФП можно совмещать, когда вся суть второго в неизменяемом стейте, а первое - в петушении инкапсулированных кусков стейта?
Это суть ФП и ООП глазами аутистов с имиджборд. ООП - это сабтайпинг, как тебе выше написали, а ФП - это программирование с помощью комбинирования первоклассных функций. Совмещать это можно легко, причем как в иммутабельном, так и в мутабельном случаях.
Аноним 20/07/16 Срд 20:31:50  801572
>>801553
Поэтому в нормальных языках (e.g. Haskell) никакого сабтайпинга нет. И вообще от этой хуйни plt компуктер-саентесты начинаются сраться под себя и могут еще в еблет прописать.
И каким хуем спрашивается
>ООП - это сабтайпинг
это вообще что-то совершенно новенькое. Правда говорят что такое ООП неизвестно даже самым продвинутым адептам ООП.
Аноним 20/07/16 Срд 20:51:02  801580
>>801572
>Поэтому в нормальных языках (e.g. Haskell)
Даже не начинай, не смешно уже.
> от этой хуйни plt компуктер-саентесты начинаются сраться под себя и могут еще в еблет прописать.
Своей маме они могут в еблет прописать, за то, что борщ не вовремя принесла.
>это вообще что-то совершенно новенькое.
ООП - это наследование+инкапсуляция+полиморфизм. Что тут специфично именно для ООП? Полиморфизм - разным бывает, инкапсуляция - даже в сишке есть, а вот наследование - это ООП-specific вещь, которая и отличает ООП от другой парадигмы. А калифорнийские пидорки типа Алана Кея могут и нахуй пойти - их заслуга только в том, что из этого штата слышно их говно и баззворды на весь мир. А ООП появилось и развивалось без них. Но ты предпочитаешь слушать пидорков и представлять, что они имеют какое-то отношение к тому ООП, которое мир пишет уже лет 40.
Аноним 20/07/16 Срд 21:02:34  801586
>>801393
>Разве в верблюде не петушат стейт?
По желанию, сугубо опционально, как и в скале.
Аноним 20/07/16 Срд 21:07:31  801591
>>801572
>Поэтому в нормальных языках (e.g. Haskell) никакого сабтайпинга нет
Сабтайпинга там нет, чтобы не превращать тайпчекер в пиздецому как в скале. И оверлоада функций там нет по той же причине - чтобы работал алгоритм W.
Аноним 20/07/16 Срд 21:13:13  801597
>>801580
>А калифорнийские пидорки типа Алана Кея могут и нахуй пойти
В смолтолке тоже есть наследование.
Аноним 20/07/16 Срд 21:37:00  801622
>>801597
Я про его определение ООП:

OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme LateBinding of all things.

Именно за это цепляются ФП-петушки, типа "аааа, а у вас есть стеееейт".
Аноним 20/07/16 Срд 21:43:07  801626
>>801622
Блядь, каким же надо быть ебланом, чтобы придираться к стейту. ООП бионическая парадигма, заимствованная у природки, у которой у любых форм жизни в башке - surprise! - есть стейт.

Другое дело, что многие черви-пидоры не умеют в messaging, заменяя его шаровой памятью, и закономерно огребая в итоге. Это да, беда-печаль.
Аноним 20/07/16 Срд 21:47:09  801627
>>801580
Дибилка не отличающая сабтайпинг и наследование учит жизни, спешите видеть.
>вот наследование - это ООП-specific вещь
Значит все остальное можно выкидывать нахуй? Смело.
Что скажешь на счет JS? Есть ли в нем ООП? Что на счет наследования/сабтайпинга?
Что на счет того что наследованию уже давно присматривают место на помоечке? Не слышал?
Аноним 20/07/16 Срд 21:57:10  801632
>>801586
>По желанию, сугубо опционально, как и в скале.
Только глядя на функцию нельзя сказать попетушила она стейт или нет и теряется вся прозрачность. Значит это творог подзалупный получается, а не ФП.
Это даже не говоря о том как простейший компрехеншен теряет у старого доброго цикла в производительности несколько порядков, потому что компилятор не осиливает.
>>801591
К тому же нет адекватной теории для этого дела. Это как если бы одно доказательство доказывало две теоремы - нонсенс. Хотя Одерски чего-то там пилит, посмотрим что получится у него.
Аноним 20/07/16 Срд 22:17:08  801655
>>801627
>Дибилка не отличающая сабтайпинг и наследование учит жизни, спешите видеть.
Вот сразу видно аутиста, пришедшего на борды посраться. Я тебя не оскорблял. Поэтому какой смысл тебя, говно, учить жизни, если что такое жизнь ты не понимаешь и никогда не поймешь?
>Значит все остальное можно выкидывать нахуй?
Л-о-г-и-к-а. Если то, что у тебя хуй делает тебя мужского пола, это не значит, что если вырвать у тебя сердце, ты будешь жить. Это не очевидно?
>Что скажешь на счет JS?
В JS все объекты имеют один и тот же тип, то есть отношение сабтайпинга ("If S is a subtype of T, the subtyping relation is often written S <: T, to mean that any term of type S can be safely used in a context where a term of type T is expected." - TAPL) выполняется автоматически.
>Что на счет того что наследованию уже давно присматривают место на помоечке?
Обосрался по теме - переходи к эмоциям.
Аноним 20/07/16 Срд 22:21:11  801656
>>801632
>Только глядя на функцию нельзя сказать попетушила она стейт или нет и теряется вся прозрачность.
Функциональные языки намного старше хаскелля. Дроч на стейт в типах - это дроч конкретных людей в академии, и от этого авторы Scala (которые не менее академичны) сознательно отказались. Это уже неинтересно, ну можно пихать IO везде, рассмотрели это, соснули и пошли дальше, и бомбит только аутистам, которым интересен контроль ВСЕГО в программе, независимо от сложности, вносимой этим контролем.
Аноним 20/07/16 Срд 22:47:21  801670
>>801632
>К тому же нет адекватной теории для этого дела.
Есть давно: http://users.cis.fiu.edu/~smithg/papers/thesis91.pdf но Хиндли-Милнер гораздо проще.
Аноним 20/07/16 Срд 22:50:57  801672
>>801632
>Только глядя на функцию нельзя сказать попетушила она стейт или нет и теряется вся прозрачность
Это детали реализации языка. Факт в том, что сабтайпинг и ФП вполне совместимы.
Аноним 20/07/16 Срд 23:00:24  801682
>>801655
Кажется эта дибилка порвалась. Отлично.
>Л-о-г-и-к-а
Попробуй применить ее. Если ты сам же пишешь
>ООП - это наследование+инкапсуляция+полиморфизм
а затем сам же выбрасываешь две другие компоненты как несущественные - то это уже у тебя проблема с головой.
>выполняется автоматически
Это типичный пустой аргумент. Так можно дойти и до ассемблер - ООП язык
>Обосрался по теме - переходи к эмоциям.
Про diamond problem почитай хоть, перестань уже позориться.
>>801656
>Scala
https://www.reddit.com/r/haskell/comments/1pjjy5/odersky_the_trouble_with_types_strange_loop_2013/cd3bgcu
>>801672
Как это ты перепрыгнул с иммутабельности на сабтайпинг? Не путай народ.
Аноним 20/07/16 Срд 23:10:41  801693
>>801682
>diamond problem
Хотя нет вообще то вот это по теме
https://en.wikipedia.org/wiki/Fragile_base_class
Но и про первое тоже можешь читнуть для развития.
Аноним 20/07/16 Срд 23:21:50  801702
>>801670
А в языках с зависимыми типами подобное есть? Просто на сколько я понимаю там отказались от этого понятия в принципе.
Аноним 20/07/16 Срд 23:42:21  801722
>>801682
>а затем сам же выбрасываешь две другие компоненты как несущественные
Раз старик закинул невод: "Что тут специфично именно для ООП? Полиморфизм - разным бывает, инкапсуляция - даже в сишке есть".
Два старик закинул невод: Если то, что у тебя хуй делает тебя мужского пола, это не значит, что если вырвать у тебя сердце, ты будешь жить.

И тут ты опять расписался в своем неумении читать. Объясняю ТРЕТИЙ раз: все три элемента являются необходимыми для ООП, но специфичной вещью (отличающий ООП от других парадигм) является только наследование. Полиморфизм и инкапсуляция есть и в других парадигмах.

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

>Про diamond problem почитай хоть, перестань уже позориться.
Я лучше прочитаю про existential typeclass antipattern и подумаю, какого хуя нужно было наворачивать столько говна в такой простой задаче, как статическая типизация собственного кода.
Аноним 21/07/16 Чтв 00:02:13  801734
>>801702
>А в языках с зависимыми типами подобное есть?
Нет. Там применимость типа доказывается тьюринг полным языком, а не выводятся тайп чекером.
Аноним 21/07/16 Чтв 00:04:51  801735
>>801682
>Как это ты перепрыгнул с иммутабельности на сабтайпинг?
В результате дискуссии. Ты за тредом следишь вообще?
>>801340
>Поясните мне как конченые долбоебые все время кукарекают как ООП и ФП можно совмещать, когда вся суть второго в неизменяемом стейте, а первое - в петушении инкапсулированных кусков стейта?
Аноним 21/07/16 Чтв 00:06:39  801737
>>801682
>Про diamond problem почитай хоть
Diamond problem - это деталь реализации языка. В С++ ты разруливаешь вручную, а, например, в скале четкие правила порядка наследования, и никаких diamond problem.
Аноним 21/07/16 Чтв 01:27:53  801769
>>801722
Ну ты и мразь тупая
>все три элемента являются необходимыми для ООП
вот же оно. Если нет инкапсуляции значит нет и ООП. До этого тебя хватает? Или совсем никак? Какая-то особая дибилка-логика? Что такое необходимое и что такое достаточно ты понимаешь или еще не проходили?
>Нельзя, из определения ООП.
Включаю твою дибилко-логику: в ассемблере все есть байт -> значит есть сабтайпинг -> значит это ООП. Чтд - дибилко-логика не работает, нужно пользоваться нормальной.
>>801735
И где же в дискуссии эти два понятия приравнивались. Я конечно понимаю что тут есть один еблан не способный наследование от сабтайпинга отличить, но путать иммутабильность и сабтайпинг - это уже совершенно новый уровень ебанутости.
>>801734
Очень странный и бессмысленный набор слов. Тип терма проверяется тайпчекером, при этом возможны (хотя тут я не уверен, зависит от обстоятельств) произвольные вычисления. Но что тогда получается на счет понятия подтипа? Непонятно.
>>801737
Что на счет fragile base class тогда?
Аноним 21/07/16 Чтв 01:36:52  801775
>>801735
Разъясню еще немного
> Факт в том, что сабтайпинг и ФП вполне совместимы.
С этим утверждением я даже не спорю. Только
1) сабтайпинг - тупик и нахуй не нужен
2) сабтайпинг, чтобы тут не кукарекали клоуны, не является определяющим свойством ООП. Это очевидно если посмотреть на любой динамический язык.
А главное в ООП - это инкапсулированное мутабельное состояние. Что ну никак не укладывается в иммутабельное ФП.
Аноним 21/07/16 Чтв 07:51:13  801829
>>801627
>>вот наследование - это ООП-specific вещь
>Значит все остальное можно выкидывать нахуй? Смело.

>T = X + Y + Z, X и Y много где есть, но Z - специфично для T.
>Значит можно выкинуть X и Y?
Ебать ты дебил. Почитай про логику, сынок и по упражняйся в ее применении. А то совсем плохо.
Аноним 21/07/16 Чтв 08:27:32  801839
>>801370
>надо к дизайну разумно подходить
Код получен от разных людей. Они работали над разными проектами. Компьютер с исходниками сгорел (буквально). Разработчики умерли. Всё, что у тебя есть - этот интерфейс. ООП - это легкое переиспользование кода же. Переиспользуй.
>setWriterBuffer
А теперь то же самое для ридера. Я пока промолчу, что это через жопу и не совсем то наследование, о котором выше говорилось.
Аноним 21/07/16 Чтв 08:50:52  801850
>>801775
>А главное в ООП - это инкапсулированное мутабельное состояние
Не тред, а сборище охуительнейших историй.
Аноним 21/07/16 Чтв 08:57:50  801854
>>800122
Чем шарик лучше?
Аноним 21/07/16 Чтв 10:06:39  801897
>>801839
>Код получен от разных людей. Они работали над разными проектами.
Это уже не проблема языка, сам понимаешь.
>Я пока промолчу, что это через жопу и не совсем то наследование
Если тебе нужно то наследование, то ты класс-потомок кастишь к ридеру-райтеру в месте вызова, и компилятор так находит нужный метод.
Аноним 21/07/16 Чтв 10:10:11  801902
>>801775
>не является определяющим свойством ООП
Потому что у ООП нет четкого определения. Это расплывчатое понятие, под которое можно подогнать что угодно.
Аноним 21/07/16 Чтв 10:30:37  801913
>>801769
>Непонятно
Тайп чекер-инферер - это готовая программа для доказательства, в которую подставляются факты-типы, и она на основании их вычисляет применимость типа. В языках с зависимыми типами такое невозможно, универсальный тайп чекер не напишешь. Поэтому типы там записываются на особом тьюринг-полном языке, и текст прогрмаммы является ее собственным тайп-чекером.
Аноним 21/07/16 Чтв 11:01:34  801930
>>801897
>Это уже не проблема языка
А при чём тут язык? О нём и разговора не было.
>класс-потомок кастишь к ридеру-райтеру в месте вызова
Ну напиши это. Только помни, что код получен из разных источников, сорцов у тебя нет, и ты уже отнаследовался от райтера.
Аноним 21/07/16 Чтв 11:42:36  801973
>>801775
>А главное в ООП - это инкапсулированное мутабельное состояние. Что ну никак не укладывается в иммутабельное ФП.
Оба утверждения - хуита.
См. >>794982.
Под идиотским способом переиспользования кода я как раз и имел в виду наследование.
Аноним 21/07/16 Чтв 12:13:31  801992
>>801930
Ну напиши это.
http://ideone.com/uDsHaT
Аноним 21/07/16 Чтв 12:17:19  801996
>>801913
> Поэтому типы там записываются на особом тьюринг-полном языке
На всё том же языке программирования, так как термы это тоже типы.
> тьюринг-полном языке
В большинстве случаев не тьюринг-полном.
Аноним 21/07/16 Чтв 13:06:57  802042
>>801992
Какое охуенное наследование. А что, в крестах специального оператора для этого нет, что ты такие пляски устраиваешь?
Аноним 21/07/16 Чтв 13:12:56  802050
>>802042
>Какое охуенное наследование
Нормальное наследование, не понимаю, что тебя не устраивает. Если нет имплисит кастов в языке, придется явно композицию использовать, конечно.
Аноним 21/07/16 Чтв 13:34:27  802066
>>802050
Я тебя пытаюсь плавно подвести к тому, что все эти разрекламированные фичи ооп на самом деле не работают на практике, но ты всеми силами стараешься этого не понимать.
Кресты, вроде бы, ооп, в крестах, вроде бы, есть множественное наследование, а ты всё равно устроил танцы с бубном в жопе ради такой простой задачи из учебника для десятиклассников. Кому-то на этом месте должно быть стыдно.
Аноним 21/07/16 Чтв 13:40:57  802079
>>801829
Это была логика дибилки, так что все претензии к нему. Следи внимательнее за дискуссией няша.
>>801850
Проблемы? Выкладывай свое определение.
>>801973
Значит ты согласен с тем что понятия ООП и ФП не совместимы? Собственно чтд.
Аноним 21/07/16 Чтв 13:41:15  802081
>>801913
Каша
>>801996
>термы это тоже типы
Что простите?

Вопрос о возможности введения понятия подтипа в языках с зависимыми типами оставляю открытым для всех желающих.
Аноним 21/07/16 Чтв 14:01:22  802099
>>802066
>что все эти разрекламированные фичи ооп на самом деле не работают на практике
Работают же.
>крестах, вроде бы, есть множественное наследование
Вопрос был как без множественного наследования сделать, если ты за тредом следишь. Тебе сказали как - композицией или имплисит кастами.
Аноним 21/07/16 Чтв 14:18:24  802114
>>802099
Нет, дружок. Вопрос был: "от чего насдедоваться", на что было отвечено "от обоих". А ты не отнаследовался вообще ни от чего, ты создал независимый третий (а так же четвёртый и пятый) объект, в который запихнул два изначальных. Просто замечательная парадигма, которой для того, чтобы работать, нужно, чтобы её концепциями не пользовались.
>Работают же.
Ага, охуенно просто работают.
Аноним 21/07/16 Чтв 16:46:16  802213
>>802114
> А ты не отнаследовался вообще ни от чего, ты создал независимый третий
Внутри которого и отнаследовался от чего нужно. Композиция с небольшим сахаром. В шарпе можно то же самое сделать.
>Ага, охуенно просто работают
Охуенно или нет, второй вопрос. Проблемы которые ООП создает, можно с его помощью же и решить, пусть и тяжеловесно.
Аноним 21/07/16 Чтв 17:46:56  802245
>>802079
>Значит ты согласен с тем что понятия ООП и ФП не совместимы? Собственно чтд.
Не могу сказать что согласен, зависит от определения ООП. Если это "современное классическое" ООП, как в C++, Java etc, по совместимо. Если старое "объекты со стейтом и сообщения", как в Smalltalk/современных Actor System (только с аккой работал, про другие не могу говорить подробно), то не совместимо.
>Проблемы? Выкладывай свое определение.
Это способ думать о программах как о наборе, хм, объектов, которые общаются друг с другом. Вот такая вот гуманитарная поебень.
Аноним 21/07/16 Чтв 18:55:34  802266
14691165347540.jpg (31Кб, 570x250)
>>802245
Аноним 21/07/16 Чтв 20:05:44  802302
14691207450700.png (28Кб, 259x194)
>>797030
> Вот не знаю как в других функциональных языках программирования, но в Haskell, по моему опыту, всё выражается через типы прежде всего.

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

Это мой личный опыт, если че. Понятное дело, что у "всех нормальных людей" (ц) (р) (тм) таких проблем нет.

> Вообще там самое главное это не просто функции, а удобство моделирования данных.
Любой язык программирования строит расчетную модель прикладной задачи, так что это не только в хачкеле.
> Ну ты сравнил, в JS полно особенностей, там quirk на quirk-е, quirk-ом подгоняет
И все равно конструкции ;(function () {})(); запутывают новичков. namespace {} было бы понятнее.
>>801655
>В JS все объекты имеют один и тот же тип
Допустим, есть множество объектов T, описание которых в исходном коде занимает не ноль байт. Тогда все сущности в хачкеле принадлежат к одному типу Т и могут быть все между собой безопасно использованы один вместо другого. Таким образом тип Т не нужен и может быть опущен => хачкель - бестиповой язык (могилка).
Аноним 21/07/16 Чтв 20:14:22  802308
>>797110
Это такое тонкое признание в девственности?
Аноним 21/07/16 Чтв 20:31:54  802317
>>801722
> все три элемента являются необходимыми для ООП
Но ведь в тайпклассах тоже есть сорт оф наследование.

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

Я вот держусь такого определения ООП (Алан Кеевского по-моему), что это инкапсуляция стейта + мессаджинг. Чтобы только сам объект менял свой стейт, потому что только он лучше всех разбирается, как его стейт внутри устроен. А инстанциация конструкторами - это типа как нуль в моноиде. Вроде ничего так пока, быдло очень боится.
Аноним 21/07/16 Чтв 20:39:12  802318
>>802302
Проигрываю с этого персонажа, который постит Люси. Шизофреник высирает какие-то простыни банальной философии под водочку, а его просто игнорируют.
Аноним 21/07/16 Чтв 20:48:22  802323
>>801580
> А калифорнийские пидорки типа Алана Кея могут и нахуй пойти - их заслуга только в том, что из этого штата слышно их говно и баззворды на весь мир. А ООП появилось и развивалось без них. Но ты предпочитаешь слушать пидорков и представлять, что они имеют какое-то отношение к тому ООП, которое мир пишет уже лет 40.
Да ну загонять. Как вы стейт с сообщениями писали, так и пишете, только обвесились нашлепками для переиспользвоания знаний в виде статической типизации, дженериков, интерфейсов, наследования. А поверх этого всего подключаете какую-нибудь rabbitmq и обзываете это архитектурой.

Пишет один студент курсач, мутно и без конкретики, в ссылках у него http://google.com - вот так полиморфизм. Скачивает другой студент курсач, исправляет там свое ФИО и распечатывает - наследование в чистом виде. А потом оба приходят на работку и делают то же самое с бородой и умным видом. История успеха парадигмы ООП.
Аноним 21/07/16 Чтв 20:54:06  802325
>>802318
C подливой проигрываешь или без? Это важно.
Аноним 21/07/16 Чтв 21:03:16  802329
>>802325
Просто кекаю немношк. Иногда еще пускаю шептуна.
Аноним 21/07/16 Чтв 21:04:28  802330
>>802329
Ну тогда ок.
Аноним 21/07/16 Чтв 22:51:48  802394
>>802245
>совместимо
ДА КАК БЛЯДЬ?!
Полтреда макаю совместимо-петушков в говно и все никак они не уймутся. И в следующем же подобном обсуждении наверняка такой петушок снова выпрыгнет из первых рядов с криком - да вы жи ничиго нипонимаите! онисовместимы!!111 все можно!!!!
Аноним 22/07/16 Птн 03:36:14  802520
>>801769
>вот же оно. Если нет инкапсуляции значит нет и ООП.
Из этого не следует, что инкапсуляция специфична для ООП. Она в любом языке с модулями есть. Наследование - специфично, инкапсуляция - нет. То, что у тебя есть сердце и печень не делает тебя женщиной, а пизда делает (и, прикинь, нет печени, нет и женщины).
>Включаю твою дибилко-логику
Ты для начала предыдущее осиль.
Аноним 22/07/16 Птн 03:51:45  802524
>>802317
>Но ведь в тайпклассах тоже есть сорт оф наследование.
Здесь нужно define наследование, которое в случае ООП и тайпклассов будет определяться сильно по-разному, а суть-то не в этом.
>Я вот держусь такого определения ООП (Алан Кеевского по-моему), что это инкапсуляция стейта + мессаджинг. Чтобы только сам объект менял свой стейт, потому что только он лучше всех разбирается, как его стейт внутри устроен.
Смотри на вики статью actor model: The actor model in computer science is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent computation. In response to a message that it receives, an actor can: make local decisions, create more actors, send more messages, and determine how to respond to the next message received. Actors may modify private state, but can only affect each other through messages (avoiding the need for any locks). (чесслово, я это написал до того, как выше увидел что кто-то сослался на нее же).
Ровно то, что ты описываешь. Только это не ООП. Алан Кей не придумывал симулы, С++ и Java, он придумал термин, который пошел в индустрию только из-за его географического положения в центре ИТ-мира. В самом термине же другое наполнение буквально с его рождения.

А потом какие-то ... берут кеевское определение и открывают для себя, что ФП и ООП не совместимы. Хотя они нормально совместимы. Причем не только ООП совместимо с отсутствием стейта (т.е. когда у тебя объекты, имеющие только конструкторы и const-методы), но ФП совместимо с его наличием (причем и без анального IO-контроля).
Аноним 22/07/16 Птн 04:15:34  802526
>>801329
>где-то мы это уже видели? подсказка: Haskell
Хаскель не может в сабтайпинг, поэтому не может и в человеческую гетерогенность (только в пердолинг экзистенциальными типами), поэтому мимо.
Аноним 22/07/16 Птн 07:56:59  802550
14691634201480.jpg (40Кб, 500x322)
>>802524
> Смотри на вики статью actor model
Не убедил. Это не ровно то, что я описываю, т.к. в моем описании нет ни слова про конкурентность. Акторы же - это как раз модель конкурентности для ооп, объектики, каждый из которых живет в своем потоке. Частный случай ооп, в котором инкапсуляция используется для организации корректного асинхронного взаимодействия.

> Причем не только ООП совместимо с отсутствием стейта (т.е. когда у тебя объекты, имеющие только конструкторы и const-методы), но ФП совместимо с его наличием (причем и без анального IO-контроля).

Двачую. Но в криках о несовместимости кеевское определение не виновато, виноваты участники дискуссии под ооп понимающие непонятно что, а под фп обязательную ссылочную прозрачность и наличие еба-тайпчекера, что вообще мало с чем совместимо.
Аноним 22/07/16 Птн 10:32:22  802592
>>802394
Не уверен что ты понял что я написал. Перечитай еще раз.
>>802550
>под ооп понимающие непонятно что
Это и есть непонятно что, нет формального определения ООП. Неформальное я дал, но оно слишком общее и относится скорее к философии програмирования, а не к инженерным практикам.
>а под фп обязательную ссылочную прозрачность и наличие еба-тайпчекера, что вообще мало с чем совместимо.
Тайп чекер не обязателен, а без ссылочной прозрачности само понятие функции, а значит и ФП, не имеет смысла.
Аноним 22/07/16 Птн 20:21:55  802897
>>793984
print('Modified on {}'.format(time.ctime(op.getmtime(path))))

print .. 'Modified on {}'.format .. time.ctime .. op.getmtime .. path

Прикольно. Звоните Гвиде
Аноним 23/07/16 Суб 14:01:23  803426
>>793846
Прогрессив-морфизм
Вапор-морфизм
Блэк-морфизм
Дум-морфизм
Павер-морфизм

Золотце, вернись!

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 237 | 13 | 60
Назад Вверх Каталог Обновить

Топ тредов