metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-08-18 12:48 pm

О изобретении велосипедов

http://nekhill.livejournal.com/162101.html
Непонятно, что делать в случае, когда готовый код или софт вызывает приступы ненависти к его авторам, а пользователи платят за то, что софт работает, а не за то, чтобы вы копались в дебрях чужого бреда.

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

Кстати, еще один вариант, где велосипеды нужны без вариантов - это когда в языке физически нет нормальных способов реализовать функциональность, не сойдя с ума. Например, вкрутить еDSL в дельфи или C#. Или вариантные типы с паттерн-матчингом туда же.
На данный момент, единственно читабельные варианты делать такое мне попадались только на clojure и ruby. В F# метапрограмминга толком нет вообще, на скале - уже начинается жесть с имплиситами и вычислениями на типах, в хаскеле SYB, Template Haskell и аппликативные функторы в качестве замены функциями с переменным числом аргументов.

[identity profile] nekhill.livejournal.com 2013-08-18 09:55 am (UTC)(link)
Во всем должен быть разумный подход. Меня больше всего напрягают велосипеды вместо использования отличного чужого коробочного документированного насквозь изделия, на которое у компании лицензий жопой жуй, "потому что не подумали и есть же своё!"

[identity profile] http://users.livejournal.com/_slw/ 2013-08-18 09:58 am (UTC)(link)
там местами написана хуйня, которая сводит в ноль все аргументы

[identity profile] aamonster.livejournal.com 2013-08-18 09:59 am (UTC)(link)
Ребе, а давно вы работали с кодом, в котором вместо stl задействованы самописные либы?

[identity profile] nekhill.livejournal.com 2013-08-18 01:21 pm (UTC)(link)
Вообще я понял, что мы живём в параллельных реальностях. В моей реальности народ чуть что начинает писать велосипеды для чего угодно на C++. Я тут с удивлением узнал, что библиотеку для регэкспов они не написали с нуля, а таки спортировали с какого-то другого языка. Надо же!

[identity profile] juan-gandhi.livejournal.com 2013-08-18 04:24 pm (UTC)(link)
"аппликативные функторы в качестве замены функциями с переменным числом аргументов" - понравилось.

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

Но, что характерно, почти никто же не пишет свой новый язык программирования - языки есть. И шеллы есть. Много чего есть. Но много чего нет, и если контора создаёт свой, более правильный, скелет, то и мясо на нём скорее нарастает.

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

[identity profile] guamoka.livejournal.com 2013-08-18 07:29 pm (UTC)(link)
На Cpp по-моему это давняя традиция написать свой класс строки, свои контенеры. Owl имела свои коллекции, MFC. Не помню вот, в ATL\WTL было это или нет. На одной конторе COM "переписали". Ибо реализация от MS- не комильфо-- а вдруг баг, и не пофиксишь? И еще Гуиды чуть ли не вручную выделялись:-)))