О изобретении велосипедов
http://nekhill.livejournal.com/162101.html
Непонятно, что делать в случае, когда готовый код или софт вызывает приступы ненависти к его авторам, а пользователи платят за то, что софт работает, а не за то, чтобы вы копались в дебрях чужого бреда.
Все, кто против велосипедов, почему-то считают, что "специализирующиеся" авторы напишут код лучше, а это не совсем так. Часто "готовый" код вырос из такого же велосипеда и очень сильно повезет, если автор был нормальный, у него было время и он все сделал по человечески. А еще бывает код настолько сука проприетарный и патентованный, что авторам просто не нужно его делать хорошо - у них деньги текут рекой и так. А еще иногда нужного "готового" кода просто нет.
Кстати, еще один вариант, где велосипеды нужны без вариантов - это когда в языке физически нет нормальных способов реализовать функциональность, не сойдя с ума. Например, вкрутить еDSL в дельфи или C#. Или вариантные типы с паттерн-матчингом туда же.
На данный момент, единственно читабельные варианты делать такое мне попадались только на clojure и ruby. В F# метапрограмминга толком нет вообще, на скале - уже начинается жесть с имплиситами и вычислениями на типах, в хаскеле SYB, Template Haskell и аппликативные функторы в качестве замены функциями с переменным числом аргументов.
Непонятно, что делать в случае, когда готовый код или софт вызывает приступы ненависти к его авторам, а пользователи платят за то, что софт работает, а не за то, чтобы вы копались в дебрях чужого бреда.
Все, кто против велосипедов, почему-то считают, что "специализирующиеся" авторы напишут код лучше, а это не совсем так. Часто "готовый" код вырос из такого же велосипеда и очень сильно повезет, если автор был нормальный, у него было время и он все сделал по человечески. А еще бывает код настолько сука проприетарный и патентованный, что авторам просто не нужно его делать хорошо - у них деньги текут рекой и так. А еще иногда нужного "готового" кода просто нет.
Кстати, еще один вариант, где велосипеды нужны без вариантов - это когда в языке физически нет нормальных способов реализовать функциональность, не сойдя с ума. Например, вкрутить еDSL в дельфи или C#. Или вариантные типы с паттерн-матчингом туда же.
На данный момент, единственно читабельные варианты делать такое мне попадались только на clojure и ruby. В F# метапрограмминга толком нет вообще, на скале - уже начинается жесть с имплиситами и вычислениями на типах, в хаскеле SYB, Template Haskell и аппликативные функторы в качестве замены функциями с переменным числом аргументов.
no subject
Поэтому я сделал на clojure генератор подобных классов, чтобы, во-первых, не писать их руками, во-вторых, не заниматься приведениями типов, используя какие-нибудь TObjectList.
no subject
И говорю про либы типа stl и boost - где можно рассчитывать, что либа хорошо оттестирована.
no subject
Кстати, интересно, QT менее известен, чем boost, или более?
no subject
no subject
no subject
от входа расстреливать. сразу же.
no subject
no subject
надо понимать что это само собой не рассосется и "технический долг" все равно настигнет и больно ударит.
единственный выход - садить десяток правильных человек для постепенного приведения в порядок всего.
no subject
no subject
no subject
уж больно boost версия-специфичный
no subject
no subject
падает.
не работает
глючит.
ведь ни одна падла не напишет какая точно версия буста нужна, а шаг в сторону -- оно не работает
а если надо два продукта и каждому свой буст? ооо...
no subject
no subject
no subject
Protocol Buffers не пробовал? Под делфю чего-то уже сделали зачем-то. У меня помнится много проблем было со скоростью работы XML и JSON.
no subject
А вообще протокол буфферс это идея хорошая, его можно использовать там, где надо побыстрее.
no subject