LINUX.ORG.RU
ФорумTalks

Почему решая литкод ты никогда не станешь архитектором (но на самом деле никогда не хотел им быть)

 , , , опус,


7

2

Специальный выпуск для linux.org.ru.

Когда я был юношей, то они мне говорили «вырастешь — поумнеешь». Я вырос, но не поумнел. Но иногда я жалею, что не знал тогда того, что знаю сейчас — так и хочется написать тому юноше письмо из будущего, что я и намерен импровизировать в виде треда на LOR.

Среди взрослых людей есть довольно ярко выраженная дихотомия в способе принятия решений: люди, которые знают решение, и люди, которые это решение всегда способны найти за достаточно продолжительное время; те, кто ни за что не признают ошибку, и те, кто ошибаются на регулярной основе даже если уже знают решение; те, чей максимальный интервал принятия решений составляет «между двумя глотками смузи» (ведь «моё время дорого стоит»), и те, кто тщательно выстраивает цельную картину проблемы и неспешно обсасывают ее со всех сторон.

Поскольку первых людей сильно больше, чем вторых (соответственно спросу), то массовый программист, как правило, оценивается по тому, как много решений он может выдать между двумя глотками смузи. Индустрии нужно зарабатывать деньги на массовом конвеерном фуфле, индустрии не нужны оригинальные решения. Как решить большую сложную задачу на подобном конвеере? Взять больше смузи и хлебать чаще, посадить дополнительных смузихлебов на тестирование этого дела. Самое страшное — когда в подобном духе начинает работать Boeing, и самолеты начинают падать. Можно радоваться тому, что упал не ваш самолет, а можно подумать о том, что завтра ваше авто с вами за рулем может внезапно оказаться не ваше, потому что его хакнет 7-летний китайский ребенок, и единственная реальная защита — это тот факт, что Илон Маск платит всем денеги только чтобы уязвимостями в автомобилях и инфраструктуре не пользовались злоумышленники.

Мне вспоминается старый-престарый эпизод моей жизни, как я еще будучи школьником выиграл олимпиаду по информатике. Задача была на поиск кратчайшего пути (пардон, точного условия уже не помню, это было давно и неправда). Грамотный программист быстро выдаст вам «правильное» решение O(N log N) по алгоритму Дейкстры. Но поскольку на тот момент я не знал алгоритма Дейкстры и не был грамотным программистом, то вместо «правильного» решения выдал асимптотику O(N), заэксплуатировав некоторые особенности конкретных условий той задачи.

И второй эпизод, современный. Меня выбесило одно из недавних моих собеседований: некая контора дала мне тестовую задачку, являющуюся также одной из фундаментальных задач, решаемых их продуктом. Мне просто забыли сказать, что «правильный» метод должен быть O(N^3), и я случайно потратил целый день на разработку метода O(N^2), который оказался настолько неожиданным для «сеньоров», что им понадобилась целая неделя для анализа моего решения на 500 строчек (inb4: фу-фу, лапшемес), а на собеседование со мной собрали всю верхушку — на минуту у меня сложилось ощущение, будто меня собеседуют в гугл, а не в местную помойку. Я не удивлюсь, если вся их шарашка уже работает над интеграцией моего метода, и в скором времени получит премию, мол «наш отдел провел тщательные исследования предметной области...», а тебе, мартыха, хрен с маслом. И это собравшееся начальство на собеседовании было серьезно намерено развести меня на решение еще одной важной для их помойки задачки. Большая часть их штата джуно-мидлов занимается обвязками-прокладками-интерфейсами-тестированием, короче говоря, теми задачами, под которые можно нанять горсть рабов с улицы хоть прям щас — но эти люди в жизни не смогут выдать оригинального решения, а только будут ждать команд сверху.

Вишенка на тортике — под конец мне дали задачку с литкода, которая была будто специально подобрана так, чтобы быстрое решение требовало от меня знание специфичных фич стандартной либы, которое я им изначально честно заявил как «слабое». Те функции выучиваются наизусть за пару дней, а аналитическое мышление развивается годами, но нет «ты слабоват, мы можем тебя взять, но на ЗП в два раза меньше». Вот так вот: «не подскажешь, как пройти к вокзалу?... А теперь встань раком и вези меня туда».

Что мы всё про меня да про меня. С точки зрения массовой индустрии Дуглас Крокфорд — посредственный программист, и в недавнем треде большое число отписавшихся доходчиво пояснило, почему это так. Да, подумаешь, он создал какой-то там JSON, на котором работает половина индустрии, а еще создал JSLint, который ведь оказался так себе и был вытеснен ESLint-ом, и вообще «я могу сделать лучше, просто оно мне не надо». Но печальная истина в том, что тысячи смузихлебов писали на JS безо всякого линта, и, я уверен, при возникновении онного долго противились новой технологии. Проходит время, и вот уже каждый школьник считает своим долгом задействовать ESLint и JSON, а пишет, естественно, на ES2015, добрая половина фич которого была реализована при непосредственном участии Крокфорда (кстати, мало кто знает, что Object.keys/Object.values еще в ES5 было внесено по инициативе Крокфорда) — но этот школьник понятия не имеет, откуда взялись «мои любимые технологии».

Я хочу подчеркнуть, что это не одиночный пример мнения отдельной макаки — это закономерность, которую заметил не только я, и не только эту. Такие люди, как Крокфорд, могут бесконечно выдавать оригинальные идеи, но как исполнитель они так-себе, у них вечно шило в попе, толкающее на приключения, потенциально грозящие сорвать сдачу проекта (которая назначена на вчера, как обычно). Я задумался: а кому могут быть в самом деле нужны такие люди? Да, в силиконовой долине можно себе пригреть местечко — по этому пути успешно прошелся Крокфорд. А что делать, если я не хочу развивать силиконовую долину? Я в молодости отказался ехать туда, и сейчас не особо горю желанием (но и не предлагают уже). Вот такое вот я капризное животное.

Более того, если допустить, что Крокфорд выдал некое супер-пупер классное решение для вашей фирмы, то возникает проблема — кто его будет поддерживать/развивать? А также так называемый Bus factor — что делать, если Крокфорда убьют Крокфорд уйдет? Типовой сеньор-помидор, посмотрев на код Крокфорда, выпучит глаза и закричит «ты где такое видел? Кто так делает? У тебя своя голова на плечах есть?».

Всё ли так безнадежно, и есть ли более-менее прикладные задачи, которые не сможет решить сеньор-принципал-архитектор даже в обнимку с цистерной смузи, даже выдавая по два заученных решения литкода в секунду? А может быть и есть. Например, быстрой инкрементальной Agile Scrum Kanban Fast-shipping Test Driven методикой постепенной разработки невозможно реализовать распределенную отказоустойчивую БД со строгой согласованностью данных. Отказоустойчивость — это бинарное свойство, БД либо отказоустойчива, либо нет. Не бывает почти отказоустойчивой приблизительно распределенной БД которая чуть ли не сохраняет все подтвержденные транзакции (привет разработчикам MongoDB). Ну то есть она в таком случае не отказоустойчива и не дает гарантий.

Даже Clickhouse можно почти сделать при достаточном стратегическом запасе смузи (только для единственного хоста), но яндекс так и не осилил аналога ZooKeeper (кластер ClickHouse работает через ZooKeeper), поскольку никакое количество костылей, инкрементально разработанных в Яндексе ранее, так и не смогли заменить одного грамотно продуманного решения. Что мы по итогу видим сейчас? Вся инфраструктура Яндекса стоит на ZooKeeper, найди возможность положить ZooKeeper — весь Яндекс встанет колом. Тот же Facebook тоже полагается на ZooKeeper (хоть и меньше, они там саги любят). В Amazon вообще всё печально, и я не поверю, что с любым количеством денег Amazon способен создать аналог ZooKeeper, поскольку я читал статьи их отдела по исследованию распределенных систем, и уровень там совершенно никакущий. Достоверно мне известна ровно одна контора, способная разрабатывать распределенные СУБД с гарантиями согласованности — это Google. Она разработала самое первое подобное решение, Google Chubby, близкой копией которого позже стал ZooKeeper.

Но вот в чем проблема — ZooKeeper уже есть, а значит «ты нам не нужен». Что же еще требует глубокого вдумчивого погружения и нестандартной находчивости? Похожие требования есть у многопоточных приложений. Еще подобного рода мышление нужно при тяжелой глубокой отладке софтины, на отладку которой систематически забивали, предпочитая спринты и быстрые релизы. Правда, с распространением защищенных сред выполенния, вроде JVM, CLR, JS, и Python, неустранимая потребность в отладке сильно снизилось, потому что в крайнем случае можно просто перезапустить контейнер или иметь запасные контейнеры сразу. (Еще есть UI/UX, но про мертвых либо хорошо, либо ничего).

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

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

Парадокс в том, что смузи-мастеры чуть ли не поголовно мечтают быть творцами. Какой смысл этого стремления? «Хорошо там, где нас нет»? «Полчаса побунтовал - и фатит»? Прежде чем окончательно и бесповоротно решить встать на этот путь, посмотрите на настоящих успешных творцов (не путать с клоунами вроде меня или Илона Маска). Такие люди не заработают заоблачных денег, их не расхватывают на рынке труда, им не так просто устроиться на обычную должность, а даже если устроятся — умрут со скуки, попутно занимаясь ремонтом того, что не ломалось, таким образом выведя из строя какой-нибудь старый добрый сервис на Cobol или MUMPS, написанный в 70-х годах «настоящими программистами, настоящими, не то что новое поколение».

Показательно, что работодатели идут навстречу этому стремлению, мол «пишешь конфиги для CI/CD? Ну ты же архитектор теперь». Аналитический склад ума нельзя поменять за месяц, его нельзя быстро приобрести или положить на полку на период отпуска. Wannabe-творец-на-выходные в лучшем создаст популярный клон существующего софта — даже не потому, что не способен ни на что другое, а потому, что понимает, что сообщество не примет ни одной значимой инновации серьезнее плагина к Emacs или очередных скрипт-костылей для сборки C++. Да и то, плагины к Emacs не нужны, поскольку уже есть настоящее проверенное решение в виде Vim и его аналогов.

И я не могу упрекать работодателей (как правильно заметил Kogrom по ссылке выше): им нужна взаимозаменяемость и предсказуемость, им нужно снижение рисков и издержек; им нужен посредственный сайт, который будет создавать иллюзию наличия этого сайта у компании — а больше и не нужно; заказчикам нужна иллюзия масштабирования и отказоустойчивости, с бессмысленными невыполнимыми требованиями к системы — выдайте ему микросервисную архитектуру со стоимостью и временем разработки в 3 раза больше грамотного монолита, также бонусом дайте ценные инструкции по масштабированию бигдата-серверов монги сверх 500 ГБ (на случай, если его бигдата размещается в кластере из айфонов). Можно упрекать разве что себя (мне — себя, а вам — себя, не меня). Например, много лет назад я имел возможность выбрать семью и карьеру, но я выбрал то, что выбрал — не иметь власти, но знать всё и ничего одновременно. В этом есть свой кайф и неудобство одновременно.

★★★★

Последнее исправление: alpha (всего исправлений: 6)
Ответ на: комментарий от AndreyKl

Но поскольку тебе прям так претит слово «великий», то я хочу отметить что я тоже не использую слово «великий» в отношении программистов. Как то обычно язык не поворачивается. Но всё таки если придераться, то моё мнение сводится к тому, что заслуги эйнштейна и келдыша вполне сравнимы. и никитина. и колубма. и вероятно тех кто разработал таки этот несчастный wnt или .java/.net.

Какая-то есть в этом профанация. Кто-то придумал такое, для чего нужно быть семи пядей во лбу, иметь не только таланты, но уникальный ум и пахать как конь. Кто-то спьяну поплыл грабить корованы и волей ветра его принесло на новый континент. Кто-то написал несложную програмку, но оказался сыном матери, которая рапределяла оборонные заказы. Кто-то тушкой полетел в космос на ракете придуманной и запущенной совсем не им. Ладно, их можно объединить словом «известный». Но приравнивать их заслуги? )

vaddd ★☆
()
Ответ на: комментарий от byko3y

И дальше спасибо ebay (или даже сотрудникам datatechnology) за реализацию того, чего 15 лет не могут сделать литкод-смузихлебы в яндексе. Вот что они умеют — так это размазать реализацию прокладки с сокетами и обработчиками состояния на три папки (src/program => src/Server => src/Coordinator) так, что мне пришлось потратить ненулевое время на поиск всех слоев обвязок nuraft. Мне даже кажется, что такая ситуация вызвана политикой в компании, из-за чего сотрудникам просто невыгодно бегать на долгую дистанцию, им проще быстро сдать что-нибудь, получить заслуженные палки, и забыть про проект как про страшный сон, чем серьезно подходить к проблеме с заранее неясным сроком реализации.

Т.е. яндекс виноват в том, что… не стал изобретать велосипед, а взял готовое, проверенное, протестированное решение с доказанными на бумаге свойствами? Создать алгоритм уровня raft - это не js-фреймворк написать, по этому статьи пишут, наверняка чуть ли не докторские. У меня начинают появляться подозрения, что у тебя с головой не все в порядке, если для тебя изобретание велосипеда - хорошо, а решить много проблем малым количеством усилий и кода - плохо.

Тебе, наверное, в пашкограм нужно идти работать, у них такие же больные люди с NIH-синдромом работают.

derlafff ★★★★★
()
Последнее исправление: derlafff (всего исправлений: 1)
Ответ на: комментарий от derlafff

Если не считать децентрализованные блокчейн-помойки, то алгоритмов консенсуса можно по пальцам пересчитать. И действительно, зачем каждый раз переизобретать колесо? Более того, если взять тот же рафт, он довольно простой концептуально, но грамотно его реализовать — тот ещё квест. Люди десятилетиями профессионально пишут распределённый софт и все равно находят баги в реализации консенсуса. Поэтому очень многие даже не ввязываются в эту затею, отдавая вопросы консенсуса всяким зоокиперам или даже etcd.

У топик-стартера есть какой-то пунктик на великих новаторах прошлого, тогда как любая инженерия, да даже более широко — весь научно-технический прогресс человечества — есть тупое инкрементальное развитие. Ни Колумб, ни Эйнштейн, ни даже e-bay не сделали ничего такого, чего человечество не сделало бы без них годом раньше, годом позже. Но наш друг живет якорями великих.

filosofia
()
Ответ на: комментарий от filosofia

Более того, если взять тот же рафт, он довольно простой концептуально, но грамотно его реализовать — тот ещё квест.

Более того скажу, пусть ТС возьмет произвольную либу рафта и напишет что-нибудь чуть более сложное, чем hello-world, ведь это же так просто (тут начинает играть музыка). Распределенный софт - дофига, как сложно.

derlafff ★★★★★
()
Ответ на: комментарий от derlafff

Т.е. яндекс виноват в том, что… не стал изобретать велосипед, а взял готовое, проверенное, протестированное решение с доказанными на бумаге свойствами? Создать алгоритм уровня raft - это не js-фреймворк написать, по этому статьи пишут, наверняка чуть ли не докторские

Если бы яндекс взял готовое, проверенное, протестированое решение, то я бы его только похвалил, Проблема в том, что Raft разработан в 2014, а где всё это время был Яндекс? Я тебе скажу где — ждал, пока кто-то сделает прикладную реализацию сервера на этом протоколе. И дождался. Взял, на клей посадил — вот тебе и весь тырпрайз девелопмент. А людей, которые могут сам протокол Raft реализовать, в Яндексе нет (или их не пускают к разработке).

Тебе, наверное, в пашкограм нужно идти работать, у них такие же больные люди с NIH-синдромом работают

Секундочку, разве в 2021 телеграм — это не самый годный месенжер?

byko3y ★★★★
() автор топика
Ответ на: комментарий от filosofia

У топик-стартера есть какой-то пунктик на великих новаторах прошлого, тогда как любая инженерия, да даже более широко — весь научно-технический прогресс человечества — есть тупое инкрементальное развитие. Ни Колумб, ни Эйнштейн, ни даже e-bay не сделали ничего такого, чего человечество не сделало бы без них годом раньше, годом позже. Но наш друг живет якорями великих

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

byko3y ★★★★
() автор топика
Ответ на: комментарий от derlafff

Более того скажу, пусть ТС возьмет произвольную либу рафта и напишет что-нибудь чуть более сложное, чем hello-world, ведь это же так просто (тут начинает играть музыка). Распределенный софт - дофига, как сложно

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

byko3y ★★★★
() автор топика
Ответ на: комментарий от rupert

а nodejs - точно.

Java EE и ASP.net были давно. Поменяли язык на другой (также уже давно существующий) и якобы принципиально новая технология.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от Exmor_RS

купить себе баночку пива и выпить её (убьёт старые нейрончики и плохие связи

Откуда пиву знать, какие связи плохие, а какие хорошие?

Nervous ★★★★★
()
Ответ на: комментарий от Nervous

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

Exmor_RS ★★★
()
Ответ на: комментарий от AndreyKl

Эйнштейн использовал преобразования Лоренца и что там ещё для написания ОТО. Ото в начале была не так страшна. Да, за годы он развил и СТО. Я не буду спорить что Эйнштейн - великий.

В этом ролике:

https://www.youtube.com/watch?v=dTKyeVWyJhI

про Эйнштейна все вранье? якобы он и его первая жена плагиаторы.

sanyo1234
()
Ответ на: комментарий от filosofia

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

А разве юридические условия GPL подобных лицензий не являются прорывным импульсом для развития ПО?

sanyo1234
()
Ответ на: комментарий от Shaman007

Ну вот @Legioner пишет, что для того, чтобы работало надо 3 невыполнимых условия сразу сходу.

Да все фигня, лечиться появлением сменяемого председателя и откладыванием 10%-20% от прибыли на развитие.

Наличие разделения труда тоже не проблема, можно скоммуниздить процентное соотношение зарплат из рынка.

Макрс по такому принципу предлагал экономику строить, тоже не получилось.

Напомню, что Маркс только описал как работает кап.экономика и расписал её проблемы и что там не справедливо все. Все остальное уже дополнили после него. Так например, Ленин собрал государство от того, что осталось после империи и вполне успешно, но к сожалению не все потомки могли управлять этой машиной, но таки экономика выдержала восстановление после революции + гражданской войны и таки после мировой войны.

p.s.

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

AntonyRF ★★★★
()
Ответ на: комментарий от wandrien

Напомнило коммуны, которые организовывали евреи, чтобы обустроиться на территории Израиля. И таки обустроились.

Смешно, но соглашусь

AntonyRF ★★★★
()
Ответ на: комментарий от dk__

Сможете - хвались. Я буду аплодировать стоя целый день.

Договорились)

AntonyRF ★★★★
()
Ответ на: комментарий от BceM_IIpuBeT

Расскажи подробнее, не вижу связи между задачами и типом организации

AntonyRF ★★★★
()
Ответ на: комментарий от byko3y

И ты придумал план для создания очередной аутсорс-конторы, коих тысячи.

Ты так говоришь как будто в этом есть что-то плохое. Важна не удочка, а способ рыбалки в этом случае.

AntonyRF ★★★★
()
Ответ на: комментарий от AntonyRF

и что там не справедливо все

У него вообще про справедливость ничего нету.

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от AntonyRF

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

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

Harald ★★★★★
()
Ответ на: комментарий от Harald

Бедные атланты. Некуда им прислониться, везде совок...

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от rupert

Скажу по другому. Выбор между map и unordered_map - территория обычного программиста. Архитектор не должен туда лезть. Его задача - сделать так, чтобы несколько программистов выполнили проект быстрее, чем это бы сделал один. Это нетривиальная задача, которая намного сложнее, чем оптимизация через выбор стандартных контейнеров. Поэтому и не всегда получается красиво.

Kogrom
()
Ответ на: комментарий от AntonyRF

можно скоммуниздить процентное соотношение зарплат из рынка

Вся суть адептов коммунальщины.

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

Надо смотреть не сколько развалилось, а сколько осталось. А осталось много, куда больше, чем артелей «Напрасный труд».

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 1)
Ответ на: комментарий от byko3y

Более того, мне не обязательно брать рафт, потому что подобные протоколы я могу писать сам.

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

Правда, ты немножко забыл, что распределенные протоколы пишут не боги.

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

derlafff ★★★★★
()
Последнее исправление: derlafff (всего исправлений: 1)
Ответ на: комментарий от byko3y

Проблема в том, что Raft разработан в 2014, а где всё это время был Яндекс? Я тебе скажу где — ждал, пока кто-то сделает прикладную реализацию сервера на этом протоколе.

А людей, которые могут сам протокол Raft реализовать, в Яндексе нет (или их не пускают к разработке).

Яндекс за ~5 лет командой из 15 (пятнадцати) инженеров написал весь ClickHouse с нуля. А чего добился ты, чтобы с высокой колокольни критиковать их? (да еще и при этом показывая явное незнание матчасти)

derlafff ★★★★★
()
Ответ на: комментарий от X512

Посмотрите на проект Serenity, там один человек за год написал полноценную UNIX-подобную ОС

В чем ее преимущества? Или просто один поехавший от свободного времени через копипасту запилил копию линукс?

Тогда чему удивляться, что оно не нужно?

всё уже написано

Да-да, и про науку подобные заявления на официальном уровне проскакивали.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от derlafff

Конечно же покажу https://vectorized.io/blog/fast-and-safe/

The only difference is that Apache Kafka was run with in-memory replication (using the page-cache) and flushing after every message. Redpanda can only be operated in safe mode (flushing after every batch)

(5) 100MB/s (100K msgs/s) 13.737ms 20.552ms -33.16% - и там хватает подобных аномалий

В общем, может вашу кафку очередные смузихлебы писали, но jvm тут точно не при делах. 5-10% поверю, но не в 10-100 раз. Там они наверное еще на DPDK свою систему подняли?

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от foror

(5) 100MB/s (100K msgs/s) 13.737ms 20.552ms -33.16% - и там хватает подобных аномалий

Если посмотреть на конкретные цифры задержки, то очевидные аномалии и нестабильности от нагрузки там именно у кафки, у redpanda цифры стабильны.

В общем, может вашу кафку очередные смузихлебы писали, но jvm тут точно не при делах.

jvm тут точно при делах.

cassandra переписали на плюсы и получили те же волшебные 100x улучшение задержки, лол: https://www.scylladb.com/2021/08/24/apache-cassandra-4-0-vs-scylla-4-4-comparing-performance/

Cassandra 4.0 has better P99 latency than Cassandra 3.11 by 100x!

Но только там это лишь вершина айсберга, все гораздо, гораздо хуже.

Про clickhouse vs jvm-монстров я уже не буду говорить, там уже стыдные числа получаются. ebay при переходе с druid на clickhouse смог уменьшить в сто раз количество железа.

Эпоха jvm ушла. Наконец-то.

derlafff ★★★★★
()
Последнее исправление: derlafff (всего исправлений: 2)
Ответ на: комментарий от derlafff

Если посмотреть на конкретные цифры задержки, то очевидные аномалии и нестабильности от нагрузки там именно у кафки, у redpanda цифры стабильны.

Либо у кого-то руки из жопы растут: «We used the recommended production setup and environment from Confluent’s fork of the CNCF open messaging benchmark.» Я, например, не возьмусь делать публичные бенчмарки с незнакомой мне платформой с дефолтными настройками. На такое только смузихлебы отваживаются.

Так и где 100x? Вижу как твоя redpanda в заднице на серьёзных нагрузках: (9) 1.25GB/s (1.25M msgs/s) 202.667ms 237.688 -14.73%

cassandra переписали на плюсы и получили те же волшебные 100x улучшение задержки, лол

Сразу 100500 - не стесняйся, твои кресты наверное и 100x дают фору ассемблеру, да?

foror ★★★★★
()
Ответ на: комментарий от foror

Либо у кого-то руки из жопы растут

Да-да, конечно, но более хорошего, честного бенчмарка, от тебя конечно же, не будет.

Я, например, не возьмусь делать публичные бенчмарки с незнакомой мне платформой с дефолтными настройками

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

На такое только смузихлебы отваживаются.

В итоге у тебя получилось очень самокритично, да.

Так и где 100x? Вижу как твоя redpanda в заднице на серьёзных нагрузках: (9) 1.25GB/s (1.25M msgs/s) 202.667ms 237.688 -14.73%

Какие жалкие попытки закопать голову в песок. На целых 14 процентов медленней, на целых 30ms, при полной доминации в практически всех остальных тестах. В заднице, ага. Продолжай сидеть в своем мани-мирке.

Если что, там тебе даже заботливо написали, что есть баг на улучшение именно этого юзкейза: https://github.com/vectorizedio/redpanda/issues/542

Сразу 100500 - не стесняйся, твои кресты наверное и 100x дают фору ассемблеру, да?

мои кресты

Какой-то жалкий разговор пошел, тебе совсем по делу нечего сказать осталось?

derlafff ★★★★★
()
Ответ на: комментарий от vaddd

но оказался сыном матери, которая рапределяла оборонные заказы

Скажем так, причём тут это? Коррупция есть практически везде. Я не называю дос который юный билли продал межделмашу великим творением. Но nt наверное таки да, произведение искусства.

Насчёт космоса - я согласен что Гагарин - символ, и его личная заслуга в смысле вложенного труда минимальна. Ну, в том смысле что именно в создание ракеты и в полёт. Но при этом я понимаю что это был конечно отличник боевой подготовки и всё такое, что тоже вообще то вполне себе «пахать как конь» и иметь незаурядные данные, но всё таки космос - это не его достижение а достижение учёных и инженеров. И всё таки это был риск для его жизни. Да белка, да стрелка, да испытания. Но это всё равно очень большой риск, особенно для первопроходца. Сказать что ему незаслуженно дали Героя, мне кажется это будет не очень отличаться от профанации.

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

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

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 2)
Ответ на: комментарий от Nervous

Вся суть адептов коммунальщины.

Но-но-но, я просто наигрался в стандартные галеры и хочется странного.

Надо смотреть не сколько развалилось, а сколько осталось.

Ещё двести лет назад устройство этих фирм выглядело каким-то бредом. Так что не убедительно.

AntonyRF ★★★★
()
Ответ на: комментарий от Harald

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

AntonyRF ★★★★
()
Ответ на: комментарий от BceM_IIpuBeT

Это применяется довольно редко на практике.

Вон в 2008(9?) дали лемманам грохнуться. Ибо спасать их было бы еще дороже, чем все последствия после обвала.

dk__
()
Ответ на: комментарий от AndreyKl

Но nt наверное таки да, произведение искусства

Это не произведение искусства. Это результат труда немалого количества хороших трудяг

Это смелость, риск и расчёт. Да, великий путешественник

Какой еще расчет? ) Он в Индию плыл и заблудился )

vaddd ★☆
()
Ответ на: комментарий от vaddd

Какой еще расчет? ) Он в Индию плыл и заблудился )

Не совсем. На сколько я в знаю, там история такая: плавать в индию обычным путём почему то было проблемно (вероятно из-за англичан). Люди уже были в курсе что земля круглая и что в принципе можно приплыть в индию если поплыть в другую сторону. Но точно радиуса земли не знали и пути проложены не были. Ну он рискнул поплыть в другую сторону. И да, заблудился.

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

Ровно как и в случае с эйнштейном.

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от BceM_IIpuBeT

Ну нельзя предусмотреть и сбалансировать вообще все, всегда, во всем, везде. Будут какие-то перекосы. Будет их абуз. Это приведет к проблемам. И так по кругу, всегда.

Кризис 2008 уже невозможен. И не только потому, что сейчас триллионы печатают, но и по куче других регуляторных причин. Там тогда гайки хорошо закрутили.

Генералы готовятся к прошлым войнам. Экономисты к прошлым кризисам.

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

dk__
()
Ответ на: комментарий от AndreyKl

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

vaddd ★☆
()
Ответ на: комментарий от vaddd

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

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

AndreyKl ★★★★★
()
Ответ на: комментарий от derlafff

Такие вещи должны не просто писаться группой людей, но и проверяться годами

Facebook, выкативший Delos за 8 месяцев, с тобой не согласится. И нет, это не было годами разрабатываемое ранее известное решение — на мой взгляд это просто тщательно подбитая груда костылей, которая, должен признать, таки не имеет изъянов в плане нарушения согласованности данных (по крайней мере я не нашел проблем по описанию алгоритма). Да, у них есть другие проблемы, но у кого ж их нет.

Точно так же, как и криптография. Говняшку, которую ты за вечер напишешь, к продакшону даже близко подносить нельзя будет

Никто ж не говорит, что криптографию писать просто. Ну так что ж делать, не писать ее теперь? Биткоин же как-то сделали?

И специально упомянул, что raft - это не только код и алгоритм, но и многолетняя его формальная проверка

Прям-таки многолетняя? Или все-таки он прекрасно формально доказывается от силы за месяц? Я не спорю, что формальное доказательство будет страниц на 10, но это совсем не тот космос, который ты описываешь.

byko3y ★★★★
() автор топика
Ответ на: комментарий от derlafff

Яндекс за ~5 лет командой из 15 (пятнадцати) инженеров написал весь ClickHouse с нуля. А чего добился ты, чтобы с высокой колокольни критиковать их?

А Facebook написал Delos с нуля за 8 месяцев, и что дальше? NoSQL ядро ClickHouse пишется от силы за пару недель. В колоночных БД нет никакого чуда, они не становятся сложнее в реализации только от того, что ими мало кто пользуется на рынке труда. Всё остальное — инкрементальная разработка доп фич и оптимизация, которым нет конца и края, потому никаких «окончательно написал» там нет, разработка ClickHouse по прежнему идет, она не заканчивалась на пяти годах.

byko3y ★★★★
() автор топика
Ответ на: комментарий от byko3y

Никто ж не говорит, что криптографию писать просто. Ну так что ж делать, не писать ее теперь? Биткоин же как-то сделали?

Писать, но не в стиле «Я Д’Артаньян, а вы дураки, поэтому я за ночь напишу superior-реализацию»

Прям-таки многолетняя? Или все-таки он прекрасно формально доказывается от силы за месяц? Я не спорю, что формальное доказательство будет страниц на 10, но это совсем не тот космос, который ты описываешь.

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

На каждой реализации нужно повторить это еще раз.

derlafff ★★★★★
()
Последнее исправление: derlafff (всего исправлений: 1)
Ответ на: комментарий от foror

В общем, может вашу кафку очередные смузихлебы писали, но jvm тут точно не при делах. 5-10% поверю, но не в 10-100 раз. Там они наверное еще на DPDK свою систему подняли?

Справедливости ради, по нижним перцентилям ты прав. Но когда речь идет про 90+, то JVM вносит неожиданные задержки, которые могут быть очень большими.

byko3y ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.