This document discusses programming languages and modeling. It notes that programming languages are not expressive, high-level, abstract, domain-specific, or modular enough. It proposes addressing this by using modeling with higher-level, domain-specific concepts and notations, and code generation from models. However, modeling and programming tools have traditionally been separate worlds. The document envisions a future where modeling and programming are integrated by mixing models and programs, and developing languages and tools that support programming at different levels of abstraction from different viewpoints. Enabling technologies could include advanced parser generators and projectional editing, while available tools mentioned include Eclipse Xtext and JetBrains' Meta Programming System for developing domain-specific languages.