Python не стандартизированный язык? - PullRequest
13 голосов
/ 08 октября 2009

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

Ответы [ 3 ]

35 голосов
/ 08 октября 2009

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

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

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

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

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

  • Perl
  • Python
  • PHP

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

5 голосов
/ 08 октября 2009

Есть «стандарты» и «стандарты».

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

Кроме того, существуют «Стандарты де-факто».

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

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

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

2 голосов
/ 08 октября 2009

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

См. Существует ли спецификация языка Python?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...