посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок
Hi, http://www.securitylab.ru/news/275110.php -- /doka =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Fri, Oct 13, 2006 at 14:55:20, doka.ua wrote about "[uanog] посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
Так конечно - если взять суммарный массив того мусора который составляет 99% freshmeat и sourceforge - там и не в 5, там в 555 раз больше будет. А вот если сравнить с тем что реально используется и живёт достаточно долго - ещё неизвестно что получится:) Особенно умиляет цитата:
Лучшие из программ с закрытым кодом были обнаружены в критических приложениях - типа программ для реактивных двигателей, ядерных электростанций, телефонных систем и медицинских устройств.
естественно - если взять область в которой opensource не будет по определению - можно и не такого накрутить. Итого: мусор производства очередного журналюги который сравнил апельсины с паровозами. В /dev/null. -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, Oct 13, 2006 at 03:07:10PM +0300, Valentin Nechayev wrote:
Fri, Oct 13, 2006 at 14:55:20, doka.ua wrote about "[uanog] посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
Так конечно - если взять суммарный массив того мусора который составляет 99% freshmeat и sourceforge - там и не в 5, там в 555 раз больше будет. А вот если сравнить с тем что реально используется и живёт достаточно долго - ещё неизвестно что получится:)
Особенно умиляет цитата:
Лучшие из программ с закрытым кодом были обнаружены в критических приложениях - типа программ для реактивных двигателей, ядерных электростанций, телефонных систем и медицинских устройств.
естественно - если взять область в которой opensource не будет по определению - можно и не такого накрутить.
Итого: мусор производства очередного журналюги который сравнил апельсины с паровозами. В /dev/null.
"Исследование также показало, что открытое ПО, несмотря на огромное количество ошибок, имеет более высокое качество кода по сравнению с закрытыми источниками." Интересно, какие вообще критерии оценки качества кода у этих апельсинопаровозов :) -- Katie Petrusha RIPE NCC =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, Oct 13, 2006 at 03:07:10PM +0300, Valentin Nechayev wrote:
Так конечно - если взять суммарный массив того мусора который составляет 99% freshmeat и sourceforge - там и не в 5, там в 555 раз больше будет. А вот если сравнить с тем что реально используется и живёт достаточно долго - ещё неизвестно что получится:)
Перечень похоже варьируется все-таки вокруг http://scan.coverity.com/ Да и список клиентов Сoverity, читай - поставщиков закрытого кода, внушает. Вот только Microsoft там нету... :D :D -- Dmitry Kiselev =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Fri, Oct 13, 2006 at 15:52:50, dmitry wrote about "[uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
http://www.securitylab.ru/news/275110.php Так конечно - если взять суммарный массив того мусора который составляет 99% freshmeat и sourceforge - там и не в 5, там в 555 раз больше будет. А вот если сравнить с тем что реально используется и живёт достаточно долго - ещё неизвестно что получится:) Перечень похоже варьируется все-таки вокруг http://scan.coverity.com/
Там в комментариях к статье толковые суждения про их методику. О том, что, например, они ошибкой считают неициализацию переменной в примерно таком коде: int x; if(cond) x = 5; else x = 9; Фирменное ПО обычно подчиняется строгому coding style который такие вещи не допускает. Но считать такой код ошибочным - нелепо.
Да и список клиентов Сoverity, читай - поставщиков закрытого кода, внушает. Вот только Microsoft там нету... :D :D
У Microsoft код достаточно неплохой. Но вот читать его - надо запасаться ящиками спиртного. -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On 10/13/06, Valentin Nechayev
Fri, Oct 13, 2006 at 15:52:50, dmitry wrote about "[uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
http://www.securitylab.ru/news/275110.php Так конечно - если взять суммарный массив того мусора который составляет 99% freshmeat и sourceforge - там и не в 5, там в 555 раз больше будет. А вот если сравнить с тем что реально используется и живёт достаточно долго - ещё неизвестно что получится:) Перечень похоже варьируется все-таки вокруг http://scan.coverity.com/
Там в комментариях к статье толковые суждения про их методику. О том, что, например, они ошибкой считают неициализацию переменной в примерно таком коде:
int x; if(cond) x = 5; else x = 9;
Фирменное ПО обычно подчиняется строгому coding style который такие вещи не допускает. Но считать такой код ошибочным - нелепо.
Про code reuse & refactoring чего-то слышал благородный дон? Сравнивать нужно все-таки industrial code & free software.
Fri, Oct 13, 2006 at 16:05:48, paveln wrote about "[uanog] Re: [uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
Фирменное ПО обычно подчиняется строгому coding style который такие вещи не допускает. Но считать такой код ошибочным - нелепо. Про code reuse & refactoring чего-то слышал благородный дон?
Да-да, что-то такое мне однажды говорили после седьмой банки. А при чём тут они?
Сравнивать нужно все-таки industrial code & free software.
А смысл так сравнивать? И о котором из "industrial code" речь-то? -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hi Valentin,
Сравнивать нужно все-таки industrial code & free software. А смысл так сравнивать? И о котором из "industrial code" речь-то?
По-моему сравнивать нужно не текст программ парсерами, а качество их работы, которое можно попробовать оценить по относительному кол-ву жалоб, патчей, переделок, переработок и т.п. -- Michael =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
13.10.06, Michael Petuschak
По-моему сравнивать нужно не текст программ парсерами, а качество их работы,
это 100%
которое можно попробовать оценить по относительному кол-ву жалоб, патчей, переделок, переработок и т.п.
а вот это IMHO благородный дон того... ошибается качество надо оценивать по а) соответствию реальной функциональности продукта - техническому заданию - документации причем как в плане реализации заявленных свойств, так и в контексте отсутствия ээээ... недокументированных, скажем так ;) б) соответствия продукта в целом ожиданиям кастомерской аудитории =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Андрей,
качество продукта и качество кода это две большие разницы. Речь идет о
сравнении сферического кода в вакууме. Взял мегабайт кода - использовал в
одном продукте, потм в другом, после этого в третьем и так далее до
посинения кода.
On 10/13/06, Andrew Stesin
13.10.06, Michael Petuschak
написал(а): По-моему сравнивать нужно не текст программ парсерами, а качество их работы,
это 100%
которое можно попробовать оценить по относительному кол-ву жалоб, патчей, переделок, переработок и т.п.
а вот это IMHO благородный дон того... ошибается
качество надо оценивать по
а) соответствию реальной функциональности продукта - техническому заданию - документации причем как в плане реализации заявленных свойств, так и в контексте отсутствия ээээ... недокументированных, скажем так ;)
б) соответствия продукта в целом ожиданиям кастомерской аудитории
On 10/13/06, Valentin Nechayev
Fri, Oct 13, 2006 at 16:05:48, paveln wrote about "[uanog] Re: [uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
Фирменное ПО обычно подчиняется строгому coding style который такие вещи не допускает. Но считать такой код ошибочным - нелепо. Про code reuse & refactoring чего-то слышал благородный дон?
Да-да, что-то такое мне однажды говорили после седьмой банки. А при чём тут они?
Ну как это при чем? Ведь сравнивают-то КОД, а не продукт в целом. В контексте данного конкретного продукта этот код - ОК. Если ты его используешь в другом продукте - кто его знает, как повернется дело из-за неинициализированной переменной. В принципе, такого в industrial code такого ляпа быть не может, это будет выкорчевано при refactoring. В принципе, эти же парадигмы используются и в freeware программированиии.
Сравнивать нужно все-таки industrial code & free software.
А смысл так сравнивать? И о котором из "industrial code" речь-то?
-netch-
Fri, Oct 13, 2006 at 16:21:13, paveln wrote about "[uanog] Re: [uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
качество продукта и качество кода это две большие разницы. Речь идет о сравнении сферического кода в вакууме. Взял мегабайт кода - использовал в одном продукте, потм в другом, после этого в третьем и так далее до посинения кода.
- Доктор, когда я так делаю, у меня тут болит. - А Вы так не делайте. Ну какой смысл в таком бездумном code reuse? И к тому же если продукт хорошо работает - есть большая вероятность что хорошо работают все его компоненты. В том числе и те которые можно выдрать и утащить. -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hi Andrew,
которое можно попробовать оценить по относительному кол-ву жалоб, патчей, переделок, переработок и т.п.
а вот это IMHO благородный дон того... ошибается
качество надо оценивать по
а) соответствию реальной функциональности продукта - техническому заданию - документации причем как в плане реализации заявленных свойств, так и в контексте отсутствия ээээ... недокументированных, скажем так ;)
б) соответствия продукта в целом ожиданиям кастомерской аудитории
Ну, тут уж точно никакой статистики не соберешь. Кроме того, твой пункт б совпадает с тем, что написал я, а пункт а - совсем другое дело. Я бы сказал, что заказчит оценивает продукт с пом. б, разработчик - с пом. а :) Но если хочется сделать статистику по тысячам продуктов - это все не подходит. -- Michael Кого хотел, кого хочу - молчу... =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On 10/13/06, Valentin Nechayev
Fri, Oct 13, 2006 at 16:21:13, paveln wrote about "[uanog] Re: [uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
качество продукта и качество кода это две большие разницы. Речь идет о сравнении сферического кода в вакууме. Взял мегабайт кода - использовал в одном продукте, потм в другом, после этого в третьем и так далее до посинения кода.
- Доктор, когда я так делаю, у меня тут болит. - А Вы так не делайте.
Ну какой смысл в таком бездумном code reuse?
Ну как это какой? Экономия времени, ускорение разработки. Эффективность труда программиста повышается, иногда - в разы. И к тому же если продукт хорошо работает - есть большая вероятность что
хорошо работают все его компоненты. В том числе и те которые можно выдрать и утащить.
Неправда.
Fri, Oct 13, 2006 at 16:24:01, paveln wrote about "[uanog] Re: [uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
Фирменное ПО обычно подчиняется строгому coding style который такие вещи не допускает. Но считать такой код ошибочным - нелепо. Про code reuse & refactoring чего-то слышал благородный дон? Да-да, что-то такое мне однажды говорили после седьмой банки. А при чём тут они?
Ну как это при чем? Ведь сравнивают-то КОД, а не продукт в целом. В контексте данного конкретного продукта этот код - ОК. Если ты его используешь в другом продукте - кто его знает, как повернется дело из-за неинициализированной переменной.
Я вообще-то показал пример когда задание значения производится в той же функции. Кто-то станет выдирать кусок функции в другой продукт, не понимая, что он делает и почему этой переменной ничего не присвоили с самого начала? И кто он после этого, сироти-инушка, да? ;)
В принципе, такого в industrial code такого ляпа быть не может, это будет выкорчевано при refactoring.
О Митра. Рефакторинг-то тут при чём? У в принципе нет задачи исправлять то что не влияет на функциональность. Если и исправляет - то как побочный эффект.
В принципе, эти же парадигмы используются и в freeware программированиии.
Угу, есть как минимум один разработчик который минимум в одном продукте рефакторит минимум одну функцию минимум один раз:) -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Fri, Oct 13, 2006 at 16:30:05, paveln wrote about "[uanog] Re: [uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
- Доктор, когда я так делаю, у меня тут болит. - А Вы так не делайте.
Ну какой смысл в таком бездумном code reuse?
Ну как это какой? Экономия времени, ускорение разработки. Эффективность труда программиста повышается, иногда - в разы.
И, разумеется, для этого повышения в разы достаточно расстановки фигурных скобок в правильном порядке и инициализации переменных которые и без того будут инициализированы?
И к тому же если продукт хорошо работает - есть большая вероятность что
хорошо работают все его компоненты. В том числе и те которые можно выдрать и утащить. Неправда.
О, есть статистика показывающая обратное? Покажи. -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On 10/13/06, Valentin Nechayev
Fri, Oct 13, 2006 at 16:24:01, paveln wrote about "[uanog] Re: [uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
Фирменное ПО обычно подчиняется строгому coding style который такие вещи не допускает. Но считать такой код ошибочным - нелепо. Про code reuse & refactoring чего-то слышал благородный дон? Да-да, что-то такое мне однажды говорили после седьмой банки. А при чём тут они?
Ну как это при чем? Ведь сравнивают-то КОД, а не продукт в целом. В контексте данного конкретного продукта этот код - ОК. Если ты его используешь в другом продукте - кто его знает, как повернется дело из-за неинициализированной переменной.
Я вообще-то показал пример когда задание значения производится в той же функции. Кто-то станет выдирать кусок функции в другой продукт, не понимая, что он делает и почему этой переменной ничего не присвоили с самого начала? И кто он после этого, сироти-инушка, да? ;)
Да нет. Вообще-то программер не должен думать о качестве кода, который до него проверили-перепроверили, он его возьмет и использует. Вот рабочий в цеху разве рповеряет качество стали, из которой молоток сделан? Если следовать твоей логике, перед ударом по гвоздю он должен провести химический анализ.
В принципе, такого в industrial code такого ляпа быть не может, это будет
выкорчевано при refactoring.
О Митра. Рефакторинг-то тут при чём? У в принципе нет задачи исправлять то что не влияет на функциональность. Если и исправляет - то как побочный эффект.
Как это при чем? Ты вообще в курсе, что такое refactoring?
В принципе, эти же парадигмы используются и в
freeware программированиии.
Угу, есть как минимум один разработчик который минимум в одном продукте рефакторит минимум одну функцию минимум один раз:)
Валик, попробуй абстрагироваться от продуктового программирования. Совсем. Есть код, реализовывающий функционал, нет никаких продуктов.
On 10/13/06, Valentin Nechayev
Fri, Oct 13, 2006 at 16:30:05, paveln wrote about "[uanog] Re: [uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
- Доктор, когда я так делаю, у меня тут болит. - А Вы так не делайте.
Ну какой смысл в таком бездумном code reuse?
Ну как это какой? Экономия времени, ускорение разработки. Эффективность труда программиста повышается, иногда - в разы.
И, разумеется, для этого повышения в разы достаточно расстановки фигурных скобок в правильном порядке и инициализации переменных которые и без того будут инициализированы?
Ты в этом уверен? Ты точно это знаешь? Ты знаешь, где, на каком компиляторе, на какой операционке и в какой среде будет использован этот код?
И к тому же если продукт хорошо работает - есть большая вероятность что
хорошо работают все его компоненты. В том числе и те которые можно выдрать и утащить. Неправда.
О, есть статистика показывающая обратное? Покажи.
Логики недостаточно?
Fri, Oct 13, 2006 at 16:38:06, paveln wrote about "[uanog] Re: [uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
Я вообще-то показал пример когда задание значения производится в той же функции. Кто-то станет выдирать кусок функции в другой продукт, не понимая, что он делает и почему этой переменной ничего не присвоили с самого начала? И кто он после этого, сироти-инушка, да? ;) Да нет. Вообще-то программер не должен думать о качестве кода, который до него проверили-перепроверили, он его возьмет и использует. Вот рабочий в цеху разве рповеряет качество стали, из которой молоток сделан? Если следовать твоей логике, перед ударом по гвоздю он должен провести химический анализ.
Очень интересно. Покажи мне, пожалуйста, где я применял такую логику. Пока что мне кажется, что это твои фантазии на тему моей логики:) А если использовать сравнение с молотком, и попытаться понять что ты имел в виду (не утверждаю что правильно понял) - ты пытался показать что если есть молоток (в смысле металлической детали ударного назначения) то он будет подходить ко всем рукояткам сразу, иначе это плохой, негодный молоток?
В принципе, такого в industrial code такого ляпа быть не может, это будет
выкорчевано при refactoring.
О Митра. Рефакторинг-то тут при чём? У в принципе нет задачи исправлять то что не влияет на функциональность. Если и исправляет - то как побочный эффект. Как это при чем? Ты вообще в курсе, что такое refactoring?
В курсе, в курсе. Повторяю вопрос: при чём он и почему он обязан лечить подобные псевдопроблемы? Покажи мне пожалуйста стандартный шаблон рефакторинга (например из классического набора Фаулера) в котором делается изменение кода - присвоение начального значения переменной - и больше ничего не делается (или это присвоение является главным в этом шаблоне).
В принципе, эти же парадигмы используются и в
freeware программированиии. Угу, есть как минимум один разработчик который минимум в одном продукте рефакторит минимум одну функцию минимум один раз:) Валик, попробуй абстрагироваться от продуктового программирования. Совсем. Есть код, реализовывающий функционал, нет никаких продуктов.
Рад бы, да не могу. Вот есть библиотечная qsort(). По-твоему она уже есть и ничего больше использовать не нужно. Я могу привести ряд случаев когда она работает неправильно или неэффективно и даже в пределах своей узкой области применения может быть заменена на что-то другое, даже самопальное, с улучшением результата. Что, нельзя? (Только не надо скатываться на 2-й курс и вспоминать заранее отсортированные массивы) -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Fri, Oct 13, 2006 at 16:40:09, paveln wrote about "[uanog] Re: посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок":
Ну как это какой? Экономия времени, ускорение разработки. Эффективность труда программиста повышается, иногда - в разы. И, разумеется, для этого повышения в разы достаточно расстановки фигурных скобок в правильном порядке и инициализации переменных которые и без того будут инициализированы? Ты в этом уверен? Ты точно это знаешь? Ты знаешь, где, на каком компиляторе, на какой операционке и в какой среде будет использован этот код?
АПВС? Встречный вопрос: как операционка, компилятор, среда влияют на выполнение функции, если её код таков что работает во всех внешних условиях соответствующих стандарту? Более широкий случай: как они влияют на выполнение кода, если выполнения 1) стандарта языка, 2) правил применения данного кода (например вызвать xxx_init перед xxx_open) достаточно для правильности выполнения кода?
И к тому же если продукт хорошо работает - есть большая вероятность что
хорошо работают все его компоненты. В том числе и те которые можно выдрать и утащить. Неправда. О, есть статистика показывающая обратное? Покажи. Логики недостаточно?
Нет, естественно. Потому что я выдвигал не квантор всеобщности, а квантор высокой вероятности:))) -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
13.10.06, Valentin Nechayev
Вот есть библиотечная qsort(). По-твоему она уже есть и ничего больше использовать не нужно. Я могу привести ряд случаев когда она работает неправильно
покежь?
или неэффективно
покежь?
и даже в пределах своей узкой области применения может быть заменена на что-то другое, даже самопальное, с улучшением результата.
чем мерим результат и по какой из возможных шкал вычисляем улучшение? =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Fri, Oct 13, 2006 at 16:53:37, stesin wrote about "[uanog] Re: [uanog] посмеемся вместе? :) - В проприетарном ПО содержится в среднем в пять раз меньше ошибок": > >Вот есть библиотечная qsort(). По-твоему она уже есть и ничего больше > >использовать не нужно. Я могу привести ряд случаев когда она работает > >неправильно > покежь? > >или неэффективно > покежь? 1. Случай требования сохранения порядка элементов с равными ключами (т.наз. "стабильная" сортировка) 2. Случай когда сравнение значительно дороже обмена (типично для сложных объектов) 3. Случай возможности параллельной обработки (сортировка Бэтчера, например в этом случае в разы эффективнее) Это всё чисто читая Кнута и не изобретая каких-то фантастических причин;) хотя всё описанное подтверждалось на практике. > >и даже в пределах своей узкой области применения может быть заменена на > >что-то другое, даже самопальное, с улучшением результата. > чем мерим результат и по какой из возможных шкал вычисляем улучшение? Шкала для каждого применения, естественно, своя. Где-то важно среднее время, где-то предельное. Где-то затраты по памяти, а где-то увеличение количества девяток после запятой в доле безотказной работы. -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On 10/13/06, Pavel Narozhnyy
Да нет. Вообще-то программер не должен думать о качестве кода, который до него проверили-перепроверили, он его возьмет и использует. Вот рабочий в цеху разве рповеряет качество стали, из которой молоток сделан? Если следовать твоей логике, перед ударом по гвоздю он должен провести химический анализ.
Я не знаю теории написания ПО, но если взять, к примеру, концепцию ООП, то в соответствии с ней, code reuse состоит в том, что берется некий черный ящик - класс, который выполняет законченную задачу, давая для этого некий API наружу. А если продолжать твою аналогию, то рабочий вправе взять ручку от молотка и использовать ее для всего, к чему она может быть приставлена и если вдруг эта ручка раскроится вдоль, то это не проблема данного конкретного рабочего, а проблема разработчика инструмента "молоток" :) -- /doka =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
participants (7)
-
Andrew Stesin
-
Dmitry Kiselev
-
Katie Petrusha
-
Michael Petuschak
-
Pavel Narozhnyy
-
Valentin Nechayev
-
Vladimir Litovka