Татарин> Дорогое - не обязательно качественное. Мы же не знаем, сколько там внутри инженерного говна за красивой обёрткой.
Это так. Но дешёвое — обязательно некачественное, потому что без инвестирования в разработку ничего путного не получится. Вариант мегасерийности не особо это меняет из-за сокращения жизненного цикла гениями из отдела маркетинга. Запомнился пример где-то с рубежа веков. Была тема: насыщение рынка мабил — кому продавать, когда у всех будет мабила? А решили эту "проблему" в отделе маркетинга: мабилы больше долго не живут, напичканы ненужными функциями и при этом стали хуже (кроме обладателей детских рук) по эргономике. Это извращение технологического прогресса и инновационного бизнеса, задача которого предлагать новые решения проблем и на этом зарабатывать, а не создавать проблемы (вашему телефон уже год? да он устарел! в нём нет четырёхмерной
газовой лазерной камеры! и он не помещается в нажопный карман тугих джинсов, как у тётки в нашей рекламе!"), и методично насиловать размягчённые мОзги.
Татарин> Сделать по уму - кучу времени и денег, которые никто не будет им платить.
Будут и платят, когда есть предложение. Кроме "the low end theory" есть и другие — прямой антоним, например: "the first adopters" и прочие сегменты рынка. Глупо зацикливаться на наиболее крупном, но наименее прибыльном сегменте, и компании его регулярно покидают: в этом году по-моему поуходили из плазмы и т.п. большие имена в Азии. Но это лишь один аспект. А другой — если делать только говно, пусть и по принуждению маркетоидов или ещё кого, то вскоре только говно и смогут делать. И уже в другой стране при этом, потому что прибыли с говна не хватает на нормальный R&D.
Татарин> И "качество" здесь играет роль этак примерно 70-ую
Не 70, а 2-3. Код на первом месте, цена и качество — на 2 или 3. И качество не значит в данном случае "совершенство", а значит предсказуемость и надёжность — в 51 архитектуре врядли можно найти сюрпризы сегодня.
Татарин> Именно в этом соль: качество перестало быть столь уж ценимым.
Не перестало. Это мантра от отдела маркетинга, который не способен работать в инновационном бизнесе, но достиг высот в деле насилования мозгов всем, начиная от покупателей и заканчивая руководством компаний. Простые примеры, ваши же. Вот вы катаетесь на яхте и навигация у вас по GPS. Автопилот смотрит GPS и идёт по курсу, в то время как вы отдыхаете в гамаке/кресле на носу. А теперь выбирайте где вы
не хотите качества: в навигаторе, в автопилоте, или может в электрогенераторе, от которого всё это запитано? Примеры из реальной жизни: въехавшие в стены или застрявшие в переулках грузовики — из-за некачественных карт в навигаторах. Кому ж оно надо, качество, да? Можно винить в этом пользователя, но тогда нужно и "Б" сказать от его имени: такие навигаторы не нужны даром, если по их навигации можно влететь на десятки и сотни тысяч ущерба. Вот прямое последствие тех дисклеймеров. Сюда же можно вспомнить амовский кораблик, у которого винда вырубила энергетику. Или тутошний вчерашний падёж системы управления железной дорогой. И ещё пример близкий, из соседней темы про евронавт: люди, зная об этом "качестве" вообще отказались от автоматизации, потому что их жизнь от этого может внезапно сократиться. А там не жалеют особо на правильные компоненты, и +100 евро за качество отдали бы моментально, и +1000 думаю тоже, а может и +10к, если бы было гарантировано качество. Но гарантировано только что "продукт не пригоден ни к какому делу и производитель отказывается от любой ответственности". Скажете что евронавт один? А таких проектов (в плане автоматизации) полным-полно. Хотите качества в компах управления автомобилем? Там десятки-сотни контроллеров — хотите чтобы тормоза зависли, или движок спалился? Или ещё что-то такое забавное — просто из-за отсутствия качества и наличия дисклеймеров. В больничку если попадёте — там дозатор на капельнице, простая как бревно штуковина, и должна быть столь же безотказной. Просто примеры по мере поступления.
Татарин> Нет, отнюдь. Более того, те самые "великие свершения" делались с помощью порой ужасного говна: напомню хотя бы электроинтеграторы в системе управления Р-7 и её потомков.
Делались кем? Докторами наук. Тут пример был с управлением ракетой. Чтобы делать пули из говна, нужно быть маэстро. Шилка со своими вращающимися трансформаторами в цель попадала ещё в конце 50х. И когда я узнавал эту конструкцию, у меня слово "говно" в голове не появлялось. Наоборот, нормальное цифровая брезгливость к такому старью сменялась на глубокое уважение к авторам этой штуковины, и желание учиться
делать хорошо на их хх-летней давности электромеханическом контупере. А нынче ситуация развернулась: элементная база и инструменты позволяют делать фантастические вещи, но делать хорошо практически никто уже не умеет. Так что если раньше и могли сделать из говна пулю, то теперь в говно превращают любые материалы. Например, содрогает, когда вижу впендюренную на фпга модель корявого архитектурой процессора, под которые пишут корявые же программы, да ещё на корявом языке и с ошибками.
Татарин> Куча транзисторов и конденсаторов тоже, в общем-то, "не приспособлен". Никаких встроенных проверок правильности схемы.
Приспособлен. Посмотрите при случае историю создания Safeguard — бродит такой документ по сети. Как там строили систему наведения перехватчика, которому нужно было работать вблизи от ядерных взрывов (вторичный ЭМИ и проч). И сделали! Эти самые кучи отбирали, и отбирали успешно. Первая встроенная проверка правильности схемы — наличие или отсутствие дыма и искр. Остальное обычными методами: осциллограф, глаза, мозг.
Татарин> Кстати говоря, ООП в смысле контроля над сложностью - великая вещь. Тут я с Никитой полностью солидарен.
Я Никиту не читаю. Сложность не надо создавать, тогда не надо её и контролировать и бороться с ней. Создать пирамиду из чёрных ящиков с заклинаниями на входе и всем чем угодно на выходе — это не "борьба со сложностью", а "сложность любой ценой, всеми силами, как можно больше". Просто "сложность" — это сложность создаваемого объекта, а не сложность процесса работы над ним. Первая имеет физический смысл, вторая — нет. Если создан объект, структуру и свойства которого никто в мире не знает и не понимает, то он неприемлемо сложен. Вот например шаттл — под занавес обнаружился предельно опасный дефект проекта (пена), который всю дорогу был на виду у всех. А обнаружился он только постфактум из-за запредельной сложности конструкции и организации, её создавшей. Так что обвинения насе что они "не знают свою машину" наивно справедливы, но строго некорректны — их можно обвинить лишь в создании запредельно сложной машины, которую никто не знает в достаточной степени, что и было доказано позже физикой.
Татарин> Проблема (как я вижу) в ином: мощный язык с встроенным контролем, не позволяющий даже написать что-то не так - допускает в облать людей, которые часто делают ошибки.
Главное что на выходе, а не на входе. А ошибки делают все, и с раннего детства учатся на опыте их не повторять. Написать можно что угодно, но если инструмент не пропустит это на выход, проблемы нет. Если пропустит — всё напрасно.
Татарин> Если бы эти люди писали бы на ассемблере, до выпуска готового продукта (хоть сколь-нить употребимого) дело бы просто не дошло. А так - доходит и получается говно (то самое, килотоннами).
Это зависит от объёмов работы. Если вам нужно скопировать блок памяти из одного места в другое, вы напишите на ассемблере без ошибок за день. Если вам
в добавок вздумалось/приказали сделать так, чтобы этот процесс отображался с тенями и анимацией и т.п., то... ассемблер придётся отложить, зажать нос, и приняться за "продукт". В общем тезис в том, что правильные инструменты есть, но это не помогает. Как билет в спортзал: мало его иметь — туда нужно ходить и там целенаправленно работать, и результат будет. Я в реальной жизни знал человека, который купил абонемент в спортзал, ни разу не сходил, и огорчался что не помогает — и в том была лишь доля шутки
au>> Часто или нечасто — не знаю. Знаю что регулярно она абсолютно ничем не оправдана.
Татарин> И? Это же утверждение совершенно ортогональное моему.
Нет. Есть сложные задачи. Есть сложные решения. Сложность задачи не коррелирует со сложностью решения. Сложность решения — результат неправильной работы. Впрочем, пианист играет как может, как всегда.