It has been noticed since a long time that a well practiced programmer hardly ever writes anything completely new; he mostly develops and improves what has already been written and debugged. Contrarily to this observation, the bulk of software tools available nowadays are aimed at composing a program once and for all. The tools for program evolution are so deficient and inadequate that the news about the necessity to modify a complex program seems to the software developer to be as unpleasant as a coming visit to the dentist. The situation can be improved by means of special constructs, which clear the way to the softness of program evolution. The softness of evolution means that the addition of a new module to a program should not call for the editing of the existing modules.