А все это уже создается, таким действием, имененуемым программирование.
Про него то здесь в кратце и пробежимся.

     Программирование — это, дословно,  процесс создания компьютерных программ.

  В узком понятии под программированием, понимается написание инструкций, или программ, на определенном языке программирования, зачастую по заранее определенному и заложенному алгоритму, по плану или другими словами, посредством метода решения поставленной задачи. Ну и соответственно, те кто этим всем делом значит занимается, вполне оправданно зовутся и по праву именуются программистами, на жаргоне самих специалистов  — кодерами, и соответственно те кто разрабатывают сами алгоритмы, как не сложно догадаться, алгоритмистами.
  В широком понимании термина, под программированием, принимают полный  спектр манипуляций, имеющих связь не только  с созданием, но и поддержанием рабочего состояния программы. Другими словами «программная инженерия», или «инженерия ПО». Здесь все, и анализ, и постановка конкретной задачи, и проектирование, и построение от и до алгоритмов ПО, и разработка структур данных, и написание всех текстов программ, и отладка, а еще тестирование вместе с документированием, а так же, настройка  или иначе конфигурирование, плюс, доработка и сопровождение.
  Программирование для электронное вычислительных машин, основано на использовании, различных языков программирования, на этих языках программы и записывается. 
На сегодняшний день, очень активно используются интегрированные, то есть как бы встроенные, среды разработки. Имеющие в себе, плюс к базе, редактор для ввода, а так же редактирования текста программы, отладчики, используемый для поиска и соответственно устранения ошибок, трансляторы для тех или других языков программирования, ну и  компоновщики для сборки из  модулей, и иногда кое-что еще.
 Классические текстовые редакторы, могут располагать такой, специфичной функциональностью, к примеру, индексация имен, или, отображение документации, или инструменты для визуального создания пользовательского интерфейса. Посредством текстового редактора, можно производить набор, редактирования текста, программы, создаваемой в конкретный момент, и код который называют исходным кодом. Компилятор занимается, преобразованием текста в машинный код, которые уже и исполняются силами электронных компонентов компьютера. Интерпретатор же в свою очередь, создаёт виртуальную машину, выполняющую программы, машина эта полностью, либо частично выполняет функции и обязанности, исполняющие программой.

  Кстати, первую программируемую вычислительную и аналитическую машину, разработал Чарлз Бэббидж, но создать её так и не смог.
 
    Вот так порой идея может опережать время,