Python не является стандартизированным языком?
-
20-09-2019 - |
Вопрос
Я наткнулся на этот "список языков программирования" и обнаружил, что популярные языки, такие как Python, не стандартизированы?Почему это так, и что вообще означает "Стандартизированный"?
Решение
"Стандартизированный" означает, что язык имеет официальный, утвержденный стандарт, обычно написанный ISO, ANSI или ECMA.Многие современные языки с открытым исходным кодом, такие как Python, Perl и Ruby, формально не стандартизированы внешним органом, а вместо этого имеют де-факто стандартный:что бы ни делала исходная рабочая реализация.
Преимущества стандартизации языка заключаются в том, что а) вы знаете, что язык не будет случайным образом меняться в зависимости от вас, б) если вы хотите написать свой собственный компилятор / интерпретатор для языка, у вас есть очень четкий документ, который сообщает вам, какое поведение все должно выполнять, вместо того, чтобы самостоятельно тестировать это поведение в исходной реализации.Из-за этого стандартизированные языки меняются медленно и часто имеют несколько основных реализаций.
На самом деле язык не обязательно должен быть стандартизирован, чтобы быть полезным.Большинство нестандартных языков не будут просто так вносить случайные изменения, несовместимые с предыдущими, без причины (и если они это сделают, им потребуется десять лет, чтобы решить, как * кашлять * Perl6 * кашлять *), и нестандартные языки могут добавлять интересные новые экспериментальные функции намного быстрее (и более переносимо), чем стандартизированные языки.
Несколько стандартизированных языков:
- C (ISO/IEC)
- C++ (ISO/IEC)
- Общий лисп (ISO/IEC)
- Схема (IEEE)
- JavaScript (ECMA-262)
- C# (ECMA-334)
- Рубин (ISO/IEC)
Нестандартизированные языки:
- Perl - язык программирования
- Питон
- PHP
- Цель-C
Полный список находится на Википедия.
Другие советы
Есть "стандарты" и есть "эталоны".
Большинство людей в основном имеют в виду, что стандарт принят организацией, пишущей стандарты:ISO, ECMA, EIA и т.д.Юристы называют это стандартами Де-Юре.Есть сила закона.
Кроме того, существуют "Стандарты де-факто".
Некоторые люди, также, искажают слово, добавляя "Отраслевой стандарт" или "имя поставщика Стандарт".Это просто бессмысленный маркетинговый шум.
Стандарт де-факто - это то, что стандартизировано на практике (потому что все делают это и соглашаются, что они делают это таким образом), но это не поддерживается какой-то организацией по стандартизации.
Python имеет Стандарт Де-факто, а не Стандарт Де-Юре.
Стандартизированный означает, что существует спецификация для языка ("стандарт").Java, например, имеет спецификацию.Perl 5 этого не делает (исходный код является "стандартным"), но Perl 6 сделает.