uzluga.ru
добавить свой файл
1



Компьютерные программы пишутся на разнообразных языках программирования, которые в настоящее время развиты настолько, что напоминают естественные. Программа на таком языке недоступна для "понимания" аппаратным обеспечением компьютера. Поэтому существуют специальные программы – трансляторы – осуществляющие перевод текста программы с языка программирования, на котором она была написана программистом, на язык вычислительной машины. Команды, которые понимает и пишет программист, называются исходным кодом; команды, которые выдает транслятор, и которые способен выполнить компьютер, называются исполняемым (машинным) кодом.

  • Компьютерные программы пишутся на разнообразных языках программирования, которые в настоящее время развиты настолько, что напоминают естественные. Программа на таком языке недоступна для "понимания" аппаратным обеспечением компьютера. Поэтому существуют специальные программы – трансляторы – осуществляющие перевод текста программы с языка программирования, на котором она была написана программистом, на язык вычислительной машины. Команды, которые понимает и пишет программист, называются исходным кодом; команды, которые выдает транслятор, и которые способен выполнить компьютер, называются исполняемым (машинным) кодом.

  • Программы могут распространяться в двух видах: в файлах с исходным кодом и в файлах с исполняемым кодом. Для конечного пользователя последний вариант может быть даже более удобен, т.к. ему не надо устанавливать на компьютер специальную программу-транслятор и переводить код из одного вида в другой. Однако для других программистов может быть интересен именно исходный код. Еще лет 30-40 назад, когда компьютерами пользовались почти исключительно профессионалы, обмен исходными кодами был преимущественным способом распространения программного обеспечения (ПО).



С началом широкого распространения компьютеров в 80-х годах, потребность в программном обеспечении резко возросла. Появилось множество поставщиков ПО, желающих иметь преимущества друг перед другом. Видимо исходя из таких рассуждений и была сформирована бизнес-модель, запрещающая распространять исходные коды программ. Продавались только исполняемые файлы. Программисты перестали делиться между собой исходными кодами (по собственному желанию или по приказу организации, где работали). Понятно, что закрытость кодов тормозит развитие ПО, и негативно отражается на всем обществе в целом; но для отдельной фирмы или человека закрытость кодов может обеспечить большую выгоду. Аморально это или нет, а также на сколько — каждый решит сам.

  • С началом широкого распространения компьютеров в 80-х годах, потребность в программном обеспечении резко возросла. Появилось множество поставщиков ПО, желающих иметь преимущества друг перед другом. Видимо исходя из таких рассуждений и была сформирована бизнес-модель, запрещающая распространять исходные коды программ. Продавались только исполняемые файлы. Программисты перестали делиться между собой исходными кодами (по собственному желанию или по приказу организации, где работали). Понятно, что закрытость кодов тормозит развитие ПО, и негативно отражается на всем обществе в целом; но для отдельной фирмы или человека закрытость кодов может обеспечить большую выгоду. Аморально это или нет, а также на сколько — каждый решит сам.

  • Конечно, фирмы, закрывающие коды своих программ, сделали и хорошее. Они в первую очередь активно изучали рынок. Чтобы продать больше, они следили за возникающими в обществе потребностями и быстро реагировали, делали программы удобными и простыми в использовании для непрофессионалов.



Компьютерная программа по сути является информацией со слабым материальным воплощением. Сравните. Чтобы скопировать реальный стол, нужно затратить столько же усилий, сколько на конструирование оригинала. Никто не будет, купив стол, копировать его для друга. Проще послать последнего в магазин. Производитель столов доволен.

  • Компьютерная программа по сути является информацией со слабым материальным воплощением. Сравните. Чтобы скопировать реальный стол, нужно затратить столько же усилий, сколько на конструирование оригинала. Никто не будет, купив стол, копировать его для друга. Проще послать последнего в магазин. Производитель столов доволен.

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

  • Часто в Web можно встретить такое сравнение: компьютерная программа — это знание. Передача знаний не может быть запрещена в обществе, т. к. является важным механизмом его существования. Насколько правильно сравнивать программу со знанием возможно покажет время. ПО зародились не так уж давно, и возможно мы сейчас переживаем всего лишь период его становления.



Естественно, когда ПО начало закрываться и запрещаться к распространению, появились несогласные. Самый выдающийся пример, это Ричард Столлман (лицензия GNU). Многие программисты не лицензировали свои произведения бумагами, запрещающими их распространение, и спокойно предоставляли исходные коды сообществу. Такие программы становились общественным достоянием. Каждый мог взять их и использовать на свое усмотрение: для улучшения, создания на их основе чего-то нового. Измененная улучшенная версия также могла стать общественным достоянием, а могла и не стать. Человек, взявший за основу чью-то программу, с открытым исходным кодом, внеся изменения, мог "закрыть ее от чтения и распространения" соответствующей лицензией. Это плохо. Оказалось, что открытости и свободе требуется защита не в меньшей степени, чем закрытости и ограниченности. Следовательно должны были появиться лицензии охраняющие программное обеспечение от превращения его в закрытое и несвободное.

  • Естественно, когда ПО начало закрываться и запрещаться к распространению, появились несогласные. Самый выдающийся пример, это Ричард Столлман (лицензия GNU). Многие программисты не лицензировали свои произведения бумагами, запрещающими их распространение, и спокойно предоставляли исходные коды сообществу. Такие программы становились общественным достоянием. Каждый мог взять их и использовать на свое усмотрение: для улучшения, создания на их основе чего-то нового. Измененная улучшенная версия также могла стать общественным достоянием, а могла и не стать. Человек, взявший за основу чью-то программу, с открытым исходным кодом, внеся изменения, мог "закрыть ее от чтения и распространения" соответствующей лицензией. Это плохо. Оказалось, что открытости и свободе требуется защита не в меньшей степени, чем закрытости и ограниченности. Следовательно должны были появиться лицензии охраняющие программное обеспечение от превращения его в закрытое и несвободное.



Copyleft — это тип лицензий, запрещающих ограничение свобод (прав). Причем, программа выпущенная под лицензией типа copyleft уже не может при изменении выпускаться под некопилефтными лицензиями. Copyleft заразно. Лицензии копилефт, также как и лицензии копирайт, используют понятие авторского права для защиты произведения. Однако защита производится с целью гарантии свобод, а не их ограничения.

  • Copyleft — это тип лицензий, запрещающих ограничение свобод (прав). Причем, программа выпущенная под лицензией типа copyleft уже не может при изменении выпускаться под некопилефтными лицензиями. Copyleft заразно. Лицензии копилефт, также как и лицензии копирайт, используют понятие авторского права для защиты произведения. Однако защита производится с целью гарантии свобод, а не их ограничения.

  • Самым известным примером копилефтной лицензии является GNU GPL (GNU General Public License — Универсальная общественная лицензия Гну). Эта лицензия была разработана в рамках GNU-проекта Р. Столлмана.

  • Разработчикам, выпускающим свои программы под GNU GPL гарантируется, что:

  • Авторство будет сохранено.

  • Каждый сможет копировать и использовать программу как угодно.

  • Программный код будет всегда открыт для изучения и изменения.

  • Измененные версии программы также будут лицензированы копилефтом.



Можно выделить целый ряд преимуществ программ, распространяемых с открытым исходным кодом. Например:

  • Можно выделить целый ряд преимуществ программ, распространяемых с открытым исходным кодом. Например:

  • В таких программах быстрее исправляются ошибки, т.к. код может просмотреть большее количество людей.

  • Безопасность. В закрытые программы всегда можно встроить "секретный" код, делающий что угодно на компьютере пользователя. Пользователь об этом может никогда и не узнать. С открытым ПО такие фокусы невозможны.

  • Открытые программы повышают профессиональный уровень программистов. Каждый может научиться чему-то у другого, посмотрев как написан код, решающий ту или иную задачу.

  • Если говорить о свободе копирования программного обеспечения, то следует выделить такое преимущество как социальная справедливость. Каждый человек может получить тем или иным способом современную функциональную программу.