Philosophical questions about programming