Готовя к публикации очередную статью, продолжение темы"Бегущих огней", я понял, что упустил одну важную, и не самую простую тему. Во многих программах требуется реализация временных задержек, причем иногда таймер нельзя использовать...
Когда объём программы достигает сотен и тысяч строк кода, возникает проблема поддержки этого кода. Для программы вполне естественно быть одним большим файлом, но с точки зрения программиста страдают и структурированность кода, и навигация по нему. Так как программа обычно состоит из тематически сгруппированных функций, вроде работы с графикой или с базой данных, то логично вынести эти функции в отдельные файлы и разрабатывать их там, обособленно. Но эти отдельные файлы надо потом свести обратно в единую программу...