Итак, попытаюсь внести ясность по программному обеспечению.
Во первых, для того, чтобы сделать нормальное прогаммное обеспечение , нам нужны -
1. Сервер, который в любом случае имеет или непосредственное физическое воплощение, либо в любом случае для нужно оборудование для доступа к нему, если сервер облачный
2. Во вторых, оборудование на котором ты будешь писать программу
3. В третьих, в случае необходимости, дополнительный "аппарат" для тестировки
Это технический аспект.
Во вторых, программа по ходу выполнения своих непосредственных функций, влияет на функционал физического носителя. Сама по себе программа, без физического носителя не функциональна. Так же как и физический носитель, без программного обеспечения - предмет разной степени продолговатости.
Поэтому, относить программированние к "миру идей" может скажем так.... человек, не очень сведующий в технических аспектах проблемы.
Далее, по поводу товарности программы. Для большей ясности понимания, программу можно сравнить с "живым чертежом", который не просто дает определенную схему, но при этом и помогает по этому чертежу осуществлять определенные действия.
И тут наступает самое интересное - пока этот чертеж находится в единственном экземпляре. И в тот момент, когда его программист делает или сделал - это товар, когда программу за деньги скачивают с аппстора - тоже товар, когда идёт скрытая или неявная монетизация - это тоже товар.
А когда раздается с рутрекера - нет. Или, более понятный пример. Когда на стройке распечатали 50 копий чертежа и раздали - эти 50 копий не товар.
Далее. Не стоит забывать о том, что для того, чтобы программа пользовалась спросом программист постоянно пилит новые обновления для неё.
Поэтому, программа - продукт нового типа, который одной ногой стоит в товарном производстве, а другой создает предпосылки для развития экономики не товарного типа