A brief historical survey of how programming languages have evolved over the decades. We revisit several milestones along the way, reminding ourselves of a few of the missed opportunities. We examine the broad families into which programming languages fall -- an informal phylogenetic tree. We try to recognize the convergence of features among several mainstream languages. Finally, we discuss the current state of affairs in the world of programming languages.