О изобретении велосипедов
Aug. 18th, 2013 12:48 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
http://nekhill.livejournal.com/162101.html
Непонятно, что делать в случае, когда готовый код или софт вызывает приступы ненависти к его авторам, а пользователи платят за то, что софт работает, а не за то, чтобы вы копались в дебрях чужого бреда.
Все, кто против велосипедов, почему-то считают, что "специализирующиеся" авторы напишут код лучше, а это не совсем так. Часто "готовый" код вырос из такого же велосипеда и очень сильно повезет, если автор был нормальный, у него было время и он все сделал по человечески. А еще бывает код настолько сука проприетарный и патентованный, что авторам просто не нужно его делать хорошо - у них деньги текут рекой и так. А еще иногда нужного "готового" кода просто нет.
Кстати, еще один вариант, где велосипеды нужны без вариантов - это когда в языке физически нет нормальных способов реализовать функциональность, не сойдя с ума. Например, вкрутить еDSL в дельфи или C#. Или вариантные типы с паттерн-матчингом туда же.
На данный момент, единственно читабельные варианты делать такое мне попадались только на clojure и ruby. В F# метапрограмминга толком нет вообще, на скале - уже начинается жесть с имплиситами и вычислениями на типах, в хаскеле SYB, Template Haskell и аппликативные функторы в качестве замены функциями с переменным числом аргументов.
Непонятно, что делать в случае, когда готовый код или софт вызывает приступы ненависти к его авторам, а пользователи платят за то, что софт работает, а не за то, чтобы вы копались в дебрях чужого бреда.
Все, кто против велосипедов, почему-то считают, что "специализирующиеся" авторы напишут код лучше, а это не совсем так. Часто "готовый" код вырос из такого же велосипеда и очень сильно повезет, если автор был нормальный, у него было время и он все сделал по человечески. А еще бывает код настолько сука проприетарный и патентованный, что авторам просто не нужно его делать хорошо - у них деньги текут рекой и так. А еще иногда нужного "готового" кода просто нет.
Кстати, еще один вариант, где велосипеды нужны без вариантов - это когда в языке физически нет нормальных способов реализовать функциональность, не сойдя с ума. Например, вкрутить еDSL в дельфи или C#. Или вариантные типы с паттерн-матчингом туда же.
На данный момент, единственно читабельные варианты делать такое мне попадались только на clojure и ruby. В F# метапрограмминга толком нет вообще, на скале - уже начинается жесть с имплиситами и вычислениями на типах, в хаскеле SYB, Template Haskell и аппликативные функторы в качестве замены функциями с переменным числом аргументов.
no subject
Date: 2013-08-18 01:25 pm (UTC)no subject
Date: 2013-08-18 01:28 pm (UTC)no subject
Date: 2013-08-18 02:29 pm (UTC)от входа расстреливать. сразу же.
no subject
Date: 2013-08-18 02:35 pm (UTC)no subject
Date: 2013-08-18 02:38 pm (UTC)надо понимать что это само собой не рассосется и "технический долг" все равно настигнет и больно ударит.
единственный выход - садить десяток правильных человек для постепенного приведения в порядок всего.
no subject
Date: 2013-08-18 03:10 pm (UTC)no subject
Date: 2013-08-18 03:11 pm (UTC)