О изобретении велосипедов
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 09:55 am (UTC)no subject
Date: 2013-08-18 01:09 pm (UTC)no subject
Date: 2013-08-18 04:40 pm (UTC)а этой надо отписать: хотел то и то, а вы не сделали
очень вероятно, что в ответ придёт ссылка на доки, где описано больше функций
no subject
Date: 2013-08-18 09:58 am (UTC)no subject
Date: 2013-08-18 12:33 pm (UTC)no subject
Date: 2013-08-18 12:40 pm (UTC)это не так. и за нарушение может быть очень, очень больно.
причем то, что ты купил что-то законно не означает, что ты можешь это использовать для чего угодно.
no subject
Date: 2013-08-18 12:46 pm (UTC)no subject
Date: 2013-08-18 12:55 pm (UTC)вот например есть ESXi. нет, я даже не про бесплатную версию.
пусть мы купим платную. все почесноку.
но! лицензия не разрешает оказывать на ней услуги. т.е. нельзя резать виртуалки и продавать. на это надо покупать отдельную лицензию, заключать отдельный договор, ежемесячные отчеты и ежемесячные платежи.
точно также нельзя купить пул лицензий на винду и ставить их на хостинге (см. выше).
таким образом может выясниться что проще написать свое, чем продираться сквозь лоерский булшит.
правда тут можно влететь на патенты.
no subject
Date: 2013-08-18 01:09 pm (UTC)Если у нас компания программистов, которые оказывают услуги другим программистам, чтобы те программисты писали стартапы и продавали их инвесторам, а те перепродавали другим инвесторам, потому что хрень эта нужна только для перепродажи... (хостинг)
Или если мы сами пишем стартап для перепродажи... (инстаграм)
То в этих двух случаях все должно быть лицензионно чисто. И то не факт, судиться-то можно очень долго, а то и на суд повлиять, если денег много и входы имеются. Или можно найти виноватого, который почему-то уже помер или исчез неизвестно куда (вам надо - вы и ищите).
А если у нас классическая компания, которая зарабатывает деньги классическими способами, а не на IT, то почему бы и не взять бесплатно Оракл и не делать разработку на нем, чем ковыряться с MySql. Программистов можно попросить просто не болтать и хорошо им платить, и то это будет дешевле, чем покупать Оракл.
А вдруг компания еще и полугосударственная, и на нее завязана какая-то инфраструктура - ну например возьмем МВД. Ну-ка, давайте предъявите им иск, чтобы кому-то стало больно. Ага щас, скорее местный представитель правообладателя огребет.
Весь хваленый Фейсбук по стоимости - это половина торгового центра "Аура", г. Новосибирск. Там есть не один такой торговый центр.
no subject
Date: 2013-08-18 01:11 pm (UTC)no subject
Date: 2013-08-18 04:42 pm (UTC)там по контексту понятно
проблемы с лицензиями БИБЛИОТЕК -- ну-ну, попробуйте выяснить про ДЦ гугля
no subject
Date: 2013-08-18 04:45 pm (UTC)no subject
Date: 2013-08-18 08:29 pm (UTC)представляю глаза, как лоер будет смотреть на инструкцию по сборке
по контексту также понятно, что речь не про нарушение лицензий ака тыринг, а про использование проприетарных вс опенсорсных
юзеру пофиг
no subject
Date: 2013-08-18 08:31 pm (UTC)в пропиретарной лицензия может быть такой, что для себя использовать можешь, а для извлечения прибыли нужна другая лицензия
no subject
Date: 2013-08-18 09:59 am (UTC)no subject
Date: 2013-08-18 10:06 am (UTC)Поэтому я сделал на clojure генератор подобных классов, чтобы, во-первых, не писать их руками, во-вторых, не заниматься приведениями типов, используя какие-нибудь TObjectList.
no subject
Date: 2013-08-18 10:24 am (UTC)И говорю про либы типа stl и boost - где можно рассчитывать, что либа хорошо оттестирована.
no subject
Date: 2013-08-18 12:50 pm (UTC)Кстати, интересно, QT менее известен, чем boost, или более?
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)
From:no subject
Date: 2013-08-18 03:10 pm (UTC)no subject
Date: 2013-08-18 03:11 pm (UTC)no subject
Date: 2013-08-18 12:44 pm (UTC)уж больно boost версия-специфичный
no subject
Date: 2013-08-18 12:47 pm (UTC)no subject
Date: 2013-08-18 12:59 pm (UTC)падает.
не работает
глючит.
ведь ни одна падла не напишет какая точно версия буста нужна, а шаг в сторону -- оно не работает
а если надо два продукта и каждому свой буст? ооо...
no subject
Date: 2013-08-18 04:35 pm (UTC)no subject
Date: 2013-08-18 04:53 pm (UTC)no subject
Date: 2013-08-18 05:00 pm (UTC)Protocol Buffers не пробовал? Под делфю чего-то уже сделали зачем-то. У меня помнится много проблем было со скоростью работы XML и JSON.
no subject
Date: 2013-08-18 05:07 pm (UTC)А вообще протокол буфферс это идея хорошая, его можно использовать там, где надо побыстрее.
no subject
Date: 2013-08-18 05:10 pm (UTC)no subject
Date: 2013-08-18 01:21 pm (UTC)no subject
Date: 2013-08-18 01:28 pm (UTC)no subject
Date: 2013-08-18 01:33 pm (UTC)no subject
Date: 2013-08-18 01:37 pm (UTC)no subject
Date: 2013-08-18 01:48 pm (UTC)no subject
Date: 2013-08-18 01:29 pm (UTC)Потому что, во-первых, можно удолбаться подключать чужие либы, а во-вторых, огрести по самое не могу, когда окажется что в тех чужих либах покопались функциональщики на веществах и разобраться, то ли это у нас ошибки, то ли автор сошел с ума - нереально.
Впрочем, у меня за год работы на С++ получилось пользоваться (и понять внутренности и кое-где даже доработать) с тремя сторонними либами.
no subject
Date: 2013-08-18 01:35 pm (UTC)За время общения с программистами на C# выяснил, что там совсем другая культура.
NuGet - и вперёд. Да и сам фреймворк изначально очень много даёт, ещё и развиваясь по ходу.
Со сторонними либами работал, вроде ок. Проблема как раз прицепить их к нашим, ибо у нас не STL. Одна из главных проблем, я бы сказал.
no subject
Date: 2013-08-18 04:10 pm (UTC)no subject
Date: 2013-08-18 04:39 pm (UTC)no subject
Date: 2013-08-18 04:24 pm (UTC)Автор пишет чушь. Конечно, если хорошего решения в публичном домене нету, ичеловек не в состоянии сам написать хорошее решение, он берёт из числа имеющихся.
Но, что характерно, почти никто же не пишет свой новый язык программирования - языки есть. И шеллы есть. Много чего есть. Но много чего нет, и если контора создаёт свой, более правильный, скелет, то и мясо на нём скорее нарастает.
Один маленький пример у меня - надо было генераторы документов делать, на паскале, для заказчика; мы посчитали это глупым, имплементировали форт на паскале, и генераторы выглядели в виде таблиц конфигов. Производительность, деньги, удовольствие.
no subject
Date: 2013-08-18 06:24 pm (UTC)классическое инженерное решение :) лолчто
no subject
Date: 2013-08-18 06:25 pm (UTC)no subject
Date: 2013-08-18 06:37 pm (UTC)А с DSLями обычно есть такой "косяк", что ими пользоваться умеют только авторы, поэтому поддерживаемость таких систем весьма сомнительна. Но впринципе это может относиться и к обычному коду на плюсах.
Мне, как заказщику, обычно плевать, в каком стиле, языке и с какими библиотеками программист написал мне ту или иную фичу, если она работает и зарабатывает деньги... ну и если пользователи тоже не жалуются.
no subject
Date: 2013-08-18 07:21 pm (UTC)no subject
Date: 2013-08-18 07:29 pm (UTC)