juan_gandhi: (Default)
[personal profile] juan_gandhi
Т.к. есть такое европейское мнение, что рефакторинг - это метросексуальный аджальный метод продажи навоза юзерам, то я вдруг задумался - а что в Европе делают, когда их хакают и информацию воруют? Ну понятно, против воровства в Европе есть законы, например, GDPR; а в Швейцарии так даже масс шутинги запрещены (это мне швейцарцы когда-то сказали); но вот если случилось, так что тогда? Компьютеры сжигают на свалке, покупают новые, и пишут для них новые программы?

Ведь, я слышал, в Европе сначала на Z-notations и на Rational Rose весь дизайн правильно напишут, так что европейская программа не может быть неправильной, так что и рефакторить там нечего. Она совершенна.

И вот если она сломалась, то чо. Неужели с нуля переписывают?

Тесты-то понятное дело что не нужны; программист выполняет приказ менеджера, а менеджер не может ошибаться; и только плохой программист пишет код с ошибками. Немецкий код работает везде и без ошибок. Ой, тут сразу вспоминается Энигма, и три ушлых поляка, которые ее кракнули как раз перед Второй Мировой. 

Date: 2018-03-12 06:01 am (UTC)
snowps: (Default)
From: [personal profile] snowps
Если имеется в виду математика, то это не реальный фундамент, а абстракция, blueprint, и если материалы при постройке по этому чертежу будут неудачные или проект не будет учитывать особенности климата, то вместо дома получится недоразумение, независимо от красоты первоначального замысла. И именно поэтому в Sagrada Familia невозможно сделать офис, в офисе из стекла и бетона с фриспейсом никому не придёт в голову делать квартиру, а гипсокартонные дома из bay area никто не будет строить на Аляске.

Date: 2018-03-12 07:17 am (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Уход в абстракции всегда чреват отрывом от предмета разговора.

Сейчас начнётся обсуждение того, какой фундамент фундаментальнее.

Date: 2018-03-12 08:26 am (UTC)
snowps: (Default)
From: [personal profile] snowps
Я в своё время общался с достаточным количеством академической публики и сделал устойчивое наблюдение: если люди избыточно озабочены теоретической стороной вопроса, они почти всегда считают практические аспекты чем-то ниже своего достоинства, не стоящими внимания мелочами, реализовывать которые надо поручать людям, очевидно находящимся с точки зрения просветлённых теоретиков в вопросах принятия решений ниже по иерархии, чем они. При этом люди часто были умнейшие, с прекрасно работающими мозгами и умеющие делать в сфере своих теоретических изысканий то, что остальные делать не могли, однако любое столкновение с элементарными практическими проблемами, выходящими за рамки их основной сферы интересов, почти всегда приводило их в полный ступор и им надо было разъяснять элементарные вещи, и предлагать совершенно очевидные решения, которые они не могли самостоятельно найти месяцами. Тут проблема не в том, какой фундамент фундаментальнее, а в потере дифференциации инструментов и целей. Цель любого программного продукта - это решение задач, которые человек сам решить не может из-за недостатка производительности и надёжности его умственного труда. Можно сколько угодно рассуждать о том, что ситуация изменилась, что сейчас проще купить сто серверов, чем заплатить программистам за оптимизацию, но это всё вторично, базовая цель осталась прежней: код должен быть максимально производительным для используемого железа и максимально надёжным. Для достижения этой цели можно пользоваться разными инструментами: оптимизацией математики, оптимизацией исполнения кода на железе, правильным построением кластерной архитектуры, проектированием и использованием специализированного железа и т.д., и т.п. Однако с начала этого века, со всеми этими доткомами, циркуляцией больших денег и преувеличенными ожиданиями, сформировался новый класс IT-публики, которая стала воспринимать программирование примерно как современные художники - своё "актуальное" искусство, где форма (выбор инструментов) стала преобладать над содержанием (целью). Оттуда и растёт это презрительное отношение к "ретро-технологиям" вроде использования ANSI C, процедурного программирования, желания создавать проекты как законченные решения, а не как компонент brand new and shiny cloud technology, поскольку именно это противопоставление "прогресса" "упадническому ретроградству" и приносит энтузиазм в деятельности. При этом - как и с современным искусством - в программировании прекрасно срабатывает стоппардовская мысль: "Skill without imagination is craftsmanship and gives us many useful objects such as wickerwork picnic baskets. Imagination without skill gives us modern art." В приенении к программированию skill - это не умение писать код в своей конкретной области, а именно умение видеть картину целиком, от процессора до интерфейса, и именно это умение сейчас не только отсутствует у нового поколения, но и постоянно подвергается башингу, как не модное (как тут недавно прочитал у одного фаната клауд компьютинга "файлы - это скучно"). При этом - с чем никому не приходит в голову спорить, - это самое процедурное программирование, еретический си и низкий уровень - это та часть современной технологии, без которой не будет работать ни-че-го, и этот факт современное программистское псевдоискусство напрочь игнорирует, как неудобный и рушащий все иллюзии.
Edited Date: 2018-03-12 08:30 am (UTC)

Date: 2018-03-12 08:45 am (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
если люди избыточно озабочены теоретической стороной вопроса, они почти всегда считают практические аспекты чем-то ниже своего достоинства,

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

код должен быть максимально производительным для используемого железа и максимально надёжным.

Код должен решать задачу. После достаточно малозатратного достижения оптимальных величин стоимость дальнейшего увеличения как производительности, так и надёжности начинает расти экспоненциально.

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

Date: 2018-03-12 09:03 am (UTC)
snowps: (Default)
From: [personal profile] snowps
Меркантильный интерес в этой среде часто не настолько существеннен, как аспект поддержки иллюзии смысла жизни через самоджастификацию приложения усилий к продвижению нового. Люди должны ощущать смысл в своём существовании и борьба (не важно - с ветряными мельницами ли или с голодом в Эфиопии) приносит им это вожделенное ощущение.

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

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

Date: 2018-03-12 09:32 am (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Меркантильный интерес в этой среде часто не настолько существеннен

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

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

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

Date: 2018-03-12 09:37 am (UTC)
snowps: (Default)
From: [personal profile] snowps
Да, пожалуй с обоими тезисами соглашусь.

Date: 2018-03-12 05:50 pm (UTC)
snowps: (Default)
From: [personal profile] snowps
Угу, но - внезапно, - практически весь близкий к железу код пишется на процедурных языках, поскольку на уровне процессора исполнение таки процедурное - подпрограммы, таски и вся эта "ретро-ересь". А без драйверов, кернела, OS level file & network services, увы, не будет работать никакая веб-аппликация, - её неоткуда будет прочитать, нечем посчитать и не через что отправить в мир. :)

Date: 2018-03-13 03:44 am (UTC)
snowps: (Default)
From: [personal profile] snowps
Учиться можно разным вещам и для разных целей. Учиться просто так, без рациональной цели - это тоже вполне себе цель жизни, этим постоянным самосовершенствованием (как вектором, а не как пределом к некоей осмысленной реперной точке) можно оправдывать трату сил на этот самый жизненный процесс, - собственно так и работает человеческая психология. Когда есть понимание, что всё это иллюзии, многие игрушки сознания в виде морковок на верёвочке, привязанных к удочке за спиною, перестают работать, поэтому людям, испытывающим потребность в постоянном движении вперёд, всегда кажется, что они делают это потому, что мир нуждается в этом, а ретрограды держатся за старое от недоумия, однако на самом деле они сами нуждаются в постоянном движении вперёд, чтобы поддерживать в себе психологический комфорт. Собственно наши регулярные дискуссии тут во многом объясняются как раз тем, что я уже осознал, что это всё иллюзии, а Вы - пока нет. :)

Date: 2018-03-13 04:52 am (UTC)
snowps: (Default)
From: [personal profile] snowps
В чём именно маразм? Каковы мотивации и рациональность изучения того, чем нет необходимости пользоваться (кроме тех, что я описал выше)? Почему использование каких-то определённых инструментов декларируется кошерным, а других, которые в числе прочего как раз и делают возможным использование первых, объявляются ересью? Нет ответов, нет логики.

Date: 2018-03-12 11:07 pm (UTC)
From: [personal profile] sassa_nf
"на уровне процессора исполнение таки процедурное"

did you ask yourself why the CPUs never moved to anything more advanced?

Date: 2018-03-13 03:47 am (UTC)
snowps: (Default)
From: [personal profile] snowps
Да в жежешном журнале Влада обсуждений альтернативных архитектур была масса, включая редусероны, векторные NecSX, то же GPGPU, но таки ни одного коммерчески успешного хардверного проекта CPU с parallel evaluation, на базе которого можно было бы писать эффективный ФП код, так никто и не вспомнил. :)

Date: 2018-03-13 07:45 am (UTC)
From: [personal profile] sassa_nf
It's not a "why"

Date: 2018-03-13 01:28 pm (UTC)
snowps: (Default)
From: [personal profile] snowps
Because such technology cannot outperform common olde old classic processors and will cost a fortune due to crazy and price/performance-inefficient parallel chip topology. This is not a sort of advanced technology at all and CPU developers are not idiots, nobody wants make huge investments to create another useless experimental BS.

(no subject)

From: [personal profile] snowps - Date: 2018-03-13 07:53 pm (UTC) - Expand

(no subject)

From: [personal profile] sassa_nf - Date: 2018-03-13 04:32 pm (UTC) - Expand

(no subject)

From: [personal profile] snowps - Date: 2018-03-14 03:36 am (UTC) - Expand

(no subject)

From: [personal profile] sassa_nf - Date: 2018-03-14 08:05 am (UTC) - Expand

(no subject)

From: [personal profile] snowps - Date: 2018-03-14 03:18 pm (UTC) - Expand

Date: 2018-03-12 05:57 pm (UTC)
snowps: (Default)
From: [personal profile] snowps
Ну так покажите мне в реальном мире мнимые числа, понятие точки, идеальную окружность, ту же самую булеву логику, - вся математика состоит из создания определённых абстракций для неких правил игры, позволяющие с достаточным уровнем точности аппроксимировать матожидание и значения величин, с которыми мы в реальности имеем дело. Это замечательно и важно, но не мир служит математике, а математика служит миру, поэтому в тех направлениях, где сложность математики избыточна, не нужно насильно её применять, - это только ухудшит ситуацию.

Date: 2018-03-13 04:24 am (UTC)
snowps: (Default)
From: [personal profile] snowps
В каком смысле - откуда известно? Математика - это семиотически всего лишь язык описания, знаковая система всегда неотделима от носителя и лишь эксплицирует целевую части реальности через ограниченность инструментария, посему никогда не бывает полностью тождественной оной. Убери человека - и математика в её текущем виде исчезнет. 95% населения земли не знает ничего сложнее арифметики и полностью этим удовлетворяется, - точно так же, как Вы, условно говоря, не знаете, что есть CRISPR/CAS или как схемотехнически реализовано имульсное управление приводами форсунок в ECU и это ни капельки Вам не мешает в жизни. :)

"Fungal contamination and mould can occur in homes and concealed building enclosure assemblies if the materials are exposed to elevated relative humidity levels (typically above 80% RH for extended periods) and/or condensation. Organic materials, such as paper-faced drywall and wood, are susceptible to fungal growth in the home." (с) По-моему понятно, что имеется в виду не отсутствие использования гипсокартона вообще, а значительно более сложное проектирование стен домов в регионе с жёстким холодным климатом, чем банальный гипсокартон на деревянной обрешётке, как часто бывает в Калифорнии.
Edited Date: 2018-03-13 04:27 am (UTC)

Date: 2018-03-13 04:37 am (UTC)
snowps: (Default)
From: [personal profile] snowps
Ваша основная ошибка в том, что характеристика "не теоретик" почему-то (на самом деле известно почему) всегда снабжается в голове словом "даже". При этом - повторюсь, - то, что подавляющее количество низкоуровневого программного кода, без которого не работает никакой высокоуровневый, и который до сих пор составляет основную массу софта в мире, пишут люди, которых Вы не считаете программистами, Вас ни капли не смущает. Ну вот так вот получается, что же теперь делать, - кто-то верит в догматизм религии, а кто-то - в математику, а кто-то - ни в то, ни в другое и является реалистом. :)
Edited Date: 2018-03-13 04:40 am (UTC)

(no subject)

From: [personal profile] snowps - Date: 2018-03-13 05:39 am (UTC) - Expand

(no subject)

From: [personal profile] vit_r - Date: 2018-03-13 08:20 am (UTC) - Expand

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

July 2025

S M T W T F S
  12345
6789 1011 12
13141516171819
20212223242526
2728293031  

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 16th, 2025 08:54 am
Powered by Dreamwidth Studios