Библиотека сайта rus-linux.net
Три шага до ненависти к свободному ПО
Оригинал: How to hate free software in 3 easy stepsАвтор:Steven Goodwin
дата: 25 января 2007
Свободный перевод: Алексей Дмитриев
Дата перевода: 8 апреля 2008
Вот эти шаги:
- Загрузите некое программное обеспечение, не пакетированное специально для вашего дистрибутива, и попытайтесь установить его.
- Ошибка?!
- Вот оно!
Разработка программного обеспечения - трудное дело. С этим согласится каждый, кто написал более 20 строк кода на языке Perl. Так почему не удается одним и тем же, безусловно умным программистам производить тарбаллы, zip-файлы, архивы и сам код, которые будут действительно компилироваться? На любой системе. Всегда.
Начиная разработку программы вы начинаете с чистой формы, старых библиотек и нового кода. Новый код должен компилироваться везде, ведь кроссплатформенная разработка - дело хорошо изученное, и все мы в большинстве случаев используем gcc. Значит где-то есть слабое звено. Библиотеки у вас точно адекватные? Просто проверьте, какие вы использовали, их версии, URL загрузки и все должно быть просто. Гром и молния - существуют же инструменты, вроде automake suite (набора программ для разработки), которые обеспечивают всю необходимую функциональность, причем бесплатные. Так почему же люди не пользуются ими?
Итак, после попыток скомпилировать [вставите в эти квадратные скобки наименование пакета, который вызвал у вас затруднения], я плюнул и взял другой пакет. В конце концов, свободный софт имеет так много различных реализаций [вставьте сюда название класса продуктов, к которому относится ваш пакет], что, как правило, альтернатива находится. Я попробовал и это. С тем же результатом, хотя с другими проблемами. Так и есть, пакет не будет компилироваться без долгих часов, потраченных на ненужную работу. Может попробовать еще один пакет?
Так может быть причиной того, что существует много различных пакетов для решения одной и той же задачи и состоит в том, что автор не сумел скомпилировать ни один из подобных кодов!
В конце дня (а возня со множеством пакетов занимает как минимум день) я остался, имея 20 полу-достроенных проектов, так и не решенную проблему, и 16 часов, потерянных из моей жизни. Вы считаете, что это не слишком много для компиляции кода? Вероятно я стал столь нетерпелив, в свои преклонные годы, что мне не хочется затевать ничего, что занимало бы более двух часов.
Двоичные файлы, хотя и повинны в грехах необщедоступности, нередактируемости и несвободы, в основном ведут себя намного проще. Особенно под несвободной операционной системой, вроде Windows. Ирония? Глупость? Или хороший дизайн?
Так ли важно, что я не могу изменить двоичный код? Не всегда! Может быть я хочу просто оценить программу, либо могу написать плагин. А большинство больших программных пакетов обеспечивают поддержку плагинов, поскольку где-то с 2004 года слово "расширение" стало модным.
Языки программирования часто поставляются с собственными встроенными инструментами управления пакетами, для загрузки и инсталляции своих библиотек. Хорошим примером может служить модуль CPAN для языка Perl. Конечно, он ошибается и путается иногда, но пожалуй реже, чем код Си аналогичной сложности. Будущее, возможно за скриптовыми языками и байтовым кодом Java , так как они имеют систему пакетирования своего исходного кода.
До тех пор, пока вся ОС, все ассоциированные библиотеки, все инструменты, не будут строиться из исходных кодов, маловероятно, что пользовательские приложения могут эффективно распространяться в виде исходного кода. Gentoo был совершенно прав, в конце концов!
Увы, Gentoo далеко не так дружелюбен пользователю как, скажем, Ubuntu.
Увы, Ubuntu далеко не так дружелюбен к процессу компиляции, как, скажем, Gentoo.
Так что пока не будет разработан общий формат пакетирования, и каждый дистрибутив и разработчик не начнет применять его (я имею в виду именно - каждый), нам никогда не выиграть этой битвы. Только вот вопрос - стоит ли ее выигрывать?