>>1131879 (OP) Проигрываю с его гитхаба. 76(!!!) репозиториев, и все сплошной булшит вроде:
>True Object-Oriented Java Web Framework >XML Formatting Static Validator >Object-Oriented Java primitives, as an alternative to Google Guava and Apache Commons >Requirements Specifications Automated >PhantomJS Java DOM Builder >Jekyll plugin with simple and nice tools for better blogging
>>1131881 >>1131936 Зато он успешный разработчик >We are not fully ready yet. Please, come back in January 2017 February 2018. и инвестор >As an investor at SeedRamp.com, I've made a few investments, but I've got no results yet :)
Аннотации плохо, но чем можно заменить аннотации? Например, аннотации используются для сериализации. Не писать же все время вручную сериализацию для каждого класса
>>1132736 Аннотации - костыль для языков, которые не могут в нормальное метапрограммирование. Соответственно, если у тебя язык by design говнишко, то ничем особо их не заменишь - костыли же не от балды костылят, а от практической нужды.
Главная идея ООП (принимаемая в том числе долбоебом с ОП пика) в том чтобы расписать различные виды объектов и чтобы эти объекты создавали другие объекты и как бы плавали в свободном супе объектов или вели себя как клетки живого организма. Потом мы высекаем искру жизни командой старт и все это добро начинает делать то что мы от него хотим. Короче ЭТА ИДЕЯ В КОРНЕ НЕ ВЕРНА. Подход более-менее работает в природе если мы хотим подождать миллиарды лет для эволюции и миллиарды миллиардов вариаций проб и ошибок. Но вообще то при разработке мы хотим заниматься intelligent design'ом и для этого нам нужны соответствующие инструменты для построения и интроспекции, а подход ООП к ним совсем не относится.
>>1132910 Предлагаю все-таки разделять Ъ-ООП (тот, который про асинхронность, динамичность и примитивы) и кресты-жаба-хуй-пизда-в-говне-ооп, который про индусов, слесарей и гуманитарщину. Второй корректнее называть "ГОП" (govno-oriented programming).
>>1133004 java хороший язык (синтаксис, стандартная библиотека конечно ужасная), но ей не хватает дисциплины. почему так хорош фп - потому что в нем нет оператора присваивания, и этомпринуждает программистов к определенной дисциплине. если убрать из java все о чем говорит бугаенко в своем видео, то java несомненно будет лучше
>>1133125 то есть грубо говоря в фп меньше шансов написать плохой код, и эта дисциплина, сейфовость языка может быть кому-то приятна. в java много лишнего, и люди без опыта просто теряются и совершают ошибки, а винят язык
>>1132873 Тык я написал же, что для сериализации - норм, для простой логики - норм (типа валидации), а когда их начинают пихать во что-то мало-мальски непростое, то начинается ад и Израиль.
По сути аннотации это инструменты кодогенерации. Взять тот-же protobuf, например. Он ничем не отличается от аннотаций, только нужно явно генерировать код. Аннотации просто удобнее, не нужно создавать отдельные файлы.
Хотелось бы обсудить read only vs immutable объекты. Может нам на самом деле нужны read only, а не immutable объекты? read only объект, это такой объект, интерфейс которого не содержит членов для изменения состояния объекта, но состояние этого объекта может быть безопасно изменено в другом месте, например, в объекте, который инапсулирует этот объект. Что вы думаете по этому поводу?
>>1136229 Так вообще-то много где делают. Я просто хочу спросить зачем нужны immutable объекты, если можно использовать read only объекты. В чем разница.
>>1135998 Иммутабельность нужна, чтобы со стейтом не ебаться. Ридонли обжекты - обжекты, которые потенциально могут изменяться другими обжектами, то есть потенциальная ебля со стейтом. Нахуя это надо, если можно просто не ебаться со стейтом?
Что творится в этом треде? Что там с ООП то можно обсуждать? Берешь ебана делаешь абстрактный интерфейс класса, сам класс, класс по работе с интансами этого предыдущего класса называешь ' FooBarManager' или там 'FooBarMediator' и хуяришь там методы. Чего там еще мусолить то? Код написанный хуевым программистом будет хуевым, хорошим программистом - хорошим, а все литие воды про какие то принципы ооп, какое то мусоленье практик - какой то идиотский поиск сверхценных идей. Еще и иммутабельность тут обсуждают, кек. Ну пердолься с иммутабельностью если хочешь пока у тебя коллекции маленькие, а в работе с большими коллекциями какая к чертям иммутабельность, тимлид за проеб производительности к стенке поставит и в очко напинает.
>>1136398 но ведь не позволяют охуенно ты придумал копировать бесконечную коллекцию при вставке элемента в ее конец, прям нобелевскую премию в программировании учередят и тебе дадут.
>>1136346 >чтобы со стейтом не ебаться. Что плохого в самом по себе ебли со стейтом? Ты так говоришь, как будто стейт - это причина зла в программах. Проблема сайдов эффектов не в том, что они есть. Проблема в семантически неявных сайд эффекты и неопределенном поведении.
Например, есть класс Rabothik { public int zarplata; }
zarplata может быть изменена где угодно, хотя это не ожидается, потому что семантически зарплату должен выдавать работодатель. И из-за этого может сломаться какой-то код.
>>1136599 Или например такой класс class Gradusnik { public int getTemperatura(); }
Температура может измениться, но ее никто не может изменить через интерфейс градусника. Этот код безопасный и ничем не отличается от иммутабельного класса.
>>1136419 А ты? Ты вообще знаешь что твоя иммутабельность означает? Как раз таки и означает, что если иммутабельную коллекцию надо скопировать в другую иммутабельную коллекцию, если надо ее все таки изменить, потому что, сюрприз, коллекци надо изменять.
>>1136660 Конечно, можно сделать new ConcatenatedString(string a, string b) в котором динамически копировать строки. И все. Зачем выделять сразу целый буфер
>>1136737 какие порядки, какая дисциплина, что ты несешь? Хуевые программисты пишут хуевый код, хорошие - хороший, и никакие тру-ооп методики тут не спасут.
>>1136754 >хороший делает хорошо, а плохой плохо. спасибо, но мы это и без тебя знаем. чтобы стать хорошим и не быть плохим, нужно следовать определенному пути, дисциплине. можно научиться самому, а можно следовать за учителем.
>>1136767 это наш учитель. он нас учит ООП дисциплине. ты что-то имеешь против? может, у тебя есть аргументы против его учения? так поделись ими с нами.
>>1136760 люди у которых плохо с логикой и плохо с ответственностью за свой код (а ля "и так сойдет") зашкварят любую практику и самодисциплинироваться не смогут. Можно таких согнать в опенспейс и обложить надсмотрщиками, которые будут бить палками по пальцам за несоблюдение код стайла, это поможет да. Но вот хорошие программисты, которые любят свой код, в таких условиях не выдержат и уволятся, а в проекте останется куча выдрессированных мартых, которые все зафейлят, если столкнутся с хоть сколько-нибудь нестандартной проблемой. Проблема как всегда в людях, а не мутабельностях или неправильно выбранном паттерне.
Обучите его кто-нибудь php, а то из-за проблем в ООП реализации джавы уже полную хуйню городит. В статье http://www.yegor256.com/2016/12/20/can-objects-be-friends.html Пишет, что наследование класса в java не дает доступа к private атрибутам. Он предлагает решить проблему допусыванием слова Trust ChildClass в декларацию родителя. Эта хуйня в пхп давено реализована получше. Есть три типа атрибутов класса private - доступен только сущности protected - доступен и сущности и потомкам public - доступен всем.
>>1136925 >Я не знал Ну тогда узнай, что все, что реализуется в PHP тащится из других языков. И сейчас PHP именно подгоняется под джаву. В PHP нет никаких концепций родных для него или выдуманных в нем.
>>1137116 И правда тупая гнида. Алсо все коммиты этого немецкого дурачка - это мелкие правки, тот самый говнокод он форкнул целиком изначально - что очевидно если посмотреть историю. То есть очевидно всем, кроме обычных наследственных дебилов вроде тебя.
>>1131879 (OP) Классный мужик. Просмотрела видео по ООП, много чётких вещей. Прочитала статьи о том, как рассчитается рейт, где-то конечно перетолстил, но где-то чётко. В общем, я потекла.
>>1137415 >я потекла конечно, МММ... КАКОЙ МУЩИНА, аммириканец пащти, гринку может сделать. Только на хуец прыгай и щитай на трактор присела.. тАКИХ ЕЩЕ ЩИНОЧКАМи РАЗБиРАЮТ А там уже на велфере за косарь, да обамакер в моями жить успешно
кстати, неплохая илея, что программисты не должны решать вопросы в чатика. Вместо этого на все создаются тикеты. Типа у когото есть вопрос по проекту, он его задаёт, ему платят за баг репорт, потом человек, ответственный за косяк, решает его и ему тоже платят. Сам сталкивался с тем, что разработка затягиваемся чатиками.
>>1131879 (OP) >on this graph you can see that the interest in oop was declining and increasing for functional programming >обе кривые остались на том же значении, с которого они начинались
The immutable list performed slower than the mutable one 362 times. That’s scary when you know that N is just 1,000. How bad will it perform if we increase N to 2,000? Immutable List: 67.1715 ms Mutable List: 0.1117 ms Immutable List converted from Mutable List: 0.2081 ms Now the gap is even wider. The immutable list is slower than the mutable one by 610 times!!!
>>1137878 Ты дурак? Ты вообще не собираешься менять коллекции? Иммутабельная коллекция подразумевает что при вставке элемента вся ее структура копируется в новую, отличающуюся тем, что добавлен этот новый элемент. В мутабельную добавляешь элемент и коллекция остается тем же инстансом, в иммутабельной при вставке получается новый инстанс. Сами элементы да не копируются, копируются свзяи между элементами, но это огромные накладные расходы при большом количестве элементов. >Эх, сейчас бы на иммутабельные коллекции мьютексы ставить... Ну вот затем чтобы мьютексы и не ставить, иммутабельные структуры и копируются >>1137888 >А по рюске чо за хуита эта мутабли имутабли? хуета набравшая моду ныне в мире жабаскрипта, абсолютно бесполезная в серьезной разработке. Но профаны почему то носятся с ними как со сверхценной идеей. По сути, иммутабельность - это обычный баззворд.
>>1137897 >Иммутабельная коллекция подразумевает что при вставке элемента вся ее структура копируется в новую Niejt. Ты бы почитал сначала, как реализуются иммутабельные коллекции. В-общем, конечно не cache-friendly, но и не тотальная дупликация данных, как ты воображаешь.
>>1137906 И как они реализуются? чем иммутабельный односвязный список отличается от мутабельного? Да ничем, кроме того, что у иммутабельного после insert возвращает копию структуры куда элемент инсертится.
>>1137930 > Ох... Какой замечательный итт тред все-таки! В жабаскрипте ещё со времён царя гороха есть Object.freeze, который делает массивы и объекты неизменяемыми. Правда после него они обычно работают медленней, потому что программисты JIT-конпеляторов не заморачиваются с их оптимизацией.
>>1137938 > можно было везде пихать const Низзя. Он только Firefox'ом поддерживался, в его особенной JS1.8.5-ой форме. В ES6 его значительно изменили. Например в 1.8.5 он напоминал `var` и имел отложенную инициализацию, что позволяло делать хуйню вроде function() { azaza = 5; return azaza; const azaza; }
>>1137972 > Чем остаётся? Что это должно значить, вообще? Значит переменная-ссылка (или указатель, зависит от ЯП и терминологии) указывает на тот же объект, просто его содержимое изменилось.
>>1137974 На ходу придумал? Новый смысл у термина 'инстанс'? >тот же объект Как понять? Он изменяется или нет? О каком 'объекте' идёт речь (в контексте ООП, или нет? что, если нет?)?
>>1137974 >> Чем остаётся? Что это должно значить, вообще? >Значит переменная-ссылка (или указатель, зависит от ЯП и терминологии) указывает на тот же объект, просто его содержимое изменилось.
В сях создали массив на 40 элементов, не хватило, reallocнули на 80, указатель изменился.
>>1137987 > Новый смысл у термина 'инстанс'? Я откуда знаю, что тот анон вкладывал в это термин. > Как понять? А вот хуй его знает.
Воообще само понятие "иммутабельность" зависит от контекста и ЯП.
Есть иммутабельные коллекции, которые хранят ссылки на иммутабельные элементы и им нет нужды копировать себя вообще. Они просто копируют ссылки на нужные элементы, а элементы остаются теми же. Правда для их работы нужны как минимум счётчики ссылок, чтобы избежать утечек памяти. Пример такой коллекции - это строковый тип в JavaScript. Хоть в спеках ничего об этом и не сказано, но при выполнении str.substring(...) или str.substr(..) браузеры не копируют символы в новую строку, а создают строку на основе существующей, просто ставя другие индексы начала и конца. Конкатенация выполняется точно так же. Вместо копирования, создаётся псевдострока, которая содержит две ссылки на старые строки и описание того как они связаны (называется эта хуйня rope).
> Воообще само понятие "иммутабельность" зависит от контекста и ЯП.
Разберись с основами для начала, иммутабельность значит только то, что объект не изменяется, хотя может содержать неизменяемые ссылки на изменяемые объекты.
>>1138082 > С таким же успехом можно переменные раскидать по разным файликам? В чем смысел? Компилятор джавки, например, выдаёт ошибку компилирования если каждому публичному классу не сделать отдельный файлик, название которого соответствует имени класса.
>>1137990 Очередная порция охуительных историй. Иммутабельные коллекции требуют копирования ссылок на элементы и счетчиков ссылок. Ок.
>>1138200 >каждая иммутабельная структура полностью персистента Заебись.
В этом треде мы выяснили, что: 1) ГОП-блядки не могут в английский. 2) ГОП-блядки не могут в базовые структуры данных. 3) ГОП-блядки не могут в си и указатели, не понимают, как работает их код. 4) ГОП-блядки совершенно не разбираются в том, о чем пытаются спорить.
ГОП-блядок - не человек. Унижай его, смейся над ним.
>>1138268 > Иммутабельные коллекции требуют копирования ссылок на элементы и счетчиков ссылок. Не требует. Это один из способов их реализации. Так например делает эрланг. Хоть все коллекции там иммутабельны, при добавлении нового элемента в коллекцию она не копируется полностью, а просто создаётся новая структура с ссылкой на предыдущую коллекцию и новым элементом. Впрочем в языке есть средства и для полного копирования коллекции, если так надо.
>>1138298 > Алсо, как там в 80-ых? Рефкаунт, пацаны? Там было написано "как минимум". Можно хоть gc прикрутить. В языках по встроенным сборщиком мусора даже ничего прикручивать не надо.
>>1138304 А это интересный вопрос. Как мне кажется, способность к расчленению чего-то на части, с соблюдением логики связи между этими частями, это часть все того же абстрактного мышления. А как научится мыслить абстрактно, это извечный вопрос на подобных форумах.
>>1138275 >а просто создаётся новая структура с ссылкой на предыдущую коллекцию и новым элементом Ну давай, расскажи мне как это сделать для двусвязного списка? А для B+-tree или T-tree? Хотя да, я забыл, что иммутаблябляди не могут в структуры данных, которые сложнее тех, что пишут в лабах.
>>1138474 Никак (изкаробки). Даже более того, добавлять элементы можно только в конец. Я просто привожу пример такой коллекции. У неё в эрланге даже отдельный тип есть.
Просто говорю, что не всегда нужно копировать все элементы при изменении имутабельной коллекции.
А вообще я лично большие коллекции почти не использую. Большая часть данных у меня проходит в приложениях в потоках и обрабатывается по-одному (оно же реактивное программирование).
>>1138485 Ну круто че, иммутабельность без катастрофического оверхеда возможна только для несортированных списков и простейших бинарных деревьев, в случае деревьев правда еще обязательно нужен gc. Ну сразу очевидно же что всем срочно нужно переходить на иммутабельные коллекции и до потери сознания воевать в интернете с глубыми стейтоебами, иммутабельность - будущее!
>>1137930 >Ты бы хоть свою же статью по своей же ссылке прочитал. С чего ты взял что мне всегда нужно вставлять элементы только в конец? >Астральные, надеюсь, связи? Пикрелейтед. Хуяльные >Иммутабельные структуры. Копируются. Чтобы мьютексы не ставить. Ага, понятно. Именно, петушок. Под копированием структуры я понимаю копирование структуры, а не данных в ней. Ну то есть копирование связей между рефкаунтными нодами, что содержат данные. >в мире жабаскрипта >Ох... Какой замечательный итт тред все-таки! Именно после моды на immutable.js и всякие redux в интернете и расплодилось столько кукарекающих про иммутабельность петушков. Люди знакомые с функциональными языками, а не желающие покукарекать в интернете на волне хайпа, понимают, как мало иммутабельные структуры имеют общего с реальной жизнью и серьезной разработкой.
>>1138505 >С чего ты взял что мне всегда нужно вставлять элементы только в конец? Ты о чем вообще?
>копирование связей между рефкаунтными нодами Рефкаунт, ага. И копирование иммутабельных структур. Точнее связей между ними. Ржем всем офисом, не останавливайся.
>Именно после моды на immutable.js Подозреваю, что тебе просто папа компьютер с интернетом купил только в это время :)
>>1138082 >переменные раскидать по разным файликам Начнем с того, что понятие "переменная" связано с понятием "файл" от слова "никак". Когда выучишь определения и начнешь их осмысленно употреблять, возвращайся, поговорим о семантике.
>>1138909 Нихуя не значат результаты. На производительность именно языка не нассать только презренных байтоебам, на которых просто нужно нассать, а не выслушать их проблемы и мнение. У нормальных же людей производительность измеряется алгоритмов, запросов и распределенных систем.
>>1138983 > Скала быстрее джавы. > Иммутабельные коллекции скалы немного быстрее, мутабельные коллекции скалы быстрее в разы. Это не скала быстрее жавы, а коллекции стандартной библиотеки скалы быстрее коллекций из стандартной библиотеки жавы.
Конкретно скала может быть значительно быстрее жавки только в том случае, если будет сконпелирована под .NET и активно использовать value types.
>>1138990 >коллекции стандартной библиотеки скалы быстрее коллекций из стандартной библиотеки жавы. Только аутисту, который не может в контекст между двумя предложениями, нужно это дополнительно объяснять, не?
>>1139033 Что поделать, если первое предложение не подразумевает второе. Интересно будет посмотреть на скорость коллекций жавы, после того как там закончат вальхаллу. А так и сейчас понятно, что коллекции там немношк говно.
>>1138534 >ты о чем вообще? о том что в статье про то и написано, что если не использовать оператор склейки элемента в конец иммутабельной паращи, то оверхед чудовищный >Рефкаунт, ага Как по твоему устроены gc функциональных языков? >Подозреваю, что тебе просто папа компьютер с интернетом купил только в это время :) Скок получаешь то петушок? За 2к бачей то хоть перевалил?
>>1139045 >что если не использовать оператор склейки элемента в конец иммутабельной паращи, то оверхед чудовищный Прочитай уже какую-нибудь книжку по алгоритмам и узнай, как работают списки.
>Как по твоему устроены gc функциональных языков? У языков нет gc, gc есть у рантаймов. Ты очень тупой. Жвм гц на рефкаунте, пацаны))
>Скок получаешь то Оно еще и мамин фрилансер 300к\сек, ну просто праздник какой-то.
http://www.yegor256.com/
GitHub его, с кодом что эталоном ООП является:
https://github.com/yegor256
Голос его, что жавомакак с хачкелистами дрожать заставляет:
https://youtu.be/GMrjuuczZkQред предыдущий:
Да будет его шизофрения струиться по ноосфере нашей,
поджигая гузки да споры праведные распространяя.
Аминь.
Тред предыдущий:
https://2ch.hk/pr/res/1084449.html