Про ёжика в тумане, зазнайство, языки программирования и вериги
Я долго сдерживался, но всё-таки напишу.
Разговоры с IT-специалистами всё больше и больше напоминают мне беседу с папуасами, которые утверждают, что небоскрёбов не бывает, потому что солома постройку выше трёх этажей не выдержит.
Разговоры с IT-специалистами всё больше и больше напоминают мне беседу с папуасами, которые утверждают, что небоскрёбов не бывает, потому что солома постройку выше трёх этажей не выдержит.
no subject
пишете "И, если рабочий код ещё есть смысл переписывать руками по моделям, чтобы он был чистый и полностью прозрачный, для тестирования модели гоняют только так. ".
Ну вот ваша модель ведь написана на каком-то языке/майндкартах. Если она достаточно формализована, то перевод в маш.код - вещь автоматическая => это дело компилятора. Да, компиляторы несовершенны, runtime'ы тяжёлые, поэтому часто приходится ручками что-то подправлять, уточнять.
И вот только если ваша модель недостаточно формализована, остаётся какой-то простор для творчества. А иначе это просто исправление недоработок компилятора.
==============
Тем не менее, тот же Хаскель можно вполне использовать для набросок псевдокода ручкой на бумажке (в отличие от С++). Т.е. вполне себе язык для моделей. И поэтому вообще непонятно, зачем заниматься кодогенерацией из моделей, как отдельным родом деятельности - это же компиляция.
Кроме того, как показывает здравый смысл и практика, лучше не смешивать автогенерированный код и написанный вручную. Т.е. человек в 99% случаев не должен заниматься ручной правкой автогенерированного кода. Иначе возникнут проблемы при исправлении ошибок модели.
no subject
Ну вот ваша модель ведь написана на каком-то языке/майндкартах.
Не обязательно. Модель может быть чисто графической как в детских приложениях для создания программ из блоков.
И вот только если ваша модель недостаточно формализована, остаётся какой-то простор для творчества.
Какого творчества? Мозги надо применять для решения задачи.
Формализована должна быть только система (язык, графические обозначения, правила построения). Сама модель может быть неполной в смысле описания решения задачи. Совершенно также на уровне модели можно проводить тестирование или сборку из модулей.
И компилировать её разными компиляторами для разных платформ или с разной оптимизацией. И тестировать на разных платформах с последующим устранением ошибок в самой модели.
Кроме того, как показывает здравый смысл и практика, лучше не смешивать автогенерированный код и написанный вручную.
Вообще-то это разные домены в терминах Шлейер-Меллора.
На уровне модели находится решение задачи. Дальше можно генерировать код для какой-то платформы. Можно поиграться с генератором и оптимизировать генерацию кода. Можно реализовать код вручную для модели или только заменить какие-то сгенерированные модули, если это, скажем, нужно для построчной верификации в соответствии с требованием стандарта. Или стоит задача выжать максимальную производительность, а генератор кода не очень хорош в этом смысле.
А можно все три процесса - моделирование, оптимизацию генераторов, написание каких-то модулей руками - проводить параллельно.
no subject
К тому, что я вас не понимаю. Поскольку я вас давно читаю, мысели часто умные, есть смысл уточнить, разобраться.
> Модель может быть чисто графической как в детских приложениях для создания программ из блоков.
Ну графический язык программирования. Их мало, но они есть. Если достаточно формализованы, как Scratch или LabView, то к ним можно написать компилятор. У них есть как достоинства, так и недостатки по сравнению с обычным текстовым представлением.
> Какого творчества? Мозги надо применять для решения задачи.
В програзме, если задача формализована, человек для её решения не нужен, а даже вреден.
> Сама модель может быть неполной в смысле описания решения задачи.
В Хаскеле для этого есть даже специальное слово undefined (не везде, конечно, можно поставить). На других языках обходятся исключениями типа failwith "Unimplemented"/throw "Unimplemented" или assert'ами и другими костылями.
> На уровне модели находится решение задачи. Дальше можно генерировать код для какой-то платформы.
Можно интерпретировать, да.
> Можно реализовать код вручную для модели
Ну можно. Это как написать модель на бумажке на Хаскеле, а потом её вручную перевести на C. Как правило, это делать не нужно, т.к. есть компилятор.
> или только заменить какие-то сгенерированные модули
Это называется foreign function interface/FFI.
=================
Вы отделяете графические языки программирования от текстовых, а остальные - нет. Поэтому вы называете написанием кода задачу, по-сути, компилятора, а остальные написание кода не отделяют от создания модели.
no subject
В програзме, если задача формализована, человек для её решения не нужен, а даже вреден.
Мы говорим о разных вещах. Не надо с "теории" постоянно сваливаться на "знакомое".
Модель - это модель. По-моему, это элементарно. Как-нибудь потом напишу.
no subject
Ну что заварили — то и получили, нечего на дикарей пенять. Беседа прошла в традиционном стиле «есть два мнения, моё и неправильное», народ хвалил своё болото (уровень абстракции, на котором располагался). Попытки из этого вылезти были, но делали их не Вы.
no subject
Если посмотреть на время, когда начал появляться этот заголовок, я начал совершенно с других тем и очень-очень давно.
вполне объективно оцениваемый принцип модульности и декомпозиции
Он не объективный, а субъективный. Проблема в том, что призыв делать модули маленькими - это не первичная потребность.
Но мало кого интересовали вопросы "как?" и "почему?" В основном были рассказы про солому.
Да, пост не столько про недавние дискуссии, сколько про общие ощущения, включая левенчуков, проповедников agile и разных UX заклинателей.
no subject
Проблема вполне оценима объективно (не в этом разговоре), и не только с точки зрения разделения сущностей, не только с точки зрения математики и семантики (представьте себе иероглифы на 700 слов и их количество в языке), не только в инженерии (агрегат, в котором все соединения заварены), не говоря уже о программировании. Но дело не только и не столько в этом: бывают разные экзотические условия, но в данном случае способность или даже полезность отдельного примера программы сами принципы ещё не опровергает.
Аудитория Левенчука мне непонятна. Если же говорить о технике agile, то это, конечно, обман населения, но imho это всё же не повод бить в доме всю посуду, и тем более, отказываться от определяющих условий. В какой-то области, для какой-то пары и agile может работать. При этом я могу считать её для себя неприемлемой.
no subject
Это не та проблема. И принципы не те. Я не зря написал, что тема старая. И это настолько элементарно, что странно, что это нужно объяснять.
Как-нибудь попозже.
Аудитория Левенчука мне непонятна.
Он просто обещает, что его волшебная теория заменит десятилетия опыта. И всегда полно людей, которым умными словами поговорить о решении важнее поиска самого решения.
Agile же не некий набор трюков, годных в одних ситуациях и не годный в других, а массовое явление, переписавшее критерии качества в индустрии. Важно не то, что имели ввиду создававшие манифест, а то, во что это сейчас вылилось.
no subject
О Левенчуке — я просто не знаю кому и что он объясняет, Денису Попову с Болгеносом его работа может быть и полезна, Нуралиеву с 1с бесполезна во всех смыслах. Он вообще может «маркетингом» заниматься или сколково, я просто увидел у него очевидную лапшу и отложил в сторону зарядки воды по телевизору. А теория от него, собственно, не зависит, он от неё — да.
Набор трюков вполне может овладевать массами, на долгие годы, популярность не делает его чем-то большим. Это уже проблемы индустрии, куда и как бежать.
no subject
(Anonymous) 2018-03-18 02:36 pm (UTC)(link)По сути, он пробует предлагать философию (ну, скажем в том смысле что Альтшулер в своем ТРИЗе),
при этом наотрез открещиваясь от того что это именно философия,
в чем есть отдельная проблема...
так вот, философию подхода к построению, организации и сопровождения БОЛЬШИХ систем.
Ну, в том смысле боьших, что это системы, для работы которых обычной соображалки уже недостаточно.
Хороошо это или плохо?
А вот ХЗ.
Я не могу как автор так огульно его обвинять в "консультанстве",
которое для иже с ним, чуть ли не самый смертный грех (ак будь-то других грехов, более насущных, мало)
Лично у меня к нему, тот же вопрос что и например к оппозиции в РФ -- каким образом он собирается брать власть -- то есть, обеспечивать торжество его подходов в массах?
На что он отвечать очень-ма не люит
no subject
ТРИЗ - это не философия, а тщательно и долго собиравшийся и систематезировавшийся каталог решений реальных задач. Мета-база по патентам. Короче, инженерный подход к информации без трепологии.
no subject
(Anonymous) 2018-03-18 03:18 pm (UTC)(link)А ТРИЗ -- вполне себе философия,
с захоом на "теорию", но поелику теория особо не вытанцовалась,
так и осталась -- философия. (на всякий случай, я не употребляю здесь "философия" как ругательство, а только как плейсхолер "некоторого набора практик и представлений, похожего на научный", но научным не являющийся... потому что не доросло или еще почему.)
Вы, похоже, становитесь коллекционером каких-то непоня
(Anonymous) 2018-03-12 12:57 am (UTC)(link)Ну да, при нынешнем хайпе в IT набежали толпы, выражаясь по-украински, "заробитчан". После пары лет "карьеры" на очередной оутсорс-галере их менеджеры, стремясь сэкономить на зарплате, навешали лычек Senior что-то-обо-что-то (слыхали, небось, грустные шутки про "двадцатитрехлетних сениоров" - они об этом). Теперь эти гурЫ (ой-вей, я велИк, ибо прочитал про двадцать три Gang-of-Four темплейта и работаю погонщиком Team Lead'ом!) снисходительно учат "замшелых стариков" жизни. Так ведь не первый это хайп, и не последний. Вы ж наверняка помните крах доткомов в начале нулевых, кода смыло подобную шушеру без всякой жалости, и поделом - что ж Вы так душой переживаете за "папуасов"?
Не тратьте время и усилия на идиотов, право: для двадцатилетнего сениор сопляка _действительно_ не требуется ничего круче Джава-ынтерпрайза (или что там на этой неделе модно в оутсорсе). Ну, так пусть себе и гниют, оставьте их в покое.
Re: Вы, похоже, становитесь коллекционером каких-то непо
Меня интересует не борьба за истину, а понимание того, как люди думают.
А современные гуры книжек не читают. Это прошлый век. Двадцать три темплейта они изучают по картинкам.
При этом, полно профессионалов, копающих вглубь. И они так углубляются в недра какой-то хитромудрой технологии, что видят окружающий мир только через маленькое отверстие со дна колодца.
Re: Вы, похоже, становитесь коллекционером каких-то непо
(Anonymous) 2018-03-12 08:36 am (UTC)(link)ИМХО и те, и другие заслуживают одного и того же - после пары итераций пожать плечами и сказать "ну, не выдержит солома трех этажей - значит, не выдержит. Кому охота помечтать про другие стройматериалы - айда на <ссылка на ресурс с вменяемыми людьми>, а остальным спасибо за содержательный разговор".
Или Вас задевает, что папуасы будут считать себе победителями этой конкретной дискуссии?
PS Да, от имени молодых папуасов ОЧЕНЬ прошу предоставлять ссылку, т.к. за разговором иногда следят очень неожиданные люди, и для них информация о не-соломе будет очень полезной.
Re: Вы, похоже, становитесь коллекционером каких-то непо
Принципиальное отличие в потенциале. Человек, закопавшийся в по уши в какую-то сложную тему мог бы потратить ресурсы на другое. Тут интересно найти ответы на вопросы "Почему?" и "Что делать?"
Или Вас задевает, что папуасы будут считать себе победителями этой конкретной дискуссии?
Дело не в дискуссиях, а в глобальных процессах. Я несколько раз ожидал технологические прорывы, и каждый раз они не происходили в силу недостатка ресурсов и контрпропаганды. Опять же, интересна не конкретная дискуссия, а поиск причин, почему люди верят в то, во что верят? и что с этим делать?
Плюс очень часто бывают ситуации, когда всякие ... не очень умные люди рекламируют менеджменту откровенный бред. Нужно уметь адекватно строить аргументацию в таких ситуациях.
ОЧЕНЬ прошу предоставлять ссылку
Ссылки нет. Это просто выражение общих впечатлений от стандартного паттерна поведения. Я параллельно общаюсь с какими-нибудь проповедниками системной инженерии, утверждающими, что мир можно описать прямоугольничками со стрелочками, и с переучившимися музыкантами, проповедующими превосходство UX над всеми остальными дисциплинами. Впрочем, и в обсуждении политики то же самое.
Если люди сталкиваются с чем-то, противоречащим их базовым установкам, только незначительная часть начинает выяснять логику необычных решений. Большинство вставляет монокль и из глубины колодца своих заблуждений начинает поучать. При этом умудряясь изображать взгляд сверху вниз.
no subject
Какой замечательный, красочный образ.
Вам надо как Александру Павленко - завести несколько разных юзерпиков для разных реплик, и обязательно один особый - но не с моноклем, а с лорнетом.
no subject
Это детство. Люди и так путаются, когда юзерпик только один. Когда будет целый зоопарк, будет вообще каша.
Единственное, если одного и того же персонажа делать в разных видах. Но это слишком много затрат.
no subject