Formal verification shows us that every application should begin with the design and implementation of an application specific language. That is, by existence as a language the formal verification of an application is the route to bug free applications.
The application interface may be as simple as possible, and user productivity maximized. The concept tends to be obscured by economic and practical elements of development engineering, such as a need to develop the definition of the problem domain.
At their best, the Object Oriented Programming Languages propose the creation of sublanguages on behalf of their users. This practice permits experimental development while partially (significantly) following the ideal path of the translation of the computer instruction and programming languages into crisp and clean solution ranges.