Krótka odpowiedź: internet.
Dłuższa odpowiedź: Internet zapewnia tanią, szybką, międzynarodową, dobrze znaną metodę komunikacji. Internet technicznie istniał w latach 70., dopiero w latach 90. stał się naprawdę znany.
Grupie ludzi, którzy chcą się spotkać i napisać wysokiej jakości, darmowy kompilator (lub tłumacz), trudno jest komunikować się za pośrednictwem drukowanych list programów lub dyskietek wysyłanych pocztą ślimakową. Osób, które są zainteresowane robieniem takich rzeczy, jest też trudniej znaleźć się za pomocą typowych technik komunikacyjnych lat 70-tych: jasne, możesz opublikować w gazecie takie reklamy, jak chcę, ale jeśli umieszczę reklamę w gazecie w Kalifornii gdzieś i czytając gazetę na Florydzie, nie zdajesz sobie sprawy z mojego istnienia.
Nawet przy złej wyszukiwarce wpisanie „darmowego kompilatora” lub „języka programowania” może przynieść wyniki, które mogą doprowadzić do tego, że ludzie się znajdą. Możliwość wyszukiwania ma ogromną różnicę - w Internecie znalazłem wiele interesujących rzeczy, o których prawdopodobnie nigdy bym nie słyszał bez Internetu i wątpię, że jestem w tym niezwykły.
Kiedy więc ludzie zaczęli pisać narzędzia programistyczne online i dystrybuować je za darmo dla wszystkich chętnych, ludzie zaczęli ich używać, a niektóre z nich również pomogły je ulepszyć. Języki programowania są również czymś, co wielu programistów uważa za interesujące, więc efekt ten byłby silniejszy w przypadku języków programowania niż w przypadku innych rodzajów oprogramowania.
Podstawowa ekonomia: możesz żądać wyższej ceny za coś, czego ludzie chcą, jeśli trudniej jest znaleźć. Po uruchomieniu Internetu języki programowania były łatwiejsze do uzyskania od kogoś innego niż firma, a darmowy to dość niska cena.