All known life forms process information on a molecular level. This kind of chemical information processing is known to be robust, self-organizing, adaptive, decentralized, asynchronous, fault-tolerant, and evolvable. This paper discusses several aspects of how the metaphor of chemistry can be employed to build technical information processing systems. In these systems, computation emerges out of an orchestrated interplay of many decentralized relatively simple components called molecules. Chemical programming encompassed then the definition of molecules, reaction rules, and the topology and dynamics of the reaction vessel. Through the nature of emergence, chemical computation is difficult to predict from the underlying microscopic interaction rules. Therfore, one central challenge, namely, how to program emergent chemical processes, is discussed in more detail.