Risposta breve: Internet.
Risposta più lunga: Internet offre un metodo di comunicazione economico, rapido, internazionale, ricercabile e ben noto. Internet esisteva tecnicamente negli anni '70, solo negli anni '90 divenne molto noto.
È difficile per un gruppo di persone che vogliono stare insieme e scrivere un compilatore (o un interprete) gratuito e di alta qualità 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 trovarsi l'un l'altro usando le comuni tecniche di comunicazione degli anni '70: certo, puoi pubblicare cose come vuoi annunci sul giornale, ma se inserisco un annuncio sul giornale in California da qualche parte, e leggi il tuo articolo in Florida, rimani inconsapevole della mia esistenza.
Anche con un cattivo motore di ricerca, digitando "compilatore gratuito" o "linguaggio di programmazione" è probabile che si ottengano risultati che potrebbero indurre le persone a trovarsi a vicenda. La ricerca fa una grande differenza: ho trovato una serie di cose interessanti online di cui probabilmente non avrei mai sentito parlare senza Internet, e dubito di essere insolito in questo modo.
Quindi, quando le persone hanno iniziato a scrivere strumenti di programmazione online e a distribuirli gratuitamente a tutti i visitatori, le persone hanno iniziato a usarli e alcuni di loro hanno anche contribuito a migliorarli. I linguaggi di programmazione sono anche qualcosa che molti programmatori trovano interessanti, quindi questo effetto sarebbe più forte per i linguaggi di programmazione che per altri tipi di software.
Economia di base: puoi chiedere un prezzo più alto per qualcosa che la gente desidera se è più difficile da trovare. Dopo che Internet è decollato, i linguaggi di programmazione sono stati più facili da ottenere da qualcuno diverso da un'azienda, e gratuitamente è un prezzo piuttosto basso.