title: Categorizing Programming Languages
body: <p>I've worked among others with Java, Prolog, SQL and C# languages so far. I know that Java and C# are imperative, Prolog declarative and SQL somewhat declarative languages. Java and C# are object-oriented and you can develop aspect-oriented programs with them.</p>
  
  <p>That's already four different characteristics that certain languages might fit in or implement: imperative, declarative, object-oriented, aspect-oriented and I've come across various other categories: functional languages, assembly languages and probably lots more I haven't heard.</p>
  
  <p>Is there some kind of <em>agreed</em> and/or <em>logical</em> categorization or multi-dimensional categorization among which programming languages can be classified in a somewhat consistent way?</p>