The Future of Programming: Copilots vs. Agents (Part I)