Although more and more computing is performed away from desktop computers, most programs used in handheld computers, ubiquitous computers, and augmented-reality systems in the real world are still developed on desktop computers, and users of these systems cannot modify the behavior of the systems or make a new program for the systems without using desktop computers. Programs used in real-world environments should also be programmed in the real world, so we have developed a new programming paradigm, "Real-World Programming (RWP)," which enables users to make programs for handling real-world environments as well as data in computers. By combining simple hardware and software, users can specify actions and conditions and create programs in the real world without using desktop computers. In this paper we describe the features required for RWP, programming techniques for RWP, useful devices for RWP, and examples of RWP.