Программирование

Ответить в тред Ответить в тред
Check this out!
ООП Аноним # OP 26/01/20 Вск 00:11:17 15830801
tftEYGm82Uo.jpg 80Кб, 720x720
720x720
Двач, объясни пожалуйста на двух пальцах про объектно-ориентированное программирование
Аноним 26/01/20 Вск 00:14:29 15830832
1459894619793.png 151Кб, 1948x858
1948x858
Аноним 26/01/20 Вск 00:45:25 15830903
>>1583080 (OP)
Давным давно писали программы в процедурном стиле, то есть смотрели на программу, как на последовательность выполнения команд. Программа получила входные данные, обработала их и выдала выходные данные. Потом программы усложнялись. Программисты поняли, что сложную систему удобнее представлять как систему взаимодействующих объектов. Добавили в языки специальный синтаксис для упрощения этой процедуры и получили ООП.
Аноним 26/01/20 Вск 07:56:42 15831334
>>1583090
Давным давно писали программы в процедурном стиле и программистов становилось все больше, а потом решили повысить порог вхождения и придумали ООП
Аноним 26/01/20 Вск 08:45:47 15831405
>>1583133
Давным давно считали счетом древних русов, а потом жидорептилоиды решили нас наебать и подменили математику.
Аноним 26/01/20 Вск 09:33:59 15831486
Аноним 26/01/20 Вск 10:25:37 15831637
Аноним 26/01/20 Вск 10:45:58 15831668
>>1583163
Я слышал каждый третий программист в мире жсник. Я не жсник, ты тоже не жсник, значит точно он!
Аноним 26/01/20 Вск 11:35:13 15831759
>>1583166
> значит точно он!

Не точно, я не js-ник с вероятностью (8/27)*100.
Аноним 26/01/20 Вск 11:53:25 158317810
>>1583148
Я JS-ник. МНН - математика не нужна!
Аноним 26/01/20 Вск 12:02:27 158318111
OOP.jpg 85Кб, 728x546
728x546
Аноним 26/01/20 Вск 12:50:43 158319712
>>1583178
Ложная математика не нужна, нужна истинная: ноль, целковый, чекушка, порнушка, пердушка, засирушка, жучок, мудачок, хуй на воротничок, дурачок.
Аноним 26/01/20 Вск 13:02:32 158320713
>>1583197
>Разрыв новиопа
Найс
Аноним 26/01/20 Вск 13:39:39 158323414
>>1583181
>АДТ = ООП
Тут не опечатка? Не АДТ, АТД, алгебраические типы данных.
Аноним 26/01/20 Вск 13:57:03 158324515
>>1583234
Абстрактные, а не алгебраические, хаскеллист.
Аноним 26/01/20 Вск 15:35:53 158330016
>>1583245
Абстрактные данные типа?
Аноним 26/01/20 Вск 16:03:52 158331317
>>1583080 (OP)
Ооп это доминирующая парадигма.
Аноним 26/01/20 Вск 16:51:00 158336318
>>1583313
Ооп это омега которых много, а фунционалка вот истинный путь доминатора
Аноним 26/01/20 Вск 20:19:20 158351219
>>1583363
Как может доминировать парадигма, применимая в нескольких узких областях?
Аноним 26/01/20 Вск 21:25:51 158355820
>>1583080 (OP)
>кортни кокс никогда не сядет тебе на ебало
нахуй жить
Аноним 26/01/20 Вск 21:31:22 158356321
>>1583300
>>1583245
Это кривой перевод, скорее всего. На инглише что algebraic, что abstract data type будет ADT.
Аноним 26/01/20 Вск 22:53:42 158363022
>>1583080 (OP)
Пока существует только один ЯП где объектно-ориентированное программирование реализовано в полной мере, это SmallTalk. Все остальное это либо попытки сделать SmallTalk c блэкджеком и шлюхами (Objective-C, Ruby), или псевдо-ООП параша (Java, C++, C#, Python, JS, etc).
Аноним 26/01/20 Вск 22:59:47 158363923
>>1583630
И что же на нем никто не программирует?
Аноним 26/01/20 Вск 23:15:17 158366424
Аноним 27/01/20 Пнд 00:14:50 158372025
>>1583563
А на русском - АТД.
По контексту понятно, о чём речь. Если об ООП, то абстрактные, а если о какой-то странной узкой нежизнеспособной хуите - то алгебраические.
Аноним 27/01/20 Пнд 00:24:44 158373526
>>1583630
Что-то не таким уж и жизнеспособным оказалось "настоящее ООП", раз уж прижился только его форк. На бумаге-то, может, всё было хорошо, но практика показала, что возможность "передачи сообщений" объектам, которые эти сообщения не понимают - это не верх инженерной мысли, а свидетельство наличия ошибок в программе.
А в динамической параше можно сколько угодно вызывать несуществующие методы. Бонусом будет падение программы в рантайме. Прям как обращение к несуществующим переменным.
Аноним 27/01/20 Пнд 01:03:55 158377427
>>1583720
>если о какой-то странной узкой нежизнеспособной хуите
Ты сейчас описал ООП.
Аноним 27/01/20 Пнд 01:20:14 158378428
>>1583774
Только в рамках мышления, расширенного аппликативными функторами.
Аноним 27/01/20 Пнд 01:37:32 158378729
>>1583784
Спроси в сикп-треде, у них нет аппликативных функторов, но они тебе скажут то же самое.
Аноним 27/01/20 Пнд 06:38:47 158381230
>>1583512
Потому что сосункам не по зубам
Аноним 27/01/20 Пнд 06:52:37 158381331
>>1583133
> Давным давно писали программы в процедурном стиле и программистов становилось все больше
> а потом решили повысить порог вхождения и придумали ООП
проиграл с манявхождениями. порог вхождения от этого не увеличивается, только разве уменьшается. что бы раньше наверстать гуев на си в гтк нужно было гуглить элемент и смотреть пару сотен методов, где хуй поймешь что и с чем связанно, никаких наследований не было, и приходилось все пихать в один стракт, а потом кастовать в нужный тип... сейчас из-за ебучего ооп, любая макака может взять кьют, где все для дурачков расписанно и имеет строгие методы, реализовать эту парашу может даже самая последняя обезьяна, ни разу не работающая до этого с ооп. так что имхо порог только снизился, а манянаследования и маняполиморфизмы это только подтверждение моему высказыванию
Аноним 27/01/20 Пнд 12:44:37 158391232
>>1583080 (OP)
Если на двух пальцах - это неплохой (и, в целом, пока что единственный реально работающий на больших масштабах) способ организации кода. Значительная часть написанного про ООП - не то чтобы прям полная шняга, но скорее трансляция завышенных ожиданий.

Классическое ООП а-ля Smalltalk не полетело потому же, почему с трудом летят event-driven архитектуры вообще. Java породила множество страданий, которые, в свою очередь, породили два направления: "возврат к истокам" в сторону процедурщины в пртмитивных языках вроде Lua и Go с одной стороны и движение в сторону трейтов а-ля Rust. Если опять-таки на пальцах - наследование реализации порождало больше проблем, чем решало, и от него начали уходить.

Холиварить на эти темы забавно, но бессмысленно. Самая жирная еда - школохаскеллисты, которым нужна МАТЕМАТИЧЕСКАЯ ШТРОГОШТЬ.
Аноним 27/01/20 Пнд 13:27:54 158394533
>>1583912
накодить на функциональщине можно тоже самое и оно будет даже получше в среднем, все таки иммутабельность и идемпотентность, НО кодеров на функциональщине мало, их услуги стоят дороже, их не хайпуют смузихлебы.
почему их мало, порог вхождения выше, например упомянутая жава, а точнее жвм хостит вполне годный кложур, но въехать в него тяжело, придется жевать и саму жабу.
Аноним 27/01/20 Пнд 13:54:14 158395834
>>1583080 (OP)
Мимо любитель на СИ.

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

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

Аноним 27/01/20 Пнд 14:14:14 158396135
>>1583813
Да как же. Сейчас миндл от джуна и тд отличается пониманием ООП
Аноним 27/01/20 Пнд 14:16:06 158396336
>>1583958
ооп подразумевает что пакуешь все в объекты и взаимодействуют уже объекты между собой
Аноним 27/01/20 Пнд 14:19:57 158396637
>>1583961

>Сейчас миндл от джуна и тд отличается степенью промытости и разработанности ануса.

Починил тебя.
Аноним 27/01/20 Пнд 14:41:02 158397538
>>1583966
На JS все не заканчивается
Аноним 27/01/20 Пнд 15:16:12 158400339
>>1583912
>Классическое ООП а-ля Smalltalk не полетело
А разве ECS и всякие PubSubы это не оно?
Аноним 27/01/20 Пнд 15:30:48 158401740
14236720048292.png 32Кб, 619x640
619x640
>>1583912

>единственный реально работающий на больших масштабах

Давай, расскажи мне тут про свое больное спидом говно мамонта.
Аноним 28/01/20 Втр 08:42:23 158451441
>>1583945
>кодеров на функциональщине мало, их услуги стоят дороже, их не хайпуют смузихлебы
Иными словами, функциональщина хуже ложится на устройство человеческого мозга, а всем надо, чтобы ложилась легко. Это не значит, что она плоха - есть отдельные задачи, где она (или ее элементы) прекрасно заходит, поэтому первоклассными функциями в ООП-языках или конструкциями вроде match в Rust никого не удивить. А писать иммутабельно-идемпотентно никто и в ООП не мешает.

>>1584003
>ECS и всякие PubSubы это не оно?
Оно, и event soursing оно. Но строить и отлаживать такие архитектуры сложно, мы не делаем этого без крайней необходимости.

>>1584017
>расскажи мне тут
А вот и первый пациент в этом итт.
Аноним 28/01/20 Втр 08:52:06 158451742
>>1584003

ECS - это конкретно частная борьба с частной проблемой (промахи кеша) частных процессоров (ущербных IBM Cell из PlayStation 3 и IBM Xenon из Xbox 360, у которых одна и та же ущербная кастрированная архитектура без предсказателя предвыборки и переходов ) в одной конкретной частной манянише - геймдеве.

Сейчас эта хуерга на слуху потому что эту хуергу пытаются запихнуть в популярный на мобилках школодвиг Unity3D, поскольку данная проблема говножелеза вылезла уже с говнопроцами на арм из говномобилок и говнопланшетов которые тротлят от перегрева при нагрузке >50%.

Аноним 28/01/20 Втр 09:27:37 158453143
>>1583090
>Давным давно писали программы в процедурном стиле, то есть смотрели на программу, как на последовательность выполнения команд. Программа получила входные данные, обработала их и выдала выходные данные. Потом программы усложнялись. Программисты поняли, что сложную систему удобнее представлять как систему взаимодействующих объектов. Добавили в языки специальный синтаксис для упрощения этой процедуры и получили ООП.

Нет.

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

А объекты, в которых теперь заукливался код позволяли эффективнее расширять штат рабов и обеспечивать более эффективное разделение труда.

Собственно, хуева куча сверхсложного софта написана на сях, та же шинда и юниксы-линуксы с разными СУБД, просто написаны они до 90х годов.
Аноним 28/01/20 Втр 12:47:42 158463944
>>1584531
Эх, как же раньше хорошо то было, неделями элементарные баги вылавливали.
Аноним 28/01/20 Втр 12:50:42 158464145
>>1584639
>Эх, как же раньше хорошо то было, неделями элементарные баги вылавливали.

Раньше просто несколько раз думали, и компилировали в голове прежде чем тянуться к кнопке build/набирать в консоли make.
Аноним 28/01/20 Втр 13:23:55 158467346
>>1583912
>пока что единственный
Нет. Трейты, тобой упомянутые, это уже не ООП, если что.
Аноним 28/01/20 Втр 13:36:15 158469647
>>1584673
In computer programming, a trait is a concept used in object-oriented programming, which represents a set of methods that can be used to extend the functionality of a class.
https://en.m.wikipedia.org/wiki/Trait_(computer_programming)

Хотя в некоторых языках, типа скалки, трейтами можно расширять не только классы, но и объекты.
Аноним 28/01/20 Втр 13:46:28 158470748
>>1584696
Ну тогда нахуй и Хачкель ООП.
Аноним 28/01/20 Втр 14:11:04 158472549
>>1584707
В хаскеле нет трейтов. Как и классов с объектами (в ООПшном смысле), которыми их можно было бы расширить.
Аноним 28/01/20 Втр 14:23:08 158473950
>>1584514
>писать иммутабельно-идемпотентно никто и в ООП не мешает.
>писать иммутабельно в мутабельном языке
это как из буханки сделать трамвай
а идемпотентность рушится из-за этой самой необходимости заворачивать все в объекты
Аноним 28/01/20 Втр 14:48:42 158476251
>>1584725
>В хаскеле нет трейтов.
Там есть тайпклассы, с которых раст слизал трейты.
>Как и классов с объектами (в ООПшном смысле)
Так их и в расте нет.
>которыми их можно было бы расширить.
Что ты подразумеваешь под расширением? Что можно вызывать функцию не func data, а data.method()? Почему в первом случае это не расширение, а во втором нет?
Аноним 28/01/20 Втр 14:49:26 158476352
>>1584762
>Почему в втором случае это расширение, а в первом нет?
Самофикс.
Аноним 28/01/20 Втр 14:51:31 158476453
>>1584514
>Иными словами, функциональщина хуже ложится на устройство человеческого мозг
Это индивидуально и зависит от способа восприятия и мышления.
Операционная семантика и аппликативный порядок - это не что-то очевидное и интуитивное, как принято думать, ей тоже нужно учится.
Когда я первый раз увидел на уроке информатики x = x + 1, я охуел и был разочарован. Потом мне объяснили, что на самом деле x это такая коробочка где лежит 1 и что туда можно положить что-то другое, а ещё что то что в коробочке лежит можно изменять. Потом когда на асме программировали, стало понятно о чем это, что вот есть машина, есть команды, значения идут в регистры, потом производится операция, результат появляется здесь, потом ты его записываешь в память по такому то адресую и так далее.
То есть вот так с нуля думать об операциях, меняющих некое состояние нет никаких оснований. Если на свежую голову учить детонационной или аксиоматической семантике, что ты нихуя не вычисляешь, а просто записываешь правила и отношения, то потом вся эта императивная дрочь со стейтом и процедурками будет казаться какой-то дикой хуйней, плохо ложащейся на человеческий мозг.
Я программирую онли ФП уже более пяти лет и даже при том что у меня было пару лет опыта на ОО-языках, мне намного проще и удобней думать функционально.
Более того, ООП само по себе никак не помогает и, если разобраться, толком не имеет содержания. «Все есть объект» - ну охуенно и че? Может мы можем вывести какие-то свойства этих объектов и свойства их отношений с другими объектами? Что это нам даёт?
На самом деле это просто ещё одно средство структурирования императивного кода, не несущего принципиально ничего нового.
Аноним 28/01/20 Втр 14:53:10 158476754
>>1584764
>денотационной
пофиксил автозамену
Аноним 28/01/20 Втр 14:55:15 158477055
>>1584764
>Я программирую онли ФП уже более пяти лет
Какие языки, стек? Где работаешь, рашка, украшка, пиндосия, гейропа? Как вкатился?
Аноним 28/01/20 Втр 15:07:44 158479056
>>1584762
> Там есть тайпклассы, с которых раст слизал трейты
Это что же получается, трейты - это интерфейсы с генериками что ли???

мимо
Аноним 28/01/20 Втр 15:43:46 158482357
>>1584770
Начинал с Erlang, потом Elixir, вот чуть более года параллельно ещё на скалке. Ерланг пропихнул в конторе где работал, применил его для нескольких кейсов, потом брал сторонние мелкопроекты уровня запила плагинов к джаберу, потом знакомая HR позвала на Elixir/Phoenix проект на ремоут, потом работал на еликсире в местном мелкоконсалтинге на скандинавию, потом работал в основном ремоут на UK. Сейчас на ремоуте парт тайм на одного немца с криптостартапом и параллельно парт тайм на скалке на калифорнийском игровом проекте.
Аноним 28/01/20 Втр 15:44:39 158482458
>>1584764
в лиспе есть гомоиконность и она работает, ооп не работает, она всего лишь заставляет заворачивать все в обертки
Аноним 28/01/20 Втр 15:54:52 158483259
>>1584824
>в лиспе есть гомоиконность и она работает

Только медленно.

Слишком.

Даже жирножаба быстрее.

Именно поэтому в свое время лисп проиграл интырпрайз поочередно коболу и жабе.
Аноним 28/01/20 Втр 16:07:33 158483760
>>1584762
Потому что тайпклассы это тайпклассы, а трейты это трейты.
Вот в ПХП нет ни пользовательских типов, ни их классов, а трейты есть.
Отличие трейтов от интерфейсов с дженериками заключается в позднем связывании, за счёт которого: а) трейты можно настакать друг за другом в нужной последовательности, б) можно расширять объекты, а не только классы.
Аноним 28/01/20 Втр 16:43:58 158487661
>>1584764
То есть тебе действительно реализовать алгоритм Дейкстры или решить задачу о рюкзаке на функциональщине проще?
Аноним 28/01/20 Втр 18:32:30 158498662
>>1584837
Объясни, что ты подразумеваешь под расширением класса или объекта, и почему этого нельзя сделать в Хачкеле, но на алгебраических типах данных.
Аноним 28/01/20 Втр 19:36:59 158503463
>>1584986
>что ты подразумеваешь под расширением класса
class MyClass extends MySuperClass with MyTrait1 with MyTrait2 { ... }

>или объекта
val t = new MyClass with MyTrait { ... }

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

abstract class SavingsAccount extends Account with Logger {
__def withdraw(amount: Double) {
____if (amount > balance) log("Insufficient funds")
____else ...
__ }
...}

Более того, если ты можешь использовать цепочку трейтов:

trait TimestampLogger extends ConsoleLogger {
__override def log(msg: String) {
____super.log(s"${java.time.Instant.now()} $msg")
__}
}

trait ShortLogger extends ConsoleLogger {
__override def log(msg: String) {
____super.log(if (msg.length <= 15) msg else s"${msg.substring(0, 12)}...")
__}
}

val acct1 = new SavingsAccount with TimestampLogger with ShortLogger
val acct2 = new SavingsAccount with ShortLogger with TimestampLogger

acct1 при овердраве залогирует: Sun Feb 06 17:45:45 ICT 2011 Insufficient...
А acct2: Sun Feb 06 1...

В хаскеле же нет ни объектов, ни классов.
Классы типов позволяют добиться перегрузки, но они работают на типах, а не на объектах.
Аноним 29/01/20 Срд 00:13:33 158518064
1
Аноним 14/02/20 Птн 23:56:56 160220965
Pharov3-0.png 133Кб, 930x699
930x699
squeak2.png 170Кб, 1024x798
1024x798
DolphinNBSQLite3.png 392Кб, 1103x779
1103x779
smalltalk-deskt[...].jpg 152Кб, 606x664
606x664
>>1583735
>форк
Это не форк. Pharo, Squeak, Dolphin это все диалекты. Попытки воссоздать и адаптировать под современные компьютеры оригинальный Smalltalk, который был на Xerox Alto.
Аноним 15/02/20 Суб 00:33:42 160222566
>>1583080 (OP)
>объектно-ориентированное программирование
такой же единорог, как и многопоточка. никто не знает как правильно и поэтому придумывают костыли
Аноним 15/02/20 Суб 00:35:16 160222667
>>1602225
>многопоточка
в иммутабельных языках с ней все хорошо, в мутабельных костылизм.
Аноним 15/02/20 Суб 01:41:08 160226568
>>1602226
>в иммутабельных
Так это и есть костыль.

мимофпбоярин
Аноним 15/02/20 Суб 01:48:47 160227069
>>1602265
мутабельность дает вагоны сайдэффектов, если уж нужна то и в фп языках есть способы, в обратном случае костыль на костыле
Аноним 15/02/20 Суб 15:59:28 160287170
>>1602270
>мутабельность дает вагоны сайдэффектов
какие сайдэффекты у stdatomic переменных?
Аноним 15/02/20 Суб 16:07:17 160288971
О, срач про иммутабельность. У вас же свой тред был, хуле вы его проебали и набегаете в другие треды?
Аноним 14/04/20 Втр 10:41:57 165762672
Аноним 09/05/20 Суб 22:47:22 168258473
Аноним 09/05/20 Суб 23:33:13 168264574
Когда начали приходить гигабайты из базки, я понял зачем нужны паттерны entity и repository.

А у вас как прошел вечер, уважаемые?
Аноним 31/08/20 Пнд 00:29:05 179317875
Аноним 31/08/20 Пнд 13:19:08 179361576
>>1583080 (OP)
Ну сотри корочи. Вначале ебашили действия подряд. Потом такие: "а неплохо было бы этот кусок повторить". Запилим переходы! И запилили. И там короче заебись теперь можно даже пропускать куски! А потом ты такой хули я перехожу А ОН СУКА ОБРАТНО НЕ ВОЗВРАЩАЕТСЯ! Ну и запилили вызовы и возвраты. И теперь у нас сука ПРОЦЕДУРНОЕ ПРОГРАММИРОВАНИЕ™. А потом ты такой бля а хули я перехожу А ОН МНЕ СТЕК ВЫЗОВОВ РАСПИДОРАШИВАЕТ?! Ну все такие ПЕРЕХОД - это зло. И такие Бёмом и Якопини пояснили их криком "ПЕРЕХОД НИНУЖЕН!11" Ну его такие выпиливают заменяя СТРУКТУРАМИ УПРАВЛЕНИЯ™. Структурное программирование у нас же! Ок. Потом ты такой а хули я глобальную переменную изменяю и потом переёбываюсь с ней по всей программе?! ИНКАПСУЛЯЦИЯ!!11 И вот уже Вирт пилит модульное программирование. Модульное программирование канеш хорошо но тебе же всё мало! Тебе надо делать массивы модулей и структуры с полями-модулями! Ну ты такой экспортируешь тип структуры из модуля и кукарекаешь на весь Bell Labs: "АБСТРАКЦИЯ!!11" как финальный аккорд ПРОГРАММИРОВАНИЯ С АБСТРАКТНЫМИ ТИПАМИ ДАННЫХ! Все почти хорошо но ты замечаешь что приходится придрачивать поля-модули к модулю внедряя в поле-модуль специфичныи функции того модуля! Ну ты такой СДЕЛАЮ НА МАКРОСАХ ЗА 20 МИНУТ!1 Сделал. А потом заёбываешься перекомпилять поля-модули под каждый чих модуля и агрясь на размер кода зопиливаешь те самые функции в отдельную структуру и переопределяя их в рантайме становишься королём ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ПАРАДИГМЫ со страусиной типизацией!111 Вот так ёпана
Аноним 31/08/20 Пнд 14:02:22 179365577
>>1583735
>возможность "передачи сообщений" объектам
А я вот этого непонимаю. Такое же запросто пишется на обычном "попсовом" ООП как 2 пальца.
Аноним 31/08/20 Пнд 15:05:54 179374678
Аноним 31/08/20 Пнд 19:14:29 179406579
>>1793746
>код в студию
В смысле? Ты не можешь создать объект Message и передать его другому объекту?

Ну вот тебе псевдокод тогда:
messageObject.setPayload('eto huita');
somethingObject.handleMessage(messageObject);
Так же невозбранно можно юзать разные паттерны - наблюдатель, цепочка обязанностей и тд, обрабатывая эти сообщения как тебе удобно в текущем кейсе.

Я, может, этого корявого выражения не понимаю: возможность "передачи сообщений" объектам? Просто не первый раз его встречаю, вот и спросил.

Ну и наезды на ООП в его текущем виде считаю неправильными - на бумажке и в теории оно всегда красиво выглядит, но реальность всегда такова, что идеальных конструкций тут хрен сделаешь и приходится идти на компромиссы. Можно долго махать языком, доказывая, что какой-то шибко умный язык из-под институтской шконки сделан по всем правилам, но в этом мало толку пока этот язык не начнёт решать реальные задачи в промышленных масштабах.
Аноним 01/09/20 Втр 00:19:19 179426180
>>1794065
Ну так где ж тут месседж-пассинг, если это просто вызов методов через vtables? Под месседж-пассингом обычно подразумевается суперпозднее связывание, когда всё такое динамическое-хуическое. Если интересно что имеется в виду, вместо тысячи слов просто поставь себе Smalltalk, желательно с IDE, попиши какой-то код и всё быстро станет понятно базарю ещё захочешь
Аноним 01/09/20 Втр 00:47:54 179427081
>>1794065
>Ну и наезды на ООП...

Популярность (во многом уже былая) ООП - это историческая случайность + агрессивный маркетинг и желание людей писать и продавать книжки о полугуманитарной хуйне. Отсутствие вменяемой формальной системы в основании приводит к тому, что парадигма не является полной системой хоть в каком-то смысле, а является скорее набором традиций и советов древних, типа "чтобы копьё лучше било мамонта, надо чтобы девственница обоссала его в полнолуние". Вообще само наличие классических ОО патернов, как неких стандартных решений - означает, что в рамках этой парадигмы постоянно возникают одни и те же проблемы, что в свою очередь указывает на хуёвость и непродуманность самой парадигмы.
01/09/20 Втр 01:18:54 179428082
>>1794270
> историческая случайность + агрессивный маркетинг
Сука, да ты заебал срать во всех тредах этим своим ВРЁТИ, бля
01/09/20 Втр 01:33:33 179428783
>>1794065
> Я, может, этого корявого выражения не понимаю: возможность "передачи сообщений" объектам? Просто не первый раз его встречаю, вот и спросил.
Просто кто-то когда-то выдумал терминологию такую, никакой другой ещё не было, но требовалась. У тебя же не возникает вопросов, почему методы называются методами, хотя никакой методологии вроде бы нет.

Другой вопрос, что смоллтолк предлагает откладывать проверку того, что "сообщение понятно объекту" (метод существует) до самого последнего, что сейчас осталось уделом динамикодрисни, и в нормальных языках такого нет. Что ж, это отдельная историческая веха развития ООП, структурное программирование в нынешнем виде тоже не сразу появилось. И чьи-то попытки сейчас цепляться якобы за тру-ООП (устаревший подход к ООП) выглядят глупо и наивно.
Аноним 01/09/20 Втр 08:29:06 179445384
>>1794261
>поставь себе Smalltalk
Не - у меня в очереди на изучение гораздо более актуальные технологии. Не вижу смысла тратить время на полумёртвый язык.

>>1794270
>это историческая случайность
Случайность у тебя в 1-5 случаях, а тут уже системный подход.
Аноним 01/09/20 Втр 08:46:24 179445785
Аноним 01/09/20 Втр 10:11:51 179448886
>>1794457
Ну так речь о том, что в мейнстривом ООП везде method invocation via vtables, а не месседж-пассинг, который был только в смолтоке, обж-С и руби.
Аноним 01/09/20 Втр 10:39:38 179450987
>>1794488
>ваше прогроммирование не прогроммирование
>вот мои языки - тру-погроммирование
Детский сад - штаны на лямках.
Аноним 01/09/20 Втр 10:41:02 179451188
>>1794509
Покажи мне пост где я что-то говорил про тру/не-тру?
Аноним 01/09/20 Втр 10:44:05 179451589
>>1794488
>обж-С
Вот уж хуета, прости господи.
Аноним 01/09/20 Втр 10:46:13 179451890
>>1794287
Модель акторов, на основе которой строился смолток, как раз куда более проработана, чем мейнстримовый гумманитарный ОО-булщит. Когда действительно всё есть объект, и всему можно послать сообщение, а его приём и обработка зависит целиком от получателя - это конечно же является динамической дрисней, но это позволяет писать очень гибкие, изменяемые системы. Взять даже смолтолковскую среду разработки: даже сегодня нормальный REPL не доступен большинству разработчиков, а в те бордатые годы это было как магия.
Ну и не будем забывать, что все вещи вроде рефакторинга, юнит-тестов, паттернов и много другого, что используется по сей день, пришло именно из смолтолка.

Проебал он плюсам исключительно из-за зашорености байтоговнариков, до последнего остававшихся верным своим указателям и низкоуровневому дрочу, которые и кресты-то с трудом восприняли.
Аноним 01/09/20 Втр 10:51:02 179452591
>>1794518

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

"Вы" это не конкретно к тебе обращение, а к подавляющему большинству программистов.
Аноним 01/09/20 Втр 11:06:15 179453592
>>1794280
Правда глаза режет?
Аноним 01/09/20 Втр 11:18:55 179455693
>>1794525
>или заблокируете поток, или скушаете всю память буфера, или будете городить костыли с опросом в цикле, который хорошо и бесполезно загрузит CPU.
>

Сначала заблокируют, затем, в попытке обойти блокировку, переполнят все буфера, наконец решат проблему поллингом.
Аноним 01/09/20 Втр 11:24:24 179456994
01/09/20 Втр 12:23:41 179462395
>>1794535
Мне - правда, тебе - зарплата, борщевик.
Аноним 01/09/20 Втр 13:29:21 179472696
>>1794525
>"Вы" это не конкретно к тебе обращение, а к подавляющему большинству программистов.
Ебать у тебя ЧСВ дружок. Ты кто вообще? Что написал полезного и знаменитого, раз других софт учишь делать?
Аноним 01/09/20 Втр 15:11:19 179482397
>>1794726
> Ты кто вообще?
anonymous

> написал полезного и знаменитого,
Да много чего накостылил и наговнокодил. Например то, что сейчас продётся, написал в составе большой команды разработчиков. Вышеописанное, типа блокировок, переполнения буферов и опроса - это из собственного опыта и смотря как другие программисты задачи решают. Затем достиг просветления и теперь имею право говорить теми словами, которые тебя задели.

И да, если ты пользуешь события, например, через Windows Message Queues, то там накосячить трудно - всё уже за тебя другие люди придумали. Но в целом с событиями мало кто может работать, если шаг влево или вправо отойти от семафоров.
Аноним 03/09/20 Чтв 05:56:42 179588498
>>1583080 (OP)
Смари, есть значит физический объект. Он может двигаться в пространстве, с ним можно взаимодейстовать согласно его применению, если он функциональный. И весь этот этикет поведения объекта тебе нужно описать. Класс - это ебучий завод, который делает объекты по макету. Ты так же можешь теперь инкапсулировать метод. Скажем вот есть завод бинзопил. И теперь в народе ходит выражение "пилить как бензопилой". Если ты сделал метод пиления бензопилой приватным, то такое выражение в твоей деревне не все знают и не все понимают, только те, у кого бензопила есть. А если это защищённый метод, то "так пиздато как бинзопилой пилить ничем нельзя" и все ходят и завидуют этой бинзопиле, что не могут так же, потому что не такая как все, недоступная. Ещё класс можно собрать из абстрактных классов. Скажем есть класс "циркулярное движение" и ты его применяешь как технологию на своём заводе бинзопил, потому что куда без него. Ты можешь конечно изобрести свой велосипед, но ты же программист и уже скорее всего мудрец, который учится на чужом опыте, так что нужно заимствовать. Ну ты понял кароче, проецируй знания
Аноним 03/09/20 Чтв 06:51:19 179589599
>>1584531
Все так.
Удивительно, что столько альтернативных толкований придумано.
Все дело в организации рабства. Одиночке ООП неудобен и поэтому его сложно понять с позиции одиночки.
Аноним 03/09/20 Чтв 11:16:28 1796080100
Отписаться от темы надо. Пиздец, чего тут только не прочитаешь.

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

Могу даже пошутить слегка. Программистов на С++ можно разделить на три категории - кто всё пишет на шаблонах, кто всё делает на своих самописных классах, и кто пишет шаблоны.

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

Аноним 03/09/20 Чтв 15:38:58 1796387101
>>1583080 (OP)
Ну смотри - кодишь ты себе такой кодишь, пишешь разные алгоритмы, реализует структуры, задачки решаешь. А потом решаешь вкатиться на работу и тут тебе хуякс - фабрики хуябрики, синглтоны хуйглатоны, абстрактные мета виртуальные в рот невъебенные свистопирдюлькинские методы, стратегии, адаптеры и прочие крайне полезные изъебы без изъянов. Да ебись оно все в рот конем решаешь ты и идёшь учиться в кулинарный техникум.
Аноним 04/09/20 Птн 08:19:50 1796968102
>>1796387
Эх, если бы.
В вакансии расписано как у них всё охуенно микросервисы вся хуйня, на деле какой-то пиздос из несколькольких огромных криво интегринованных проектов и индусы, вещающие хуйню с важным видом.
Аноним 04/09/20 Птн 11:40:40 1797058103
>>1796968
Так микросервисы это унылое говно же. Это идея из того же разряда, что и так называемый язык программирования Go, идея что можно нихуя не знать и не уметь и при этом писать сложные программы. Т.е. вместо сложной программы с архитектурой, хуярится N плоских и примитивных микросервисов, которые может написать на говне любой первокурсник с лабой, и над всем этим наворачивается кучерявая инфраструктура. Т.е. задачи софтваре ижениринга решаются инфраструктурными методами.
Аноним 21/09/20 Пнд 23:51:11 1812991104
>>1793615
нихуя не понял, но у меня привстал
Аноним 22/09/20 Втр 00:09:12 1812999105
>>1794270
Коллега, вам не кажется что то же самое сейчас происходит со скрамом и аджайлом?
Аноним 22/09/20 Втр 10:58:41 1813077106
>>1812999
Скрам нынче не в моде, сейчас все менеджеры-хипстерки надрачивают на LEAN (но не знают как его применить в софтваре девелопменте) и на некоторые ответвления XP (типа BDD).
Аноним 22/09/20 Втр 13:10:06 1813199107
>>1794261
Толсто говорить что передача сообщений не прижилась. События это те же сообщения. А они везде. В винде95. В сайте на реакте. В игровом движке.
Аноним 23/09/20 Срд 23:05:57 1814621108
>>1813199
Причем тут евенты к мессадж-пассингу? Это ортогональные понятия.
Аноним 23/09/20 Срд 23:10:31 1814624109
>>1814621
Просто он зачем-то смешивает асинхронщину, месседж-пассинг и ивенты в одно понятие.
Аноним 26/09/20 Суб 18:15:24 1816909110
>>1794270
> Вообще само наличие классических монад, как неких стандартных решений - означает, что в рамках этой парадигмы постоянно возникают одни и те же проблемы, что в свою очередь указывает на хуёвость и непродуманность самой парадигмы.

Поправил тебя, друже.
Аноним 26/09/20 Суб 18:49:10 1816932111
>>1816909
>сравнивает элемент, лежащий в основании языка/парадигмы и некие "устойчивые практики", возникшие у пользователей языка, как результат отсутствия необходимых элементов в их языке/парадигме

Скажи честно, тебе же ещё нет 18? Может бы лучше съебёшь обратно в б/ыдлятню лампово тралить тупостью друзяшек апельсинусов?
Аноним 26/09/20 Суб 18:54:59 1816935112
>>1816909
Вообще ты промахнулся, паттерны можно было бы сравнить, допустим, с комбинаторами из ФП.

Вот только комбинатор в ФП - это простая композиция функций, в то время как в ООП композиция объектов никак не определена - объекты комбинируются обычным процедурным быдлокодом.
Аноним 26/09/20 Суб 18:57:40 1816936113
>>1816935
Молотком можно забивать гвозди или постучать тебе по пальцам, неопределенность молотка не делает его плохим инструментом, так же как и элементы лежащие в основе языка не гарантируют качество кода на языке.
Аноним 26/09/20 Суб 18:58:58 1816937114
>>1816935
объекты комбинируются инверсией контроля, мань.
Аноним 26/09/20 Суб 19:21:19 1816952115
>>1816937
Определение композиции объектов в ООПе в студию.

В ФП:
(a -> b) . (b -> c) = (a -> c)

В ООП:
??? null


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

Я тебя понял.
Аноним 26/09/20 Суб 19:25:51 1816957116
>>1816952
> (a -> b) . (b -> c) = (a -> c)
Бесполезнейший высер. Вместо того, чтобы писать f(g(x)), придумывают себе проблемы на ровном месте, ведь f . g $ x выглядит так круто, что все одноклассники обкончаются.
Аноним 26/09/20 Суб 19:33:01 1816964117
>>1816957
>не могу ответить на вопрос
>не понимаю вообще о чём разговор
>что-то пукну про синтаксис

Ясно. Слив засчитан.
Аноним 26/09/20 Суб 19:37:19 1816970118
>>1816964
Да, ты как обычно победил, а теперь можешь успокоиться и съебаться подальше.
Аноним 26/09/20 Суб 19:38:22 1816972119
>>1816952
Будет вот что

a = new A
b = new B
c = a.setB(a)
Что такое c? null, реже любая хуйита на усмотрение разработчика класса A
Как изменилось поведение a? хуй знает, идём читать имплантацию, так как просмотр сигнатур a и b ничего не скажет
Аноним 26/09/20 Суб 19:39:02 1816974120
Аноним 26/09/20 Суб 19:44:18 1816977121
>>1816970
>семёнит по всему разделу, на любое упоминания хаски или ФП считает нужным вставить смишную шутку про монады, не важно в тему или нет
>просит успокоиться и съебаться подальше

Тебя же никто не трогал, шиз.
Аноним 26/09/20 Суб 19:51:39 1816981122
>>1816977
> семёнит
Наивно. Но ты прав, я не упускаю ни одной возможности послать маню-борщехлёба нахуй.
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов