Programma's, ook wel applicatie's of kortweg APP's genoemd, worden geschreven in een "programmeertaal" en daarna vertaald door een "compiler" of "assembler" in machinecodes. Ook het besturingssysteem en alle hulpfuncties zoals filesystemen, netwerksoftware, apparatuurbesturing enzovoort, zijn in programmeertalen ontwikkeld maar alleen als machinecode aanwezig.
De machine-codes zijn zelfs door geoefende ontwerpers nauwelijks te hanteren en daarom is men allereerst begonnen voor zichzelf hulpmiddelen te maken om efficiƫnt te kunnen "programmeren". Tot de oudste programma's behoren daarom de "assemblers", programma's om de namen van de machine-instructies en de bijbehorende parameters vanaf een tekst-bestand in codes te laten omzetten. Hoewel een assembler een hele stap voorwaarts was, bleef de productiviteit van een programmeur vrij laag. Daarom ontstonden er "hogere programmeertalen" die de programmeur efficiƫnter maken (maar het programma vaak niet).
De eerste "hogere talen" waren oorspronkelijk zeer gespecialiseerd: "Fortran" [1957] voor technische rekentoepassingen, "Cobol" [1960] voor administratieve toepassingen en "Algol" [1960] voor wetenschappelijke rekentoepassingen. Voor opleidingsdoeleinden kwamen er ook speciale talen bij: "Basic" [1963] voor het middelbaar onderwijs en "Pascal" [1970] voor het hoger onderwijs. Alle talen lenen van elkaar constructies en datatypen, maar gebruiken (vaak om goede redenen) een verschillende "syntax". Latere versies van alle talen staan steeds meer geavanceerde constructies en datatypen toe en lijken oppervlakkig dus ook steeds meer op elkaar, maar opletten is geboden! Een speciale positie heeft de taal "C" [1973]. Deze technische taal ligt dichter tegen de machine aan dan de andere talen. De programmeertaal "Java" [1995] wordt gecompileerd naar een pseudo code die door een "Java virtuele machine" op willekeurige computers kan worden uitgevoerd. Apple heeft voor het programmeren van haar apparatuur een nieuwe technische taal "Swift" [2014] ontwikkeld volgens de laatste opvattingen.
Ontwikkelaars gebruiken doorgaans speciale "IDE-systemen" (Integrated Development Environment) om APP's te ontwikkelen.