Professional programmers use desktop or laptop computers as a preference. However, they sometimes need to continue their work on the go, when they may only have access to mobile devices. Thus, mobile devices can be important but not exclusive development platforms. Therefore, it is necessary to support programming in conventional languages on mobile devices, such as phones and tablets. Programming on mobile devices presents two major obstacles: the lack of a physical keyboard, and the small screen space, which limits the amount of code that can be shown simultaneously. This paper addresses both challenges, and offers a method to enable programming on mobile and other devices with limited input and output capabilities, by using templates to make voice and touch input very effective for programming, and showing much more code in a limited space. These ideas are also relevant to programming on laptop and desktop systems, for people with disabilities such as repetitive-stress injuries (RSI) that limit keyboard usage, and partial vision loss, which requires the use of very large fonts.