I'm something of a programming language junkie, and examples abound...
- Lisp was originally created as a practical mathematical notation for computer programs
- Simula was designed for doing simulations, and gave us objects and classes
- C was designed for implementing system software (specifically, the Unix operating system)
- Erlang was designed with the aim of improving the development of telephony applications at Ericsson.
Languages like Perl and Ruby also, but these four gave birth to fundamental styles of computer programming, as opposed to "just" implementing an existing methodology or style of solving specific software engineering problems.
Is every new programming paradigm primarily driven by a need to solve a practical problem? Does every new programming language come about from a programmer scratching an itch?
As I plan to dedicate my life to research in new programming languages for AI, I'm wondering whether I should pursue the theory of programming intelligence directly, or attempt to solve practical problems in AI and then "discover" the paradigms to solve them.