Главная Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски

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

Check this out!


<<
Назад | Вниз | Обновить тред | Автообновление
104 | 6 | 38

OOP vs. FP Аноним # OP  04/02/18 Вск 06:39:55  1131876  
KaijuAddicts-Xp[...].jpg (197Кб, 1400x886)
Настала пора наконец выяснить, кто засоряет программистскую практику. Кого следует выкинуть на мороз? Кто слабое звено?
Предыдущим тредом считается этот https://2ch.hk/pr/res/1084449.html
Аноним 05/02/18 Пнд 11:40:02  1132721
Блять. Конечно же фп.
Аноним 05/02/18 Пнд 12:35:45  1132752
>>1131876 (OP)

Почему у Змей Горыныча два хвоста?
Аноним 05/02/18 Пнд 12:39:05  1132756
>>1132752
Кинг Гидора - из трёх динозавров.
Аноним 05/02/18 Пнд 12:41:18  1132758
>>1132752
Изначально хотели один, но забыли добавить шип на конце, пришлось полностью скопировать и прихуйчить новый с шипом. Зато чисто и безопасно!
Аноним 05/02/18 Пнд 12:42:13  1132760
>>1132756
Инкапсуляция, наследование, полиморфизм?
Аноним 05/02/18 Пнд 12:53:49  1132767

>>1131876 (OP)
> Настала пора наконец выяснить, кто засоряет программистскую практику. Кого следует выкинуть на мороз? Кто слабое звено?

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

Производительность железа уже уперлась в технологический предел, дальше будет только хуже. Для абстракциеблядей, ramischeap'ов и прочих "4гб оперативы для простого калькулятора - это норма" наступают хуевые времена.

А дальше пойдет виртуальная и дополненная реальность, где требования по ресурсам в сравнении даже с илита-гейдевом увеличатся раз так в 5. И тут байтоебы будут востребованы, потмоу что у них будет реалистичная графика как в фильмах, а у абстракциоблядей будет мыльный графон как на PS1/PS2, жрущий 128 GBRAM и загружающий всю серверную стойку по максимуму.

Сперва к абстракциопидорам будут все чаще и чаще возникать вопросы по производительности и отклику - ведь для блядей перестанут выпускать каждый год новый штеуд чтобы их говноабстракции не тормозили. Затем возникнет дефицит (уже возникает) на минимально-шарящих бородатых байтоебов, которые хотя бы насчет кеша и Data Oriented Design в курсе. Далее, рынок разочаруется в "да нахуй байты полгода ебать вот я схуяк-схуякнул на фабрике фабрик и в релиз" - потому что у байтоебов - вр-приложения как в реальной жизни, а у абстракциоблядей - мыльцо с буратинами.

И дальше, всех абстракциоблядей вместе с их фреймворками повыпинывают хуем под сраку.

Аноним 05/02/18 Пнд 13:01:43  1132775
>>1132767
Байтослесарь бомбанул. Что, работу не можешь найти?
Аноним 05/02/18 Пнд 13:05:34  1132780
>>1132767
>мыльный графон как на PS1/PS2, жрущий 128 GBRAM и загружающий всю серверную стойку по максимуму.
Маркетологи объяснят быдлу что только выиграли - и все.
>реалистичная графика как в фильмах
НИНУЖНО
Аноним 05/02/18 Пнд 13:09:08  1132783
>>1132767
А веб полностью исчезнет.
Аноним 05/02/18 Пнд 13:09:48  1132784
>>1132780
>Маркетологи объяснят быдлу что только выиграли - и все.

Неа. Не обьяснят. Все хотят графен и комфортный вр. Уже который по счету говношлем проебался по причине низкого разрешения, а окулус все так и вовсе в продакшн не пустили.
Аноним 05/02/18 Пнд 13:11:10  1132786
>>1132783
>А веб полностью исчезнет.

Уже к бинарному http/2 завезли wasm. Скриптоблядство медленно и верно уничтожают.
Аноним 05/02/18 Пнд 13:11:56  1132787
>>1132784
>Все хотят
Быдло хочет то что ему положено хотеть - айфон, приставку, путина, и так далее.
Аноним 05/02/18 Пнд 13:16:54  1132791
>>1132786
Нахуя писать на wasmе что-то кроме высоконагруженной хуиты?
Аноним 05/02/18 Пнд 13:38:42  1132797
>>1132767
Лол, два чая этому просвещенному. На самом деле, конечно, на байтоебов спрос увеличится, но в рамках рыночка целиком это заметно особо не будет. Только не забывай, что тот же раст с его zero-cost abstractions - это таки по духу функциональный язык, хоть и для байтоебства.
Аноним 05/02/18 Пнд 13:39:44  1132798
>>1132791
Идея васма в том, что можно будет писать на всяких говнопитонах без написания питон->жс компиляторов.
Аноним 05/02/18 Пнд 13:51:41  1132805
>>1132721
Не понял. Ты чьих будешь? "Чей холоп?" - Спрашиваю. Из вменяемых людей или из секты ООП-ущенных?
Аноним 05/02/18 Пнд 14:06:35  1132817
>>1132805
Применяю все парадигмы исходя из задачи.
Аноним 05/02/18 Пнд 14:07:48  1132818
>>1132798
А зачем это?
Аноним 05/02/18 Пнд 14:48:48  1132868
>>1132818
Чтобы писать на всяких говнопитонах без написания питон->жс компиляторов.
Аноним 05/02/18 Пнд 14:49:33  1132869
>>1131876 (OP)
Кстати, ООП критиковалось много когда и много кем вдумчиво и конструктивно, а вот разумной критики ФП никогда не встречал.
Аноним 05/02/18 Пнд 15:16:23  1132885
>>1132869

Проблема ФП в компиляторе, не могущем в оптимизации при том что чистофп код со строгой типизацией быстрее плюсошаблонов должен быть.
Аноним 05/02/18 Пнд 15:20:19  1132888
>>1132885

То есть в банальной ситуации, когда компилятор понимает буквально и по всем фпшным канонам каждую итерацию в памяти реально грохается весь мир и реально конструируется новый. В крупных проектах (типа там у тебя загрузилось 100000 записей из БД, ты проапдейтил одну - создалось еще 100000 записей) или там (убийца гта5 - куча обьектов, передвинул одну машину - нужно весь мир грохнуть и собрать завново) это просто перестает работать.
Аноним 05/02/18 Пнд 15:29:01  1132892
>>1132868
Но ты же сказал
>Скриптоблядство медленно и верно уничтожают
питон = скриптоблядство
Аноним 05/02/18 Пнд 15:30:27  1132893
>>1132885
А теперь посмотри на Rust.
Аноним 05/02/18 Пнд 15:34:19  1132897
>>1132893

Раст все же не такой клевый как хаскел. Там все равно мультипарадигма во все поля.
Аноним 05/02/18 Пнд 15:55:37  1132906
>>1132888
Я ничего не понял.
Аноним 05/02/18 Пнд 18:06:56  1133005
>>1132888
Дебил малолетний, съеби уже с этого раздела.
Аноним 05/02/18 Пнд 18:07:16  1133006
>>1132892
Это не я сказал.
Аноним 14/03/18 Срд 16:10:06  1155623
Объясните тупому, что такое ооп в правильном понимании? Это как в Java/c++ или смолтолк (ерлангг...)?
Аноним 14/03/18 Срд 16:24:59  1155631
15106927954080.png (121Кб, 736x736)
>>1155623
Аноним 29/04/18 Вск 15:44:37  1181583
Бамп, на всякий случай.
Аноним 29/04/18 Вск 15:48:51  1181588
>>1155623
Это тайпклассы в Haskell.
Аноним 29/04/18 Вск 16:03:40  1181600
>>1181588
>тайпклассы в Haskell
Не нужны, вроде.
Аноним 01/05/18 Втр 00:47:42  1182374
>>1181600
Самое годное популярное решение Expression problem.
Многие Современные™ языки заимствуют их (Rust, Swift, Clojure, Scala) или планируют (OCaml)
Аноним 01/05/18 Втр 09:42:37  1182426
>>1182374
>популярное
Как что-то хорошее.
Аноним 01/05/18 Втр 09:46:08  1182428
>>1132767
Переведут VR в клаудкампутинг, амазон будет брать бешеные деньги с VR-даунов, а им и нормально, будут чувствовать себя илитой.
Не шаришь ты в рыночке.
Аноним 01/05/18 Втр 15:36:36  1182607
>>1182374
Тащем-та протоколы в кложе != тайпклассы в хаскеле. Протоколы ты можешь прям в рантайме расширять и специализировать, и он тебе скомпилит прям сразу нужный байткод и всунет его в жвм.
Аноним 01/05/18 Втр 15:37:33  1182608
>>1182374
>планируют (OCaml)
Алсо, можно ссылку?
Аноним 01/05/18 Втр 15:39:24  1182611
>>1131876 (OP)
1111
Аноним 01/05/18 Втр 16:28:31  1182638
>>1182608
https://arxiv.org/pdf/1512.01895.pdf
Аноним 01/05/18 Втр 16:35:25  1182639
>>1182426
Да, это важно. Иначе лично ты, сможешь использовать что-то только для фана, но не настоящей работе.
Аноним 01/05/18 Втр 17:01:20  1182667
>>1182639
"Настоящие работяги"(TM) у вас в авторитете? Всем - по шконкам! Сейчас они нам расскажут, с какой ноги в хату заходить.
Аноним 01/05/18 Втр 17:15:30  1182681
>>1182667
Нет, просто вот https://youtu.be/zt0OQb1DBko?t=31m1s
Аноним 01/05/18 Втр 17:16:50  1182683
>>1182681
самофикс
Смысл в таймере, под ссылкой, цитата:

People keep saying that like learning programming languages makes you a better programmer. It really doesn't. It makes you a better programmer up to a point, then it makes you bitter and dissatisfied because you will never be able to port those ideas to your day job.
Аноним 01/05/18 Втр 17:26:51  1182691
>>1182683
Так ото ж. Мораль для переживающих об эффективной самоутилизации.
Аноним 01/05/18 Втр 17:43:23  1182698
>>1182691
Если бы у тебя второй день было нечего жрать, ты бы тоже об этом думал
Аноним 01/05/18 Втр 17:54:32  1182703
>>1182638
Спасибо, абстракт выглядит оче годно, почитаю.
Аноним 01/05/18 Втр 17:55:53  1182704
>>1182698
"Поможем тайпклассами голодающим программистам!"
Аноним 04/05/18 Птн 22:05:54  1184325
>>1155623
ООП - НЕ парадигма программирования. Парадигм программирования всего три. Подробнее здесь: http://wiki.c2.com/?ThereAreExactlyThreeParadigms.

То что подразумевают под ООП в современном мейнстримном виде (как в плюсах, джаве, питоне и т.д.) - не более чем тривиальная надстройка над старыми добрыми структурами, процедурами и указателями на процедуры. Об этом Вирт, Кей и другие говорили еще в 80-е, наверное.

ООП - определенный способ представления программы в голове, а следовательно и способ её структурирования в тексте. Именно его имел в виду Кей, в нем, как ни странно, суть Actor Model, а значит Эрланга и Акки, и во многом именно о нем пишет небезызвестный Егор Бугаенко (http://www.yegor256.com/tag/oop.html) с чьими тезисами можно быть более или менее согласным, но как минимум познакомиться стоит. Можно сказать что такой подход это гуманитарщина, и быть при этом правым, но не нужно забывать что программы в первую очередь пишутся для людей, а значит способ их изложения и понимания имеет значение. Насколько легко представлять программу как множество объектов, взаимодействующих друг с другом - другой вопрос. Возможно другие способы эффективнее, возможно это вообще индивидуально.

По моему опыту ООП это способ структурирования именно императивных программ. Дело в том что я видел ОО-код на С, видел процедурный код на питоне с джавой, но никогда не видел ОО програм на функциональных языках. Наверное это из-за того что объекты почти всегда инкапсулируют какое-то мутабельное состояние, иначе они превращаются просто в (параметризируемые) модули, а состояние в ФЯ обычно скрывается и обрабатывается не так, как и императивных.
Аноним 04/05/18 Птн 22:22:02  1184330
>>1184325
Чаю этому господину, расписал наигоднейше.
Аноним 05/05/18 Суб 03:05:08  1184419
>>1184325
>программы в первую очередь пишутся для людей, а значит способ их изложения и понимания имеет значение
Пишутся для компетентных людей. Ублажив чужую глупость, мы теперь имеем всё это мракобесие.
Аноним 05/05/18 Суб 03:12:08  1184422
frame-1.jpg (24Кб, 320x240)
>>1131876 (OP)
По сути это равнозначные вещи, с появлением монад и алгебраических эффектов в функциональных языках и wp, триплетов хоара в императивных, парадигмы движутся к синкретизму.

Конечно, фп языки лучше, так как находятся на грани прогресса (в них лучше системы типов, языки имеют глубокий бэкграунд, за счет чего просы и консистентны, а не являются набором криво слепленных фич), ооп лучше наличием библиотек и проч. Разницы большой нет, в общем, зависит от стиля мышления.
Аноним 05/05/18 Суб 09:31:32  1184445
1518210233750.jpg (57Кб, 500x375)
А Лишп функциональщина или нет?
А то некоторые адепты Х-ля утверждают, что нет.
Аноним 05/05/18 Суб 13:20:31  1184500
a572a88bfcee15c[...].jpg (317Кб, 736x728)
>>1184445
Лисп мультипарадигменный, как C++.
Аноним 05/05/18 Суб 17:31:34  1184614
>>1184445
https://en.wikipedia.org/wiki/Lisp_(programming_language)
>Lisp (historically, LISP) is a family of computer programming languages with a long history and a distinctive, fully parenthesized prefix notation.[3] Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today.

Ты про тот самый, 58-го года? Тогда и слов-то таких не было.
Аноним 05/05/18 Суб 18:50:25  1184653
>>1184614
Щас бы к словам придираться на пустом месте.
Я про CL и R5RS.
Аноним 05/05/18 Суб 19:01:18  1184663
>>1184653
>CL и R5RS.
Нормальный такой разброс.
Аноним 05/05/18 Суб 19:26:23  1184675
>>1132767
VR-игры по 10 000 рублей?
Такое фотореалистичное говно себя даже не окупит
Аноним 05/05/18 Суб 19:29:06  1184678
>>1132869
Потому что ФП - это Неуловимый Джо
Аноним 05/05/18 Суб 19:41:38  1184688
>>1184678
Как там в 90-ых?
Аноним 05/05/18 Суб 20:04:29  1184702
>>1132767
Где таких-же единомышлеников найти? Заебали виртуалочкомрази, скриптомразота и прочее.
Аноним 05/05/18 Суб 20:09:49  1184706
>>1182428
Клаудкомпутинг к тому времени в концлагерях будет виртуалочки разворачиват.
Аноним 05/05/18 Суб 22:25:34  1184818
1518203397397.jpg (142Кб, 440x660)
>>1184663
Хорошо, скажи, пожалуйста, как наличие единого или двух разных пространств имён для функций и переменных играет важную роль.
Аноним 05/05/18 Суб 23:01:10  1184837
>>1184818
Ээ... по-твоему это единственное, что отличает эти два языка? испанскийстыд
Аноним 05/05/18 Суб 23:02:48  1184838
>>1184837
По-моему это единственное, что различает два этих языка.
Аноним 05/05/18 Суб 23:09:03  1184844
>>1184838
Из этого тривиально следует, что ты не знаком с двумя этими языками, а потому продолжать этот разговор нет никакого смысла. Спокойной ночи.
Аноним 06/05/18 Вск 01:10:17  1184874
>>1184844
>Из этого тривиально следует
Из этого тривиально следует, что ты не разбирающийся в этих двух языках демагог.
Аноним 06/05/18 Вск 16:55:55  1185199
>>1184874
Он прав, схема и борщелисп - два разных языка, у которых общие только скобочки. CL -- алгол со скобочками, макросами, императивщиной и мутабельностью во все поля, CLOS, динамическим скоупингом.

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

Эти два языка по сути как жаба и SML, абсолютно разные.
Аноним 06/05/18 Вск 18:38:26  1185279
>>1185199
>преимущественно иммутабельностью
Ну, вот тут я все-таки немного не соглашусь. На шкале иммутабельности кложа-схема-кл схемка как раз посерединке. По современным меркам ее все-таки преимущественно иммутабельной язык назвать уже как-то не поворачивается.

>>1184844-кун
Аноним 09/05/18 Срд 07:49:02  1186645
>>1184702
Ну здеся я
Аноним 10/05/18 Чтв 03:22:47  1187415
Вот у императивщиков Си является байтоёбским языком.
А что является аналогом байтоёбского языка у функциональщиков?
Аноним 10/05/18 Чтв 08:27:13  1187466
>>1187415
Не знаю, что ты имеешь в виду.
Один из самых примитивных среди аппликативных языков - Unlambda.
Аноним 10/05/18 Чтв 09:06:05  1187475
>>1187415
Lambda calculus или если байтоёбство буквально — Rust, ATS
Аноним 10/05/18 Чтв 10:38:55  1187499
>>1187415
> Вот у императивщиков Си является байтоёбским языком.

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

Вообще тру-байтоебских языков, кроме разве что ассемблера, - нет, есть лишь сорта говна "меньше блотваре - больше выстрелов в ногу" и "меньше выстрелов в ногу - жирнее блоатваре, топовей Core i7 и 64GB RAM минималочки".

> Rust, ATS

Опять же, позерская стрельба по ногам ради стрельбы по ногам без ассемблера.

У меня по-прежнему бугурт - почему ни в одном из языков не сделают как в SBCL - где есть рантайм, но когда нужно странного или скажем написать OS - то ты просто пишешь код, который переопределяет кишочки этого самого рантайма, или, скажем JIT-компилятора.
Аноним 10/05/18 Чтв 14:58:34  1187666
>>1187499
Forth же.
Аноним 10/05/18 Чтв 21:12:01  1187928
>>1187499
В Сишку можно встроить ассемблерные функции отдельным файлом, а высокоуровневые няшки которые выполняются 10% времени лепить на сишке.
Аноним 10/05/18 Чтв 21:23:45  1187940
А какие языки функциональные и какие нет?
Вот могу я в ЖСе функции пихать как аргументы, ЖС функциональный язык или нет?
Где можно почитать о положениях функционального программирования?
Аноним 10/05/18 Чтв 21:57:09  1187970
>>1187940
> А какие языки функциональные и какие нет?
Те, в которых есть полноценная лексическая видимость и иммутабельность предпочитается мутабельности - функциональные.

>Вот могу я в ЖСе функции пихать как аргументы, ЖС функциональный язык или нет?
На жс можно писать код в функциональном стиле.

>Где можно почитать о положениях функционального программирования?
https://en.wikipedia.org/wiki/Functional_programming
Аноним 10/05/18 Чтв 22:20:48  1187987
>>1187940
И в сишке можно функции как аргументы передать, и в ассемблере.
Аноним 10/05/18 Чтв 22:49:02  1187998
>>1187940
>Где можно почитать о положениях функционального программирования?
http://www.fprog.ru
Аноним 10/05/18 Чтв 22:57:22  1188003
>>1187998
>Срок регистрации домена FPROG.RU закончился
Аноним 11/05/18 Птн 07:59:57  1188091
>>1187940
Как определишь, так и будет.
Аноним 11/05/18 Птн 20:46:17  1188399
>>1187987
В ассемблере как?
Аноним 13/05/18 Вск 11:38:23  1189017
>>1187940
JS — наверное самый большой оплот функционального программирования.
Аноним 13/05/18 Вск 18:45:07  1189261
>>1187499
> Опять же, позерская стрельба по ногам ради стрельбы по ногам без ассемблера.

Там как раз все продуманно, чтобы не стрелять в ноги
Аноним 14/05/18 Пнд 23:35:45  1189971
>>1188399
Так же, как и в Сишке.
Два указателя: на код и на данные для него (т.н. контекст).
Аноним 12/07/18 Чтв 07:40:16  1226506
>>1187940
Для чистого ФП определяющим является referential transparency.
Аноним 12/07/18 Чтв 09:26:37  1226528
>>1187666
>же Forth
Пофиксил
Аноним 12/07/18 Чтв 10:16:46  1226549
>>1226506
Такое есть в JS?
Аноним 12/07/18 Чтв 18:58:29  1226788
>>1226549
chot proigral
Аноним 13/07/18 Птн 12:07:06  1227144
>>1226788
Ну я, правда, не в курсе.
Аноним 13/07/18 Птн 12:24:24  1227146
>>1226788
>>1227144
Это просто ебанутый ничего не значащий термин.

Referential transparency is an oft-touted property of (pure) functional languages, which makes it easier to reason about the behavior of programs. I don't think there is any formal definition, but it usually means that an expression always evaluates to the same result in any context.

Охуенно, лол. Он, блядь, не думает что этому есть определение, но обычно.

И да, в JS это есть.
Это везде есть.

Аноним 13/07/18 Птн 13:34:42  1227167
>>1227146
>Это везде есть.
Доказывай, чо.
Аноним 13/07/18 Птн 13:41:10  1227171
>>1227167
На любом полноценном языке (with higher order functions) можно писать в таком стиле. На чисто функциональных - просто удобнее.

Что тут доказывать?
Не используй глобальные переменные, используй чистые функции, не мутируй - и будет тебе счастье.

Более того, если класс в ООП рассматривать как функцию, а поля - как параметры, то можно и ООП делать в таком стиле. Т.е. не делать паразитного состояния в классах. См. книжку FP In Java, по-моему, там приводится такой пример. Очень хорошая книга, кстати.
Аноним 13/07/18 Птн 14:13:52  1227204
>>1227171
>можно писать в таком стиле
Referential transparency - это не стиль, это свойство языка/формальной системы. Это достигается не самодисциплиной программиста, это доказывается для конкретной семантики.
Аноним 13/07/18 Птн 14:51:34  1227220
>>1227204
Да и хуй с ним.

Purely applicative languages are poorly applicable, как все мы знаем, лол.
Аноним 13/07/18 Птн 15:08:10  1227231
>>1187998
>http://www.fprog.ru
>Последний номер журнала - апрель 2011.

Не читайте до обеда советских газет, лол.
Аноним 13/07/18 Птн 15:18:45  1227256
>>1182374 Каким образом они решают экспрешн проблем?
Аноним 13/07/18 Птн 15:46:00  1227290
>>1227256
Я не он, но отвечу.
Expression problem (в ООП) - это когда ты в своём коде расширяешь интерфейс класса, который ты не можешь или не хочешь изменять напрямую.
Тайпклассы (и им подобные решения) делают именно это. И вот так вот и решают.
Аноним 13/07/18 Птн 17:28:44  1227365
>>1182667
Вот настоящий элитный двачер.

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

И усмехается, глядя свысока на мелочную возню всех этих мелких людишек.
Аноним 13/07/18 Птн 22:25:34  1227632
>>1227256
https://userpages.uni-koblenz.de/~laemmel/TheEagle/resources/pdf/xproblem1.pdf
Аноним 14/07/18 Суб 21:02:34  1228282
>>1184422
Два чаю анимешной девке
Аноним 14/07/18 Суб 21:05:51  1228284
>>1226528
Ор выше гор!
Аноним 14/07/18 Суб 21:10:50  1228290
>>1227365
>Сидя в нестиранных труханах на проперженной табуретке, сгорбившись над грязной клавиатурой, он проникает мыслью в высшие сферы, недоступные простым смертным.
Ты следишь за мной?


Топ тредов
Избранное