In computer science, after basic hardware, language comes first, before operating systems, applications, or anything else. One needs a language first, even if only machine language, before one can write any software at all. There is a vast variety of programming languages, estimates run from 2,000 to 6,000. The situation is often likened to the many schisms of some religions, and sometimes disagreements and even fights occur among the faithful. Yet, all languages must adhere to the central unifying principles of computer science (even Intercal and Befunge), otherwise they couldn't work. On this page, languages are arranged in three groups and levels: 1) Top: issues spanning multiple unrelated languages. 2) Middle: types or classes of languages. 3) Bottom: specific languages, with their own directory category.