Краткий ответ: интернет.
Более длинный ответ: Интернет предоставляет дешевый, быстрый, международный, общедоступный способ поиска. Технически Интернет существовал в 70-х годах, и только в 90-х годах он стал по-настоящему известным.
Группе людей, которые хотят собраться вместе и написать высококачественный бесплатный компилятор (или интерпретатор), сложно общаться через распечатанные списки программ или дискеты, отправленные обычной почтой. Людям, которые заинтересованы в подобных вещах, еще сложнее найти друг друга, используя общепринятые техники общения 70-х годов: конечно, вы можете публиковать такие вещи, как рекламные объявления, в газете, но если я размещу объявление в газете в Калифорнии где-то, и ты читаешь свою газету во Флориде, ты не знаешь о моем существовании.
Даже при плохой поисковой системе ввод «бесплатного компилятора» или «языка программирования», вероятно, приведет к результатам, которые могут привести к тому, что такие люди найдут друг друга. Возможность поиска имеет огромное значение - я обнаружил в Интернете множество интересных вещей, о которых я, вероятно, никогда бы не услышал без Интернета, и я сомневаюсь, что я необычен в этом отношении.
Поэтому, когда люди начали писать инструменты программирования в Интернете и распространять их бесплатно среди всех желающих, люди начали использовать их, и некоторые из них также помогли сделать их лучше. Языки программирования также интересны многим программистам, поэтому этот эффект будет сильнее для языков программирования, чем для некоторых других видов программного обеспечения.
Основная экономика: вы можете требовать более высокую цену за то, что люди хотят, если их труднее найти. После появления интернета языки программирования стало проще получать от кого-то, кроме компании, и бесплатно - это довольно низкая цена.