Еще одна юниксо-холиварная идея
Jun. 13th, 2009 10:16 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Я вот подумал, что "в среднем" софт, сделанный, скажем так в идеологии опен-сорс-юникс-вея, будет содержать больше багов, чем монолитно-виндовско-проприетарный. Багов такого вида типа "определенная функция в определенных условиях не работает".
Вот к примеру: я пишу некий софт, и массово использую для него сервисы предоставляемые другими прогами. В особо безумных случаях - вообще софт может представлять собой эти проги с обвязкой из скриптов. Если софт сложный - то он еще и несколько различных интерпретаторов скриптов может за собой притащить. Но главное то, что это софт чужой. И если во взаимодействии между разными софтам что-то ломается - самостоятельно исправлять чужой софт, по идее, не положено - положено зарепортить баг, если это баг, или наделать костылей, если это by design так. И у юзера в итоге будет то же самое - что-то ломается во взаимодействии, а участвует в этом десяток прог разных авторов. Куды бежать - неясно.
В монолитной виндовой проприетарщине же если что-то ломается - очевидно, первым этапом можно пойти поиметь мозг автору. А тому, в общем-то, и проще все исправить, т.к. код у него под контролем, а если автор еще и вменяем, то от сторонних сервисов у него вообще ничего не зависит. "Не принято вносить зависимости". И т.к. участвует одна единица "автор" или "контора-разработчик", исправление внести проще, чем когда это дело сначала надо обсудить со всем комьюнити в мейл-листах, поцеловать иконы столлмана и торвальдса в спину, сделать сначала патч, потом внести его куда-нибудь в основную ветку, долждаться пока выйдет очередная стабильная версия, а потом пару лет отвечать юзерам "обновите такое-то софтино версию 2.x.y на 2.x.z, если у вас при откручивании гайки из пупка жопа отваливается".
Конечно, когда проприетарный софт такой стоит массово у юзеров - там возникают те же проблемы, типа как у винды с обновлениями и рунтаймами от VS. Хотя для прикладного софта проблемы в основном вызывает только второе(если на VS писать), с обновлениями он хоть и конфликтует но не часто.
В общем, идея в том, чтобы не плодить множество зависимостей и разных версий - тогда получится, что если проблема в какой-то версии есть - она есть у всех и у всех ее можно однообразно исправить, а не разбираться, не поломается ли от исправления все остальное.
Вот к примеру: я пишу некий софт, и массово использую для него сервисы предоставляемые другими прогами. В особо безумных случаях - вообще софт может представлять собой эти проги с обвязкой из скриптов. Если софт сложный - то он еще и несколько различных интерпретаторов скриптов может за собой притащить. Но главное то, что это софт чужой. И если во взаимодействии между разными софтам что-то ломается - самостоятельно исправлять чужой софт, по идее, не положено - положено зарепортить баг, если это баг, или наделать костылей, если это by design так. И у юзера в итоге будет то же самое - что-то ломается во взаимодействии, а участвует в этом десяток прог разных авторов. Куды бежать - неясно.
В монолитной виндовой проприетарщине же если что-то ломается - очевидно, первым этапом можно пойти поиметь мозг автору. А тому, в общем-то, и проще все исправить, т.к. код у него под контролем, а если автор еще и вменяем, то от сторонних сервисов у него вообще ничего не зависит. "Не принято вносить зависимости". И т.к. участвует одна единица "автор" или "контора-разработчик", исправление внести проще, чем когда это дело сначала надо обсудить со всем комьюнити в мейл-листах, поцеловать иконы столлмана и торвальдса в спину, сделать сначала патч, потом внести его куда-нибудь в основную ветку, долждаться пока выйдет очередная стабильная версия, а потом пару лет отвечать юзерам "обновите такое-то софтино версию 2.x.y на 2.x.z, если у вас при откручивании гайки из пупка жопа отваливается".
Конечно, когда проприетарный софт такой стоит массово у юзеров - там возникают те же проблемы, типа как у винды с обновлениями и рунтаймами от VS. Хотя для прикладного софта проблемы в основном вызывает только второе(если на VS писать), с обновлениями он хоть и конфликтует но не часто.
В общем, идея в том, чтобы не плодить множество зависимостей и разных версий - тогда получится, что если проблема в какой-то версии есть - она есть у всех и у всех ее можно однообразно исправить, а не разбираться, не поломается ли от исправления все остальное.
no subject
Date: 2009-06-13 07:49 am (UTC)http://metaclass.livejournal.com/367787.html
http://metaclass.livejournal.com/367187.html
http://metaclass.livejournal.com/366207.html
Вот я твои (и не очень твои) проблемы привёл. Что-то я там не вижу "В монолитной виндовой проприетарщине же если что-то ломается - очевидно, первым этапом можно пойти поиметь мозг автору."
Сравним, например, количество софта под Линукс и Виндовс. Под Линукс по умолчанию его больше на порядок, а то и на два. И всё это воспринимается, как один Линукс. Тогда как Виндовс с такой же функциональностью будет восприниматься, как Виндовс/MS+MinGW/Cygwin+Adobe+много, кто ещё.
Теперь сравним ядра. XP/Vista это одно, а WinCE - другое. А linux kernel - это и XP, и Vista, и WinCE в одном флаконе. То есть, значительно сложней.
Так что за опровержением твоего тезиса не надо далеко ходить. Даже по твоему журналу. ;)
no subject
Date: 2009-06-13 08:20 am (UTC)"Софт", которого "на порядок" больше - это 99% мелкие утилиты для потоковой обработки чего-либо из одной в другую. А прикладного софта - на порядок меньше.
no subject
Date: 2009-06-13 08:25 am (UTC)no subject
Date: 2009-06-13 08:56 am (UTC)no subject
Date: 2009-06-13 09:10 am (UTC)no subject
Date: 2009-06-13 09:26 am (UTC)Причём, самоопровергающиеся - человек по твоей ссылке жалуется на командную строку и маны, а сам делает sudo apt-get что-то-там.
Кстати, если у тебя есть возможность: присмотрись к "виндовой проприетарной фигне". У неё внутри, в случае сложной штуки, ровно такая же шиза.
Например, в исходниках того, что все считали одной из версий HL2 были аж две сторонних библиотеки физики. ;)
Я тут подумал, что то, о чём ты говоришь, на самом деле просто желание иметь единый рычаг "управления качеством". Так это и в мире открытых исходников есть: Red Hat, например.
Правда, я не могу за деньги для RHEL купить поддержку Хаскеля. Мне придётся заплатить сверху.
Не вижу проблем.
Более того, не вижу разницы в проблемах открытых исходников и частного софта.
no subject
Date: 2009-06-13 09:30 am (UTC)Хотя на случай "вендор умер, софт остался" такая свобода дает некоторые гарантии, что работа клиента не встанет колом.
no subject
Date: 2009-06-13 11:52 am (UTC)no subject
Date: 2009-06-13 07:59 am (UTC)no subject
Date: 2009-06-13 09:00 am (UTC)no subject
Date: 2009-06-13 10:17 am (UTC)А стабильные версии - на то они и стабильные, что в них только багфиксы и делаются.
no subject
Date: 2009-06-14 07:20 am (UTC)no subject
Date: 2009-06-14 09:43 am (UTC)no subject
Date: 2009-06-14 12:50 pm (UTC)no subject
Date: 2009-06-13 08:09 am (UTC)Скоро закон выпустят.
Сейчас как раз формулируют.
"За разжигание..."
no subject
Date: 2009-06-13 08:11 am (UTC)Гм.
Вроде, Open Source изначально на том и построен...
Толкьо вот сейчас софт стал сложнее и исправлять сложнее.
no subject
Date: 2009-06-13 08:43 am (UTC)Первое, главное, психологическое -- заметно явное нежелание зависеть как-либо от других людей. Перекладывать на них часть своих обязанностей (это из какого-то соседнего поста), пользоваться результатами их трудов, заставлять их фиксить их баги. Если простор деятельности будет увеличиваться и дальше, можно просто утонуть в этих говномелочах. Это не слишком хороший вариант жизни.
Тут можно провести аналогию с распараллеливанием: пока задача влезает в один проц -- можно её решать в пределах одного проца эффективным алгоритмом, но если не влезает, то нужно распараллеливать на несколько процессоров, пусть даже применяя гораздо менее эффективные алгоритмы, но добиваясь хорошего времени отклика.
Второе -- можно хотя бы понять проблемы опенсорса (не говорю про "простить"). Объёмы и возможности кода несопоставимы. Чистая винда -- это очень малая функциональность. Сравнима разве что с linux kernel + libc + X Window (мог забыть что-то ещё). Версий винды мало по сравнению с версиями разного опенсорсного. Винда имеет концептуально одинаковые возможности, тогда как разные юниксы предоставляют разное.
Третье -- не обязательно лобызать тохес автору опенсорс-библиотеки. Для критичных по времени вещей я делаю так: собираю библиотеку с нужным мне патчем, и либо линкую статически, либо подкладываю динамически-загружаемые библиотеки рядом с программой. Даже билд-систему написал, которая эти патчи применяет при нужных условиях, собирает с ними, учитывает взаимные зависимости и всё такое. На 19 опенсорс-софтин у меня сейчас 25 патчей. Конечно, при наличии времени и желания и в зависимости от упоротости автора я отправляю эти патчи наверх.
Забавно бывает видеть, как патч на то, что я исправил, но не отправил, начинает обламываться из-за того, что авторы независимо от меня исправили это в новой версии :)
И в свете этого становится удивительно -- а как же изголяются пользователи закрытого софта, когда обнаруживают баг в каких-нибудь виндах или дельфях? Поправить-то нельзя. Только ждать новую версию или делать разной степени гадости обходные маневры.
no subject
Date: 2009-06-13 09:02 am (UTC)no subject
Date: 2009-06-13 09:10 am (UTC)no subject
Date: 2009-06-13 09:15 am (UTC)Я с разработчиками Firebird точно так же контактирую - они сами баги исправляют к очередному релизу (софт немелкий, сразу не исправишь), но если сильно нужно - можно самостоятельно исходники править.
У нашего софта цикл "обнаружение бага или требование фичи -> изготовление, документирование -> тестирование -> релиз и обновление" где-то от недели до двух занимает, если багофича мелкая. А крупные обычно за собой тянут еще и архитектурные исправления, поэтому месяц-два могут занять.
no subject
Date: 2009-06-13 11:00 am (UTC)no subject
Date: 2009-06-13 09:13 am (UTC)компилируется оно gcc, к-й туда добавляет хз что, но похожее на мусор (зачем? про то неизвестно). gcc выпускается fsf а fsf финансируется производителями процессоров (опять же зачем? неясно).
no subject
Date: 2009-06-13 09:19 am (UTC)no subject
Date: 2009-06-13 10:53 am (UTC)no subject
Date: 2009-06-13 11:02 am (UTC)Странно только, что самым быстрым компилятором при таком раскладе является именно icc, это как-то не вписывается в конь-цепцию.
no subject
Date: 2009-06-13 01:07 pm (UTC)no subject
Date: 2009-06-13 01:19 pm (UTC)no subject
Date: 2009-06-13 01:19 pm (UTC)примерно так, ога :)
no subject
Date: 2009-06-13 09:39 am (UTC)Т.е. Идея конечно интересная, и вроде правильная, но вкорне расходится с суровой действительностью.
no subject
Date: 2009-06-13 09:47 am (UTC)no subject
Date: 2009-06-13 11:06 am (UTC)no subject
Date: 2009-06-13 10:00 am (UTC)"определенная функция в определенных условиях не работает"
Именно такое впечатление создалось от использования SuSE:) В очередной момент без видимой причины что-то совершенно обыденное вдруг начинает идти наперекосяк.
no subject
Date: 2009-06-13 11:15 am (UTC)no subject
Date: 2009-06-13 09:09 pm (UTC)no subject
Date: 2009-06-13 11:04 am (UTC)Ну не смешно даже. Пофигу им что там у вас сломалось.
no subject
Date: 2009-06-13 11:07 am (UTC)Я скорее считаю, что линуксоидам должно быть пофигу, т.к. разорвана связь "качественный софт - есть что жрать завтра".
no subject
Date: 2009-06-13 11:16 am (UTC)no subject
Date: 2009-06-13 11:32 am (UTC)Гугл знает только про такие же проблемы, ответов там вроде бы нет.
Такое ощущение, что в висте неправильный код ошибки где-то возвращается, т.к. эта ошибка из совершенно другой оперы(удаление сетевого диска). Я бы сел на той машине локально с procmon и попытался бы отследить, что происходит при попытке логиниться в rdp.
no subject
Date: 2009-06-13 11:54 am (UTC)А ведь этим операционным граблям уже больше пятнадцати лет! Я имею ввиду, что с виндами нельзя рассчитывать на полностью удалённую работу: обязательно должен быть доступ к телу.
no subject
Date: 2009-06-13 11:58 am (UTC)no subject
Date: 2009-06-13 03:34 pm (UTC)no subject
Date: 2009-06-13 03:36 pm (UTC)И еще всякие действия связанные с безопасным режимом, удаленно их просто не сделаешь.
no subject
Date: 2009-06-13 11:24 am (UTC)Вот так и живем...
no subject
Date: 2009-06-13 02:01 pm (UTC)no subject
Date: 2009-06-13 02:09 pm (UTC)А вот разработчик прикладного софта чужой софт менять не будет, ибо есть шансы поломать работу чего-нибудь постороннего. Или, как минимум, ответственность будет переложена на клиента.
Например, если какой-нибудь долбень придет и поставит свой софт, не проверив, что он ломает работу нашего - в общем случае, это не подпадает под условия гарантии и клиент может попасть на бабки. Хотя обычно там работы на исправление немного, поэтому в рамках обслуживания это дело исправляется.
no subject
Date: 2009-06-30 09:56 am (UTC)