metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-05-09 09:13 pm

Показательные выступления на льду.

Но надо сказать, что последние пляски с Qt, glibc и дебианами, а так же закономерная реакция линукс-френдленты на описание оного хорошо демонстрируют почему с софтом под линукс все так "хорошо".
Софт для end-юзеров и прочие приземленные вещи далеко не всегда пишут отмороженные гики с десятилетним опытом решения бессмысленных безумных проблем. Достаточно походить по форумам по .NET например - там огромное количество вопросов, показывающих, что в ИТ работает много _начинающих_ людей. И вот оным начинающим развлечения, подобные тому, чем я занимался вчера - совершенно ни к чему. Не должен обобщенный "программист кульных прог для бухгалтерии Вася Пупкин" сразу разбираться в тонкостях библиотек, порядка их поиска, версий компиляторов и прочей хреновине. Это должно идти потом, когда софт уже заработал, был продан и надо его улучшать, выпускать новую версию и есть на этот бабки, полученные от продажи первой версии.

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

Не говоря уже о факапах вроде "приехали показывать софт тендерной комиссии, а там НИЧЕГО не запустилось, потому что линукс не той системы" - такое вообще недопустимо, между прочим.

[identity profile] theiced.livejournal.com 2009-05-11 01:40 pm (UTC)(link)
Я про пример использования в том числе:

typedef qd::dsd::Function< bool, const CompareScheme&,
qd::mpl::vector< const qd::pplan::Scheme&, const qd::pplan::Scheme& > >
CompareSchemeFunction;


Всё. Моск выключился. Тут спецсимволов больше чем в типичном перловом коде.

[identity profile] zamotivator.livejournal.com 2009-05-11 01:45 pm (UTC)(link)
bool operator==( const qd::pplan::Scheme& a_left, const qd::pplan::Scheme& a_right )
{
	typedef qd::dsd::Function< /* Return Type */; bool, const CompareScheme& /* Function object for call */, 
	qd::mpl::vector< const qd::pplan::Scheme& /* Argument 1 */, const qd::pplan::Scheme& /* Argument 2 */ > >
	CompareSchemeFunction;
	static CompareSchemeFunction g_compareSchemeFunction;

	return g_compareSchemeFunction( CompareScheme(), a_left, a_right ); 
}


Так понятней?
Это уже детали реализации функции сравнения =)

[identity profile] theiced.livejournal.com 2009-05-11 01:49 pm (UTC)(link)
Не - честно - не могу сосредоточиться и вникнуть в этот код. Руби/жава/схема меня хорошоооо так расслабили.

[identity profile] zamotivator.livejournal.com 2009-05-11 01:52 pm (UTC)(link)
Эта хрень - qd::dsd::Function - вытаскивает из Scheme impl::Scheme-что-то там.

Типа множественного dynamic_cast. Паттерн-матчинг многих аргументов, другими словами - мультиметоды

[identity profile] metaclass.livejournal.com 2009-05-11 01:53 pm (UTC)(link)
"Как писать неподдерживаемый код", часть вторая.
Я примерно понимаю, как во всем этом можно разобраться, но все таки на месте руководства я с такой чорной магией связываться бы опасался - это ж потом гурей не наберешься, продукт развивать.

[identity profile] theiced.livejournal.com 2009-05-11 01:55 pm (UTC)(link)
Дык - я о чём говорю. А особенно опасны дети которые с++ных книжек умных начитались и начинают ТАКОЕ городить... Насмотрелся, ага.

[identity profile] zamotivator.livejournal.com 2009-05-11 04:31 pm (UTC)(link)
Говорили это уже не раз. Резонный аргумент - как сделать тоже самое без "чёрной магии"?
Предлагали там всякие варианты, все оказались ХУЖЕ

[identity profile] metaclass.livejournal.com 2009-05-11 04:41 pm (UTC)(link)
Вообще, менеджеры должны были выбрать вариант, который был бы хуже, но позволил бы тебя выгнать и заменить десятком обобщенных индусо-таджиков :) Это просто еще не дошли видимо до вашей конторы последние веяния в области управления сильно умными.

Я тут читал про один enterprise-level софт, так в статье в вики про него упоминается типа "пришел дядя из силиконовой долины, стал CEO и превратил technology-driven startup в high-tech enterprise, а потом под это дело стал получать венчурное финансирование". Расшифровывается это так: технарей загнали в подвалы и посадили на цепь, въябывать, упор с технических решений перевели на организационные. И это суко дико эффективнее чем черная магия с метапрограммированием - софт сейчас продается за совершенно нереальные бабки, которые идут в карман дядям, а не сильно умным гикам.

[identity profile] zamotivator.livejournal.com 2009-05-11 04:44 pm (UTC)(link)
Такие решения помогают поддерживать весь код (весь модуль) двум людям.
Раньше было пять человек.
Снижение трудозатрат налицо.

А теперь товарищ, скажи ка мне - кто там за Haskell вещал? м? Что ж таджиков то не нанимаешь?

[identity profile] metaclass.livejournal.com 2009-05-11 05:09 pm (UTC)(link)
Снижение трудозатрат и снижение устойчивости проекта. Вот слиняют эти двое - конторе, что, закрываться после этого? Любому менеджеру должно быть очевидно, что лучше 5-10-20 средних человек, чем 2 сильно умных.

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

[identity profile] zamotivator.livejournal.com 2009-05-11 05:14 pm (UTC)(link)
Снижение трудозатрат и снижение устойчивости проекта. Вот слиняют эти двое - конторе, что, закрываться после этого? Любому менеджеру должно быть очевидно, что лучше 5-10-20 средних человек, чем 2 сильно умных.
А если эти двое дешевле чем десять? И зачем им линять?

А у нас тут ситуация кривая. Рынок решений, где можно обойтись силой сотен таджиков, уже поделен и занят крупными вендорами. Мы иначе, чем технологическими скачками, обойти их не можем - с одной стороны, нужны бабки на инфраструктуру (подвалы, цепи, надзирателей для таджиков), с другой стороны, чтобы эти бабки заплатили - нужно уже иметь готовые крупные решения, и кроме того - немалые подвязки среди клиентов.
А у нас тоже самое. Мы не можем как Оракл нанять тысячу обезьян. У нас 20 человек программистов из них 5 чего-то стоят.

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

[identity profile] theiced.livejournal.com 2009-05-11 06:51 pm (UTC)(link)
>А если эти двое дешевле чем десять? И зачем им линять?

Ехали эти двое на машине и их переехал маз. Усё - попали.

>А у нас тоже самое. Мы не можем как Оракл нанять тысячу обезьян. У нас 20 человек программистов из них 5 чего-то стоят.

У нас 4. Каждый стоит 5ых как минимум ;)))

[identity profile] zamotivator.livejournal.com 2009-05-11 06:54 pm (UTC)(link)
Ехали эти двое на машине и их переехал маз. Усё - попали.
Это понятно. На выбор: риски на двух людях, или минус полгода, т.к. денег на людей нет. Ваш выбор?

У нас 4. Каждый стоит 5ых как минимум ;)))
А если одного камаз переедет?

[identity profile] theiced.livejournal.com 2009-05-11 08:22 pm (UTC)(link)
>Это понятно. На выбор: риски на двух людях, или минус полгода, т.к. денег на людей нет. Ваш выбор?

Надо баллансировать. Брать мегакодеров и не давать им писать вот такую эзотерику.

>А если одного камаз переедет?

Тут смотря кого ;)

[identity profile] zamotivator.livejournal.com 2009-05-11 08:24 pm (UTC)(link)
Надо баллансировать. Брать мегакодеров и не давать им писать вот такую эзотерику.
Если эзотерика работает и активно используется, есть не просит, а по эзотерике и её алгоритму работы написана дока - чем плохо?

Тут смотря кого ;)
И у нас также =)

[identity profile] theiced.livejournal.com 2009-05-11 08:35 pm (UTC)(link)
>Если эзотерика работает и активно используется, есть не просит, а по эзотерике и её алгоритму работы написана дока - чем плохо?

Просто тем что это эзотерика. Надёёёёёжность падает.

Кстати - я слабо представляю задачу (нууу кроме гуйни наверное, лучше Qt ничего пока не придумали) которую я бы стал делать на с++.

(no subject)

[identity profile] theiced.livejournal.com - 2009-05-11 20:36 (UTC) - Expand

[identity profile] theiced.livejournal.com 2009-05-11 06:50 pm (UTC)(link)
Прям как у нас 1:1 :)

[identity profile] blacklion.livejournal.com 2009-05-11 09:00 pm (UTC)(link)
Вот по этому и хочется другой глобус — что на этом важнее как продавать, чем что продавать :(

[identity profile] theiced.livejournal.com 2009-05-11 09:35 pm (UTC)(link)
Эскейпизм налицо :)

Есть объективная реальность. Люди понимающие это делают правильные вещи. Хороший пример - убунту. Люди которые предпочитают не думать а выкрикивать лозунги делают неюзабельное говно. Хороший пример - дебиан.

[identity profile] blacklion.livejournal.com 2009-05-11 09:42 pm (UTC)(link)
Эскейпизм налицо :)
Не спорю с очевидным :)

[identity profile] blacklion.livejournal.com 2009-05-11 09:44 pm (UTC)(link)
Есть объективная реальность. Люди понимающие это делают правильные вещи. Хороший пример - убунту. Люди которые предпочитают не думать а выкрикивать лозунги делают неюзабельное говно. Хороший пример - дебиан.
Ещё совсем недавно реальность была другой. Изменения, увы (для меня и моего склада характера) произошли не так давно. Что будет дальше — неизветсно, потому что те, кто люди понимающие объективную реальность лучше всех тоже вдруг облажались.

[identity profile] vp.livejournal.com 2009-05-11 02:55 pm (UTC)(link)
До этого было понятнее, но как увидел вставленные в параметры комментарии - сразу расстроился. Такой стиль комментировани очень туго воспринимаю.
А так вроде все понятно

[identity profile] theiced.livejournal.com 2009-05-11 03:14 pm (UTC)(link)
Ребе, осторожно. А то того и гляди тоже скоро такой код выдавать будете.

[identity profile] vp.livejournal.com 2009-05-11 03:55 pm (UTC)(link)
У меня другие мотивы. Код должен быть понятным мне не только сегодня, но и через 10 лет. Или же я потом сам себя буду ругать :)

[identity profile] theiced.livejournal.com 2009-05-11 06:52 pm (UTC)(link)
И не только `мне` - но ещё и сферическому среднеквалифицированному кодеру.