Сорсфорж меня, как админа одного из проектов, попросил заполнить анкету. Анкета касалась повторного использования кода в оперсонрсных программах. В связи с чем у меня возникло подозрение, что мало людей использует чужой код. А ведь это золотая жила.
Сейчас понаписано миллионы строк одинакового кода различными людьми и довольно много кода открыто для свободного использования. И самый эффективный программист это тот, который ипользует чужой код по максимуму и не пишет больших велосипедов.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Здравствуйте, Kore Sar, Вы писали:
KS>>А ведь это золотая жила.
KV>Золотая-то она золотая. Только вектор потока золота не всегда очевиден и может быть расположен как к разрабатывающему, так и от него
Считаю что хороший программист отличется от плохого тем, что всегда выбирает "к", а не "от".
Здравствуйте, Kore Sar, Вы писали:
KS>Сорсфорж меня, как админа одного из проектов, попросил заполнить анкету. Анкета касалась повторного использования кода в оперсонрсных программах. В связи с чем у меня возникло подозрение, что мало людей использует чужой код. А ведь это золотая жила.
Переиспользованию кода мешают например разного рода лицензии (GPL в том числе) а также качество этого самого кода.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, Kore Sar, Вы писали:
KS>>Сорсфорж меня, как админа одного из проектов, попросил заполнить анкету. Анкета касалась повторного использования кода в оперсонрсных программах. В связи с чем у меня возникло подозрение, что мало людей использует чужой код. А ведь это золотая жила. CC>Переиспользованию кода мешают например разного рода лицензии (GPL в том числе) а также качество этого самого кода.
Я специально написал в исходном сообщении не "открытого кода", а "кода свободного использования". Т.е. давайте не рассматривать код, который хоть и открыт, но запрещен к использованию.
А вот про качество — здесь давайте по-подробнее. У Вас много опыта использования чужого кода? Какой процент из кода свободного использования написан так, что его нельзя будет нормально юзать?
Здравствуйте, Kore Sar, Вы писали:
KS>А вот про качество — здесь давайте по-подробнее. У Вас много опыта использования чужого кода? Какой процент из кода свободного использования написан так, что его нельзя будет нормально юзать?
Большой процент. Мне почти всегда приходится исправлять косяки и допиливать.
Здравствуйте, Kore Sar, Вы писали:
CC>>Переиспользованию кода мешают например разного рода лицензии (GPL в том числе) а также качество этого самого кода. KS>Я специально написал в исходном сообщении не "открытого кода", а "кода свободного использования". Т.е. давайте не рассматривать код, который хоть и открыт, но запрещен к использованию.
Не сочтите за придирку, но GPL очень сложно назвать "запрещенным к использованию". Поэтому термин "запрещен к использованию" следовало бы уточнить.
KS>А вот про качество — здесь давайте по-подробнее. У Вас много опыта использования чужого кода? Какой процент из кода свободного использования написан так, что его нельзя будет нормально юзать?
По-моему, ситуация такая же, как и с проприетарным кодом -- есть хорошие куски, есть и такие, которые работают и слава богу.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, MozgC, Вы писали:
MC>Здравствуйте, Kore Sar, Вы писали:
KS>>А вот про качество — здесь давайте по-подробнее. У Вас много опыта использования чужого кода? Какой процент из кода свободного использования написан так, что его нельзя будет нормально юзать?
MC>Большой процент. Мне почти всегда приходится исправлять косяки и допиливать.
Я бы даже сказал всегда приходится это делать.
Но ведь при определённом опыте можно быть гораздо эффективнее используя чужие велосипеды, чем свои. Т.е. использовать чужой код в больших количествах — это залог успеха, имхо.
Здравствуйте, Kore Sar, Вы писали:
KS>Я специально написал в исходном сообщении не "открытого кода", а "кода свободного использования". Т.е. давайте не рассматривать код, который хоть и открыт, но запрещен к использованию.
Пардон, был невнимателен.
Далее буду про public domain код, хотя его мне попадалось совсем немного. Народ больше любит GPL, LGPL, BSD и проч. лицензии.
KS>У Вас много опыта использования чужого кода?
Ну, относительно. Как узнать это у меня много или не много.
KS> Какой процент из кода свободного использования написан так, что его нельзя будет нормально юзать?
Из того что я использовал из небольших объемов кода как минимум отрефакторить пришлось почти всё.
Причины:
Или написан в суровом С стиле — куча глобальных переменных, все на сырых указателях и т.п. В таком виде накрывается использование в многопоточном приложении, поэтому переделка неминуема.
Или же написан как кура лапой c совершенно невменяемыми именами функций, переменных и т.п. — причесывание, rename и переделка критических мест.
Или просто плохо читаем — тогда просто проход с "причесыванием" и refactor rename для непонятных имён.
Кардинально переписывать, вникая в алгоритм, и по сути постепенно реализуя его заново пришлось наверное только в 30-40% случаев.
Остальное свелось к причёсыванию кода, покрытию его тестами и приведению к coding standard.
В случае использования стороннего public domain кода больших объемов и также к поставляемому в виде .lib/.dll + .h (т.е. без сурсов) — при необходимости "очеловечить" интерфейс писался враппер, иначе использовалось как есть.
Вообще использование чужого, неподконтрольного тестам кода стараюсь сводить к минимуму — только там, где без него совсем никак.
Где то вот так.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Kore Sar, Вы писали:
KS>Но ведь при определённом опыте можно быть гораздо эффективнее используя чужие велосипеды, чем свои. Т.е. использовать чужой код в больших количествах — это залог успеха, имхо.
Все равно, чужой велосипед нужно проанализировать и понять, хотя бы потому чтоб найти возможные ошибки в коде.
Гораздо эффективнее оказывается построить свой велосипед, с блэкджеком и hookers, на основе чужого и заточенный именно под свою задачу.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, eao197, Вы писали:
E>Не сочтите за придирку, но GPL очень сложно назвать "запрещенным к использованию". Поэтому термин "запрещен к использованию" следовало бы уточнить.
GPL это вирусная лицензия, заставляющая выпускать свой продукт тоже только под GPL.
Поэтому она закрывает легальное использование кода не в GPL проектах. Что есть сакс.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, Kore Sar, Вы писали:
KS>>Но ведь при определённом опыте можно быть гораздо эффективнее используя чужие велосипеды, чем свои. Т.е. использовать чужой код в больших количествах — это залог успеха, имхо. CC>Все равно, чужой велосипед нужно проанализировать и понять, хотя бы потому чтоб найти возможные ошибки в коде. CC>Гораздо эффективнее оказывается построить свой велосипед, с блэкджеком и hookers, на основе чужого и заточенный именно под свою задачу.
Да, это я и имел в виду.
Здравствуйте, CreatorCray, Вы писали:
E>>Не сочтите за придирку, но GPL очень сложно назвать "запрещенным к использованию". Поэтому термин "запрещен к использованию" следовало бы уточнить. CC>GPL это вирусная лицензия, заставляющая выпускать свой продукт тоже только под GPL. CC>Поэтому она закрывает легальное использование кода не в GPL проектах. Что есть сакс.
В последние годы я работаю над проектами двух типов -- первые предназначены для использования нашей компанией и распространять их исходники мы не хотим и заказные проекты, в которых исходники передаются заказчику. В первых, очевидно, GPL не применим. Во вторых -- для нас нет никаких препятствий в использовании GPL кода.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Kore Sar, Вы писали:
KS>Сорсфорж меня, как админа одного из проектов, попросил заполнить анкету. Анкета касалась повторного использования кода в оперсонрсных программах. В связи с чем у меня возникло подозрение, что мало людей использует чужой код. А ведь это золотая жила.
Ну да, действительно, тот, кто научится воспроизводимо делать золото из дерьма, сказочно разбогатеет
Здравствуйте, Kore Sar, Вы писали:
KS>Ваши мнения?
Возможность повторного использования имеет больше отношения не к программисту, а прежде всего к самому коду. Код, который легко повторно использовать используют на всю катушку. Но проблема в том, что такого кода не так много.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Kore Sar, Вы писали:
KS>Сорсфорж меня, как админа одного из проектов, попросил заполнить анкету. Анкета касалась повторного использования кода в оперсонрсных программах.
Небольшое уточнение. Это не собственно sourceforge, а
In this academic research project we are curious to learn about your view on the importance of code reuse in the development of open source software as well as the experiences you have made with code reuse.
This study is a joint research project by Joachim Henkel and Manuel Sojer, Munich University of Technology.
Ещё они обещали прислать сводные результаты анкетирования, так что если кому здесь интересно, то можно будет их опубликовать. Секретными они не являются.
Здравствуйте, eao197, Вы писали:
E>В последние годы я работаю над проектами двух типов -- первые предназначены для использования нашей компанией и распространять их исходники мы не хотим и заказные проекты, в которых исходники передаются заказчику. В первых, очевидно, GPL не применим. Во вторых -- для нас нет никаких препятствий в использовании GPL кода.
а не наоборот?
если используеш для себя(внутри компании) — то показывать исходники ненужно
если пишеш на заказ, то используя gpl библиотеки (например qt) — необходимо показать исходники не только заказчику, но и остальному миру
Здравствуйте, x905, Вы писали:
X>если пишеш на заказ, то используя gpl библиотеки (например qt) — необходимо показать исходники не только заказчику, но и остальному миру
Только если бинарники распространяются на этот остальной мир. Просто так прийти и попросить исходники GPL проекта нельзя.
Здравствуйте, x905, Вы писали:
E>>В последние годы я работаю над проектами двух типов -- первые предназначены для использования нашей компанией и распространять их исходники мы не хотим и заказные проекты, в которых исходники передаются заказчику. В первых, очевидно, GPL не применим. Во вторых -- для нас нет никаких препятствий в использовании GPL кода.
X>а не наоборот?
Нет.
X>если используеш для себя(внутри компании) — то показывать исходники ненужно
Насколько мне известно, сейчас FSF пытается наезжать на компании, которые используют GPL в своих внутренних продуктах, но код этих продуктов не открывают. Так что использование GPL-ных кусков во внутренних продуктах черевато.
X>если пишеш на заказ, то используя gpl библиотеки (например qt) — необходимо показать исходники не только заказчику, но и остальному миру
Это вряд ли. Мы передаем заказчику весь код, т.е. обеспечиваем ему все свободы, которые требует GPL. Т.е. соблюдаем лицензию. Дальше наступает ответственность заказчика. Имхо, если он не будет производить дальнейшей разработки, а только будет эксплуатировать продукт, то он ничего и никому показывать не должен.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
X>>если используеш для себя(внутри компании) — то показывать исходники ненужно E>Насколько мне известно, сейчас FSF пытается наезжать на компании, которые используют GPL в своих внутренних продуктах, но код этих продуктов не открывают. Так что использование GPL-ных кусков во внутренних продуктах черевато.
X>>если пишеш на заказ, то используя gpl библиотеки (например qt) — необходимо показать исходники не только заказчику, но и остальному миру E>Это вряд ли. Мы передаем заказчику весь код, т.е. обеспечиваем ему все свободы, которые требует GPL. Т.е. соблюдаем лицензию. Дальше наступает ответственность заказчика. Имхо, если он не будет производить дальнейшей разработки, а только будет эксплуатировать продукт, то он ничего и никому показывать не должен.
но тогда FSF будет наезжать на вашего заказчика — он же использует GPL в своих внутренних продуктах, но код этих продуктов не открывает
заказчик это понимает ?
мне всетаки кажется что для себя, в том числе и внутри компании можно использовать GPL код без показа исходников
если продавать софт (или софт в составе железяки) — то исходники открыть надо
если же писать комуто под заказ — и заказчик будет один использовать эту программу, то тут незнаю
пусть знающие товарищи поправят