This document discusses the motivation and goals behind the Ring programming language. Ring aims to better support natural language and declarative programming paradigms in a practical way. This allows programmers to more easily build domain-specific languages and applications with a natural language-like interface. The language is designed based on over 10 years of research into visual and natural programming. It can be used to potentially enable non-programmers to create powerful software in a more intuitive way. The Ring compiler and virtual machine were developed entirely using visual programming techniques for improved productivity and robustness.