We compare several languages for specifying Markovian population models such as queuing networks and chemical reaction networks. These languages -matrix descriptions, stochastic Petri nets, stoichiometric equations, stochastic process algebras, and guarded command models- all describe continuous-time Markov chains, but they differ according to important properties, such as compositionality, expressiveness; and succinctness, executability, ease of use, and the support they provide for checking the well-formedness of a model and for analyzing a model.