Обновить
3
Bronx@Bronx

Пользователь

7
Подписчики
Отправить сообщение

А главное иммутабильность даёт ноль профита.

  1. Иммутабельность даёт гарантии, что объект, который ты получил, не взорвётся у тебя в руках останется тем же всегда, и тебе не надо кропотливо и пристально следить, не поменялось ли что-то в его нутрях, или втыкать и таскать повсюду кучу флагов isModified, или перерисовывать весь UI на каждый чих.

  2. Иммутабельность предоставляет простой способ детектирования наличия изменений: если ссылка на объект не поменялась, значит 100% изменений в нём нет, можно пропустить всю работу по проверке и обновлению данных и UI.

  3. Полного копирования при изменениях не происходит -- для неизменённых частей копируются только ссылки верхнего уровня.

Как у любого решения, у этого есть своя цена, каждый сам должен решать, что выгоднее в его конкретном случае.

С каких пор полное копирование участка памяти(объекта) с целью его изменения


При правильном подходе новый объект создаётся не полным копированием всех данных, а путём копирования ссылок на неизменённые данные, плюс новые примитивы/ссылки в местах изменений. Т.е. копирование происходит только для части ссылок и части примитивов, но это достаточно дёшево, так как для них есть быстрые кучи/арены. Когда вы меняете строку "по месту", у вас точно так же есть шанс получить либо перераспределение памяти, либо её недоиспользование, поэтому строки в современных managed языках сплошь immutable, ибо так на круг выходит дешевле.

От туда от куда появилось ПДД

И как появились ПДД, все их выучили наизусть, и все нарушения немедленно кончились и воцарилось благоденствие?

удачи дальше спорить чей стек лучше.

Как будто в "Комитете по доктринам" споров не будет, ага. И с решениями Комитета все будут единогласно согласны, конечно же.

Я вам своми вопросом "в никуда" как бы намекнул, что у вас в голове какая-то детская вера в мудрость Больших Дядь в Комитетах и в магию Незыблемых Директив. Та же благословенная OSI, с которой вы носитесь, нарушается только пыль стоит.

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

Вы не предлагаете никаких инженерных решений, решающих реальные проблемы. Вы предлагаете административное ограничение -- обязать всех писать только по директиве. Это никогда не работало, и работать не будет. В списке ["физические ограничения", "технические ограничения", "административные ограничения"], административные -- самые слабые, ибо легко нарушаются/обходятся. Они же -- самые заманчивые для тех, кто не умеет в технические.

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

Начинают?! LOL. Они начали когда вас ещё в проекте не было.

Просто люди не учат историю. И история не учит людей, ибо всякая старая глупость предстаёт перед ними в новом свете.

давайте это пропишем в некой «Глобальной доктрине парадигм программирования»!

Откуда вы берётесь такие, любители доктрин?

В дополнение к сотворению календаря -- сотворение часов:

Где там HATEOAS?

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

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

тащить тысячи тонн груза, используя не больше 20% массы под топливо 

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

Справедливости ради, Старшип не делал тормозного импульса, тормозил он об атмосферу. Он наоборот делал второй разгонный, который поднял перигей до 50 км. Но там явно ничего, кроме задач миссии, не мешало сделать второй импульс чуть длиннее и поднять перигей выше 100 км.

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

1940 год -- никакого звоночка не звенит?

В смысле "надо всё сделать без металлов"? Металлы с планеты куда-то исчезли?

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

Нервная система это очень плохой проводник.

Но она даёт идею о том, что можно заключить электролит (воду с ионами) в оболочку (неметаллическую) и получить сносный проводник, способный проводить киловатты. Это не так элегантно, как с металлическими проводами, но работоспособно.

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

А вам киловатты нужны.

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

Люди не с киловаттов начинали получать электроэнергию, а с микроваттов и единиц вольт. Я же упомянул бутстраппинг -- это когда начинаешь мал-по-малу, и постепенно наращиваешь, используя наработанное, получая петлю ПОС.

А химический путь без металлов

Перечитайте коммент, на который отвечаете. Откуда "без металлов", если я явно говорил про металлы?

Чтобы построить электрометаллургию нужны металлы.

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

 До них долго идти. 

Никто не обещал "быстро".

Вопрос ведь не в "проще ли", а в "возможно ли".

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

Для электричества опять же проводники нужны, а как их без огня сделать непонятно.

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

без металлов никуда и без их выплавки никуда. ... Металлы по другому получить нельзя

Выщелачивание (в т.ч. био-)? Вся электрометаллургия (электролиз, металлопластика)?

Любые "нужды", на которые нужны деньги, нужно не только придумать, но и пробить на местных выборах. Каждые пару лет каждому жителю города присылаются предвыборные буклеты, в котором подробно описана каждая их предлагаемых законодательных мер -- в основном что-то типа:

Measure X:

  • Краткое описание: Взять займ $X охуллионов на переоснащение школ в нашем школьном округе, срок погашения займа - ковырнадцать лет.

  • Детальное описание: <длинный текст на легалезийском>

  • Анализ от независимого эксперта: фискальный эффект -- увеличение налога на $x с домовладения на ковырнадцать лет.

  • Аргументы "за": <группа поддержки рассказывает, почему мера нужна и как будет зашибись>

  • Опровержение аргументов "за": <группа сопротивления рассказывает, как группа поддержки лукавит и вводит всех в заблуждение>

  • Аргументы "против": <группа сопротивления рассказывает, почему мера не нужна, и как будет плохо>

  • Опровержение аргументов "против": <группа поддержки рассказывает, как группа сопротивления лукавит и вводит всех в заблуждение>

Measure Y: <все те же пункты>

Measure Z: <все те же пункты>

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

В каждом выборном цикле таких мер к обсуждению набирается с десяток-другой -- на уровне города, на уровне округа/графства, на уровне штата.

Кареточный мотор вместо мотор-колеса решает проблему

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность