Я наткнулся на этот "список языков программирования" и обнаружил, что популярные языки, такие как Python, не стандартизированы? Почему это, и что означает "стандартизованный" в любом случае?
Python не стандартизированный язык?
Ответ 1
"Стандартизированный" означает, что язык имеет официальный утвержденный стандарт, обычно написанный ISO, ANSI или ECMA. Многие современные языки с открытым исходным кодом, такие как Python, Perl и Ruby, формально не стандартизированы внешним телом, а вместо этого имеют стандарт де-факто: что бы ни делала оригинальная рабочая реализация.
Преимущества стандартизации языка: а) вы знаете, что язык не будет меняться на вас случайным образом, б) если вы хотите написать свой собственный компилятор/интерпретатор для языка, у вас есть очень четкий документ, который говорит вам, что все должно делать делать, а не тестировать это поведение самостоятельно в исходной реализации. Из-за этого стандартизированные языки меняются медленно и часто имеют несколько основных реализаций.
Язык не должен быть стандартизирован, чтобы быть полезным. Большинство нестандартных языков не будут просто вносить случайные обратно несовместимые изменения без какой-либо причины (и если они это сделают, им понадобится десять лет, чтобы решить, как * кашлять * Perl6 * кашель *), а нестандартные языки могут добавлять новые интересные экспериментальные функции намного быстрее (и более переносимо), чем стандартизированные языки.
Несколько стандартизированных языков:
- C (ISO/IEC)
- C++ (ИСО/МЭК)
- Common Lisp (ISO/IEC)
- Схема (IEEE)
- JavaScript (ECMA-262)
- С# (ECMA-334)
- Рубин (ISO/IEC)
Нестандартизированные языки:
- Perl
- питон
- PHP
- Objective-C
Полный список в Википедии.
Ответ 2
Существуют "стандарты" и существуют "стандарты".
Большинство людей в основном означает, что стандарт передается организацией, создающей стандарты: ISO, ECMA, EIA и т.д. Адвокаты называют эти стандарты De Jure. Там сила закона.
Кроме того, существуют "фактические стандарты".
Некоторые люди также испортили слово, добавив "Промышленный стандарт" или "Стандарт вендоры". Это просто бессмысленный маркетинговый шум.
A De Facto Standard - это то, что стандартизировано на практике (потому что каждый делает это и соглашается с тем, что он делает это таким образом), но он не подкреплен какой-либо организацией стандартов.
Python имеет стандарт де-факто, а не стандарт De Jure.
Ответ 3
Стандартизованный означает, что существует спецификация языка ( "стандарт" ). Java, например, имеет спецификацию. Perl 5 не (исходный код является "стандартным" ), но Perl 6 будет.