Python not a standardized language?

"Standardized" means that the language has a formal, approved standard, generally written by ISO or ANSI or ECMA. Many modern open-source languages, like Python, Perl, are not formally standardized by an external body, and instead have a de-facto standard: whatever the original working implementation does.

The benefits of standardizing a language are a) you know the language won't randomly change on you, b) if you want to write your own compiler/interpreter for the language, you have a very clear document that tells you what behavior everything should do, rather than having to test that behavior yourself in the original implementation. Because of this, standardized languages change slowly, and often have multiple major implementations.

A language doesn't really have to be standardized to be useful. Most nonstandard languages won't just make random backwards-incompatable changes for no reason (and if they do, they take ten years to decide how to *cough*Perl6*cough*), and nonstandard languages can add cool new experimental features much faster (and more portably) than standardized languages.

A few standardized languages:

  • C (ISO/IEC)
  • C++ (ISO/IEC)
  • Common Lisp (ISO/IEC)
  • Scheme (IEEE)
  • JavaScript (ECMA-262)
  • C# (ECMA-334)
  • Ruby (ISO/IEC)

Non-standardized languages:

  • Perl
  • Python
  • PHP
  • Objective-C

A full list is on Wikipedia.


There are "standards" and there are "standards".

Most folks mostly mean that a standard is passed by a standards-writing organization: ISO, ECMA, EIA, etc. Lawyers call these De Jure Standards. There's the force of law.

Further, there are "De Facto Standards".

Some folks, also, corrupt the word by adding "Industry Standard", or "vendorname Standard". This is just meaningless marketing noise.

A De Facto Standard is something that's standardized in practice (because everyone does it and agrees they're doing it that way) but it is not backed by some standards organization.

Python has a De Facto Standard, not a De Jure Standard.


Standardized means there exists a specification for the language (a "standard"). Java, for example, has a specification. Perl 5 does not (the source code is the "standard") but Perl 6 will.

See Is there a Python language specification?