People use a wide range of communicative acts, from concrete demonstrations to abstract language. What are the strengths and weaknesses of such different modalities? We present a series of real-time, multi-player experiments asking participants to teach (Boolean) concepts using either demonstrations or language. Our first experiment (N = 454) manipulated the complexity of the concept, finding that linguistic (but not demonstrative) teaching enables high-fidelity transmission of more complex concepts. Why, then, do humans use both demonstrations and language? As a form of conventionalized communication, language relies on shared context between speaker and listener, whereas demonstrations are inherently grounded in the world. We hypothesized linguistic communication would be more sensitive to perturbations of shared context than demonstrations. Our second experiment (N = 568) manipulated teachers’ ability to see the features that defined the concept. This restriction severely impaired linguistic (but not demonstrative) teaching. Our comparative approach confirms language relies on shared context to permit high bandwidth communication; in contrast, demonstrations are lower-bandwidth but more robust.