Some ProgrammingLanguage''''''s, as LogoLanguage, SchemeLanguage, PascalLanguage, PrologLanguage, SmalltalkLanguage, PythonLanguage, OberonLanguage and JavaLanguage, seem to be great to teach programming concepts (in the view of different schools of thought). Others, like CeePlusPlus, are too convoluted, while a third group, lead by BasicLanguage, actually should never be used to teach because they allow or even encourage BadProgrammingPractices (although modern versions of BASIC prove otherwise ;) Most languages for teaching define a standard environment such that the teacher can forget about the operating system being used and focus on the OperatingSystem defined by the language. ---- See also FirstLanguageLearned, LearningProgrammingLanguages