Некоторое время назад, будучи разработчиком опенсорсного софта с мировым именем, принял участи в опросе на тему «Важность повторного использования кода в opensource проектах» проводимого одним германским университетом (насколько я помню).
Один из ключевых вопросов касался используемой лицензии.

Подавляющее большинство опрошенных создает свои проекты с GPL/LGPL лицензиями. Проблема в том, что на западе предпочитают с кодом, распространяемым под такими лицензиями, по возможности не связываться, а выбирать решения с BSD/MIT лицензиями. Так шанс нарваться на копирастов от opensource’а минимален. Поэтому если хотите популярности – выбирайте BSD. А лучше лицензируйтесь сразу под несколькими лицензиями и предоставляйте конечному пользователю право выбирать, какая лицензия ему больше подходит. Кстати, в этом же опросе очень многие респонденты отметили сложности с лицензированием при повторном использовании.
Не менее важно на каких языках создаются эти проекты.

Вскрытие в очередной раз показало, что могучая тройка Java/C++/C рвёт всех своих конкурентов. В этом чарте, кстати, C++ обгоняет C, в то время как в рейтинге TIOBE проценты распределены практически с точностью до наоборот. Если есть свобода выбора, то народ предпочитает использовать более продвинутый, хотя и более сложный C++.
Ну и дальше пошли вопросы непосредственно по теме.

Оказалось, что программисты разделились на две крайности. На тех, кто использует сторонние компоненты по-минимуму, и тех, кто юзает их на всю катушку. Ситуация с использованием компонент не такая уж и плохая на мой взгляд.

Однако, не смотря на это, количество строчек кода утащенных из различных источников в 70% случаев не превышает 10% кода всего проекта.

Ну тут вообще всё грустно. 39% ничего не делают, чтобы их код было проще реюзать. Оно в общем-то не удивительно – никому не захочется тратить лишние ресурсы на действия, польза от которых в краткосрочной перспективе достаточно призрачна.