О изобретении велосипедов
http://nekhill.livejournal.com/162101.html
Непонятно, что делать в случае, когда готовый код или софт вызывает приступы ненависти к его авторам, а пользователи платят за то, что софт работает, а не за то, чтобы вы копались в дебрях чужого бреда.
Все, кто против велосипедов, почему-то считают, что "специализирующиеся" авторы напишут код лучше, а это не совсем так. Часто "готовый" код вырос из такого же велосипеда и очень сильно повезет, если автор был нормальный, у него было время и он все сделал по человечески. А еще бывает код настолько сука проприетарный и патентованный, что авторам просто не нужно его делать хорошо - у них деньги текут рекой и так. А еще иногда нужного "готового" кода просто нет.
Кстати, еще один вариант, где велосипеды нужны без вариантов - это когда в языке физически нет нормальных способов реализовать функциональность, не сойдя с ума. Например, вкрутить еDSL в дельфи или C#. Или вариантные типы с паттерн-матчингом туда же.
На данный момент, единственно читабельные варианты делать такое мне попадались только на clojure и ruby. В F# метапрограмминга толком нет вообще, на скале - уже начинается жесть с имплиситами и вычислениями на типах, в хаскеле SYB, Template Haskell и аппликативные функторы в качестве замены функциями с переменным числом аргументов.
Непонятно, что делать в случае, когда готовый код или софт вызывает приступы ненависти к его авторам, а пользователи платят за то, что софт работает, а не за то, чтобы вы копались в дебрях чужого бреда.
Все, кто против велосипедов, почему-то считают, что "специализирующиеся" авторы напишут код лучше, а это не совсем так. Часто "готовый" код вырос из такого же велосипеда и очень сильно повезет, если автор был нормальный, у него было время и он все сделал по человечески. А еще бывает код настолько сука проприетарный и патентованный, что авторам просто не нужно его делать хорошо - у них деньги текут рекой и так. А еще иногда нужного "готового" кода просто нет.
Кстати, еще один вариант, где велосипеды нужны без вариантов - это когда в языке физически нет нормальных способов реализовать функциональность, не сойдя с ума. Например, вкрутить еDSL в дельфи или C#. Или вариантные типы с паттерн-матчингом туда же.
На данный момент, единственно читабельные варианты делать такое мне попадались только на clojure и ruby. В F# метапрограмминга толком нет вообще, на скале - уже начинается жесть с имплиситами и вычислениями на типах, в хаскеле SYB, Template Haskell и аппликативные функторы в качестве замены функциями с переменным числом аргументов.
no subject
no subject
no subject
no subject
Поэтому я сделал на clojure генератор подобных классов, чтобы, во-первых, не писать их руками, во-вторых, не заниматься приведениями типов, используя какие-нибудь TObjectList.
no subject
И говорю про либы типа stl и boost - где можно рассчитывать, что либа хорошо оттестирована.
no subject
no subject
это не так. и за нарушение может быть очень, очень больно.
причем то, что ты купил что-то законно не означает, что ты можешь это использовать для чего угодно.
no subject
уж больно boost версия-специфичный
no subject
no subject
no subject
Кстати, интересно, QT менее известен, чем boost, или более?
no subject
вот например есть ESXi. нет, я даже не про бесплатную версию.
пусть мы купим платную. все почесноку.
но! лицензия не разрешает оказывать на ней услуги. т.е. нельзя резать виртуалки и продавать. на это надо покупать отдельную лицензию, заключать отдельный договор, ежемесячные отчеты и ежемесячные платежи.
точно также нельзя купить пул лицензий на винду и ставить их на хостинге (см. выше).
таким образом может выясниться что проще написать свое, чем продираться сквозь лоерский булшит.
правда тут можно влететь на патенты.
no subject
падает.
не работает
глючит.
ведь ни одна падла не напишет какая точно версия буста нужна, а шаг в сторону -- оно не работает
а если надо два продукта и каждому свой буст? ооо...
no subject
Если у нас компания программистов, которые оказывают услуги другим программистам, чтобы те программисты писали стартапы и продавали их инвесторам, а те перепродавали другим инвесторам, потому что хрень эта нужна только для перепродажи... (хостинг)
Или если мы сами пишем стартап для перепродажи... (инстаграм)
То в этих двух случаях все должно быть лицензионно чисто. И то не факт, судиться-то можно очень долго, а то и на суд повлиять, если денег много и входы имеются. Или можно найти виноватого, который почему-то уже помер или исчез неизвестно куда (вам надо - вы и ищите).
А если у нас классическая компания, которая зарабатывает деньги классическими способами, а не на IT, то почему бы и не взять бесплатно Оракл и не делать разработку на нем, чем ковыряться с MySql. Программистов можно попросить просто не болтать и хорошо им платить, и то это будет дешевле, чем покупать Оракл.
А вдруг компания еще и полугосударственная, и на нее завязана какая-то инфраструктура - ну например возьмем МВД. Ну-ка, давайте предъявите им иск, чтобы кому-то стало больно. Ага щас, скорее местный представитель правообладателя огребет.
Весь хваленый Фейсбук по стоимости - это половина торгового центра "Аура", г. Новосибирск. Там есть не один такой торговый центр.
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Потому что, во-первых, можно удолбаться подключать чужие либы, а во-вторых, огрести по самое не могу, когда окажется что в тех чужих либах покопались функциональщики на веществах и разобраться, то ли это у нас ошибки, то ли автор сошел с ума - нереально.
Впрочем, у меня за год работы на С++ получилось пользоваться (и понять внутренности и кое-где даже доработать) с тремя сторонними либами.
no subject
no subject
За время общения с программистами на C# выяснил, что там совсем другая культура.
NuGet - и вперёд. Да и сам фреймворк изначально очень много даёт, ещё и развиваясь по ходу.
Со сторонними либами работал, вроде ок. Проблема как раз прицепить их к нашим, ибо у нас не STL. Одна из главных проблем, я бы сказал.
no subject
no subject
no subject
от входа расстреливать. сразу же.
no subject
no subject
надо понимать что это само собой не рассосется и "технический долг" все равно настигнет и больно ударит.
единственный выход - садить десяток правильных человек для постепенного приведения в порядок всего.
no subject
no subject
no subject
no subject
Автор пишет чушь. Конечно, если хорошего решения в публичном домене нету, ичеловек не в состоянии сам написать хорошее решение, он берёт из числа имеющихся.
Но, что характерно, почти никто же не пишет свой новый язык программирования - языки есть. И шеллы есть. Много чего есть. Но много чего нет, и если контора создаёт свой, более правильный, скелет, то и мясо на нём скорее нарастает.
Один маленький пример у меня - надо было генераторы документов делать, на паскале, для заказчика; мы посчитали это глупым, имплементировали форт на паскале, и генераторы выглядели в виде таблиц конфигов. Производительность, деньги, удовольствие.
no subject
no subject
no subject
а этой надо отписать: хотел то и то, а вы не сделали
очень вероятно, что в ответ придёт ссылка на доки, где описано больше функций
no subject
там по контексту понятно
проблемы с лицензиями БИБЛИОТЕК -- ну-ну, попробуйте выяснить про ДЦ гугля
no subject
no subject
no subject
Protocol Buffers не пробовал? Под делфю чего-то уже сделали зачем-то. У меня помнится много проблем было со скоростью работы XML и JSON.
no subject
А вообще протокол буфферс это идея хорошая, его можно использовать там, где надо побыстрее.
no subject
no subject
классическое инженерное решение :) лолчто
no subject
no subject
А с DSLями обычно есть такой "косяк", что ими пользоваться умеют только авторы, поэтому поддерживаемость таких систем весьма сомнительна. Но впринципе это может относиться и к обычному коду на плюсах.
Мне, как заказщику, обычно плевать, в каком стиле, языке и с какими библиотеками программист написал мне ту или иную фичу, если она работает и зарабатывает деньги... ну и если пользователи тоже не жалуются.
no subject
no subject
no subject
представляю глаза, как лоер будет смотреть на инструкцию по сборке
по контексту также понятно, что речь не про нарушение лицензий ака тыринг, а про использование проприетарных вс опенсорсных
юзеру пофиг
no subject
в пропиретарной лицензия может быть такой, что для себя использовать можешь, а для извлечения прибыли нужна другая лицензия