I find that object-oriented programming is ideal for developing artificial intelligence (and many other things, but I'll focus on AI). With this approach one can create objects which represent clusters of information. These clusters could contain information about their relationships to other clusters of information. For example:

A cluster of information representing the concept of a DOG would contain information about its relationship to the concepts of ANIMAL, PITBULL, CAT, FRIENDSHIP, etc. A dog is a type of animal, a pitbull is a type of dog, dogs often chase cats, and dogs are sometimes referred to as "man's best friend".


If the AI system was able to add relationships to the clusters of knowledge then it would be possible to teach it at run-time. Furthermore, partitioning the application using libraries would allow the developer(s) to keep the knowledge objects separate from those used in the parsing system and the GUI.

This is just theory and I haven't tried to implement a system but it is my hope that I'll be able to someday using the object-oriented approach. To create artificial intelligence with a sequential programming language excessive usage of data files or modules or both would be needed.