Python не стандартизированный язык?

Я наткнулся на этот "список языков программирования" и обнаружил, что популярные языки, такие как Python, не стандартизированы? Почему это, и что означает "стандартизованный" в любом случае?

Ответ 1

"Стандартизированный" означает, что язык имеет официальный утвержденный стандарт, обычно написанный ISO, ANSI или ECMA. Многие современные языки с открытым исходным кодом, такие как Python, Perl и Ruby, формально не стандартизированы внешним телом, а вместо этого имеют стандарт де-факто: что бы ни делала оригинальная рабочая реализация.

Преимущества стандартизации языка: а) вы знаете, что язык не будет меняться на вас случайным образом, б) если вы хотите написать свой собственный компилятор/интерпретатор для языка, у вас есть очень четкий документ, который говорит вам, что все должно делать делать, а не тестировать это поведение самостоятельно в исходной реализации. Из-за этого стандартизированные языки меняются медленно и часто имеют несколько основных реализаций.

Язык не должен быть стандартизирован, чтобы быть полезным. Большинство нестандартных языков не будут просто вносить случайные обратно несовместимые изменения без какой-либо причины (и если они это сделают, им понадобится десять лет, чтобы решить, как * кашлять * Perl6 * кашель *), а нестандартные языки могут добавлять новые интересные экспериментальные функции намного быстрее (и более переносимо), чем стандартизированные языки.

Несколько стандартизированных языков:

Нестандартизированные языки:

  • Perl
  • питон
  • PHP
  • Objective-C

Полный список в Википедии.

Ответ 2

Существуют "стандарты" и существуют "стандарты".

Большинство людей в основном означает, что стандарт передается организацией, создающей стандарты: ISO, ECMA, EIA и т.д. Адвокаты называют эти стандарты De Jure. Там сила закона.

Кроме того, существуют "фактические стандарты".

Некоторые люди также испортили слово, добавив "Промышленный стандарт" или "Стандарт вендоры". Это просто бессмысленный маркетинговый шум.

A De Facto Standard - это то, что стандартизировано на практике (потому что каждый делает это и соглашается с тем, что он делает это таким образом), но он не подкреплен какой-либо организацией стандартов.

Python имеет стандарт де-факто, а не стандарт De Jure.

Ответ 3

Стандартизованный означает, что существует спецификация языка ( "стандарт" ). Java, например, имеет спецификацию. Perl 5 не (исходный код является "стандартным" ), но Perl 6 будет.

См. Есть ли спецификация языка Python?