Особенность программного обеспечения состоит в том, что оно производится в одной форме — в виде исходного текста (source code), а распространяется и используется в другой — в виде двоичной программы, машинных кодов, по которым невозможно однозначно восстановить исходный текст. Чтобы изменять программу, исправлять ошибки или даже просто точно установить, что и как делает программа, необходимо располагать её исходным текстом. Первоначально создание программного обеспечения для компьютеров было в первую очередь академическим занятием. Для специалистов в области компьютерной науки (computer science) каждая программа представляла собой результат научного исследования, в некотором смысле аналогичный публикации статьи.
Программа — представленная в объективной форме совокупность данных и команд, предназначенных для функционирования ЭВМ и других компьютерных устройств с целью получения определённого результата, включая подготовительные материалы, полученные в ходе разработки программы для ЭВМ, и порождаемые ею аудиовизуальные отображения. Бесплатно распространяемое, но защищенное авторским правом программное обеспечение и Вы не можете сделать с ним того, что не разрешил автор, обычно не разрешается коммерческое распространение или использование коммерческими организациями ...
Написание компьютерных программ — не так уж давно возникшая форма интеллектуальной деятельности. В написании программы действительно много общего с написанием какого-нибудь литературного или другого нетривиального текста, поэтому совершенно естественно, что с точки зрения правовых отношений программы попали в один класс с такими текстами — «произведений». Эти правовые отношения регулируются законодательством об авторском праве и на сегодняшний день тесно ассоциируются с широко распространённой системой экономического использования этих прав: торговля экземплярами произведения и запрет на тиражирование произведения (создание новых экземпляров) для всех, кроме обладателя прав.
Когда разработка одного экземпляра вычислительной машины длилась годами, а сам этот экземпляр выглядел как магазин продажи холодильников, программы для этой машины числились наряду с мелкими и средними деталями для неё. Скажем, для записи данных на перфоленту прежде всего необходим перфоратор, затем — процессор, который будет этим перфоратором управлять, а уж затем — всякие там провода, программы для записи данных и прочая необходимая мелочь. Красноречиво этот факт подтверждает термин «операционная система», точнее, его исходное английское написание — «operating system». Дескать, есть некоторая «система» (system) — это высокоорганизованный набор электронных деталей.