In this paper we discuss issues of design for software systems for industrial robots. We begin with a short review of the features which came out to be important in such systems. We examine in particular how various desirable system capabilities, as the cooperation between manipulation and vision, can be introduced at a reasonable level. In fact the recent development of industrial robots has produced quite powerful and cost-effective manipulators. Not the same is generally true for the software available for them. Some crucial operations, as managing parts with random orientation or realigning pieces, are still done using expensive mechanical devices. The problem could be solved with the aid of vision systems connected with the manipulator. The solutions we may adopt to integrate manipulation and vision can be various. If we want to make it easy to program the system as a whole, with the same programming language, we should study solutions in which manipulation and vision use high level languages. To this end we will discuss how the choice of the programming language is crucial.