Risposta breve: Internet.
Risposta più lunga: Internet offre un metodo di comunicazione economico, veloce, internazionale, ricercabile e ben noto. Internet esisteva tecnicamente negli anni '70, non è stato fino agli anni '90 che è diventato molto conosciuto.
È difficile per un gruppo di persone che vogliono riunirsi e scrivere un compilatore (o interprete) di alta qualità gratuito per comunicare tramite elenchi di programmi stampati o floppy inviati tramite posta ordinaria. È anche più difficile per le persone che sono interessate a fare cose del genere per trovare l'un l'altro usando le comuni tecniche di comunicazione degli anni '70: certo, puoi postare cose come vuoi nella carta, ma se metto un annuncio sul giornale in California da qualche parte, e tu leggi il tuo giornale in Florida, tu rimani inconsapevole della mia esistenza.
Anche con un cattivo motore di ricerca, è probabile che digitando "compilatore libero" o "linguaggio di programmazione" si ottengano risultati che potrebbero indurre persone del genere a trovarsi l'un l'altro. La ricercabilità fa una grande differenza - ho trovato un numero di cose interessanti online che probabilmente non avrei mai nemmeno sentito parlare senza Internet, e dubito che io sia insolito in quel modo.
Quindi, quando le persone iniziarono a scrivere strumenti di programmazione online e a distribuirli gratuitamente a tutti gli altri, la gente iniziò a usarli e alcuni di essi contribuirono a migliorarli. I linguaggi di programmazione sono anche qualcosa che molti programmatori trovano interessanti, quindi questo effetto sarebbe più strong per i linguaggi di programmazione rispetto ad altri tipi di software.
Economia di base: puoi chiedere un prezzo più alto per qualcosa che le persone vogliono se è più difficile da trovare. Dopo che Internet è decollato, i linguaggi di programmazione sono stati più facili da ottenere da una persona diversa da una società, e la libertà è un prezzo piuttosto basso.