Способы создания программ без основного метода: событийно-ориентированное программирование, фреймворки и многое другое