An animal eye is only as efficient as the organism’s behavioral constraints demand it to be. Efficient coding has been a successful organizational principle in vision, and to make a more general theory, behavioral, mechanistic, and even evolutionary constraints need to be added to this framework. In our work, we use a mix of known computational challenges and detailed behavioral measurements to add constraints to the notion of optimality in vision. Accurate visual prediction is one such constraint. Prediction is essential for interacting fluidly and accurately with our environment because of the delays inherent to all brain circuits. In order to interact appropriately with a changing environment, the brain must respond not only to the current state of sensory inputs but must also make rapid predictions of the future. In our work, we explore how our visual system makes these predictions, starting as early as the eye. We borrow techniques from statistical physics and information processing to assess how we get terrific, predictive vision from these imperfect (lagged and noisy) component parts. To test whether the visual system performs optimal predictive compression and computation, we compute the past and future stimulus information in populations of retinal ganglion cells, and in the vertical motion sensing system of the fly. In the fly, we anchor our calculations with careful measurements from the Dickinson group on fast evasive flight maneuvers. This survival-critical behavior requires fast and accurate control of flight, which we show can be achieved by visual prediction in the fly vertical sensing system, via a specific wiring motif. Moving on from behavior, developing a general theory of the evolution of computation is a current research direction in our group. We use the repeated evolution of tetra-chromatic color vision in butterflies to test hypotheses about whether neural computations contain shadows of the evolutionary history of the organism.