With Asymptote you specify diagrams directly in terms of low-level graphics primitives and constraints. With Penrose you specify the underlying math, then one or more separate style files are used to automatically generate diagrams based on the math. The typical user of Penrose doesn't have to know anything about graphics, and never specifies any graphical objects; instead, that knowledge is in reusable style files written by domain experts.