Програмата е инструментът. Приложението е дръжката му. А софтуерът е цялата кутия с инструменти.
Телефонът ти сам по себе си е празна кутия с инструменти. Нищо не прави, докато не сложиш инструменти в него. Instagram е инструмент - показва снимки. Калкулаторът е инструмент - смята. Всеки инструмент вътре е написан от някого, за да върши точно една задача вместо теб.
Тази задача, скрита в инструмента, се нарича програма. Тя е поредица от команди, написани предварително, които машината следва всеки път по един и същ начин. Натиснеш ли бутона за смятане на калкулатора, той не мисли - просто изпълнява програмата, заложена в него отдавна.
Приложението е програмата, облечена в екран, който гледаш, и бутони, които пипаш. Тази дреха я прави удобна за теб. Отдолу пак е същата програма - код, който върши работа.
Софтуерът е чадърът над всичко изброено. Каже ли някой "инсталирай софтуер" или "актуализирай приложението", говори за едно и също нещо - слагаш нов инструмент в кутията или подобряваш стар, за да върши работата си по-добре.
Тук се спъвам
Като дизайнер разликата за мен винаги е била следната - програмата е самият инструмент, приложението е дръжката, която пасва в ръката ти. Когато правя интерфейс, аз оправям дръжката: правя я удобна, ясна, красива. Кодът отдолу върши работата, но ти никога не го виждаш, ако съм си свършил моята както трябва.
Затова като чуеш "актуализирай софтуера", не се плаши. Просто сменят инструмент в кутията с по-нов, или пипат дръжката, за да ти е по-удобно.