Найти - Пользователи
Полная версия: не работают строковые функции
Начало » Python для новичков » не работают строковые функции
1 2 3 4
Rodegast
> Просто суть в том, что питон - язык экспериментов. То есть многое пробуют вставлять, чтобы просто посмотреть (не так как в других языках, где всё сразу и надолго), поэтому у него и стандарта нет (не отправляют его на стандартизацию).

Ну это спорное утверждение. Например в Haskell-е экспериментов намного больше, но тем не менее он стандартизирован, а все экспериментальные возможности вынесены в расширения компилятора. Например можно подключить поддержку зависимых типов данных, хотя она не входит в стандарт 2010 года.
py.user.next
Rodegast
Например в Haskell-е экспериментов намного больше, но тем не менее он стандартизирован
А что там менялось в ядре существенно?

Rodegast
Ну это спорное утверждение.
Это общеизвестный факт. Толи Гвидо это писал, толи основная тусовка. В общем, поищи, почему питон не стандартизован за 20 лет.
Rodegast
> А что там менялось в ядре существенно?

Стандартизованная часть языка не меняется, но программист может настраивать синтаксис включая дополнительные возможности которых ещё нет в стандарте.
Вот описание доп. синтаксиса которое поддерживает ghc 8: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html

> Толи Гвидо это писал, толи основная тусовка. В общем, поищи, почему питон не стандартизован за 20 лет.

Скорей всего просто не хотят заморачиваться.
py.user.next
Rodegast
Скорей всего просто не хотят заморачиваться.
Просто многое переделывается без соблюдения обратной совместимости. Питон 2 был хорошим, но недостаточно хорошим. Поэтому его ядро существенно переделано, чтобы его можно было сделать гораздо лучше. При этом они были не скованы легаси-кодом и могли выбрасывать из ядра всё что угодно. И по ядру Питон 3 сильно превосходит Питон 2. Надо смотреть в будущее и задаться вопросом “Нужен ли нам куцый питон?”

Rodegast
Стандартизованная часть языка не меняется
Они сохраняют обратную совместимость. Это классическое развитие языка программирования. Но Питон - это лучший язык, а лучший язык должен быть хорошо отшлифован во всём.
FishHook
py.user.next
И по ядру Питон 3 сильно превосходит Питон 2.
Но сильно уступает PyPy
Rodegast
> Они сохраняют обратную совместимость.

Скорее совместимость между компиляторов.

> Но Питон - это лучший язык, а лучший язык должен быть хорошо отшлифован во всём.

Пять проблем Python-а пока ещё никуда не делись.
py.user.next
FishHook
Но сильно уступает PyPy
Я говорю про язык, а не про интерпретатор языка. А для CPython и для PyPy язык Питон 3 один и тот же.

Rodegast
Скорее совместимость между компиляторов.
Язык - это грамматика. Так вот грамматически (формально) в Питон 2 есть функция xrange(), тогда как в Питон 3 этой функции нет. Это функция ядра языка, которую удалили. Теперь код для второго питона, использующий эту функцию, не сработает в третьем питоне. Это и есть нарушение обратной совместимости.

Rodegast
Пять проблем Python-а пока ещё никуда не делись.
Какие проблемы в самом языке?
FishHook
py.user.next
Я говорю про язык, а не про интерпретатор языка. А для CPython и для PyPy язык Питон 3 один и тот же.
И что же ты подразумеваешь под “ядром” языка в таком случае?
py.user.next
FishHook
И что же ты подразумеваешь под “ядром” языка в таком случае?
В питоне ядро языка - это то, что не входит в библиотеку (что не нужно импортировать). (Это не только в питоне*.)
Например, функция len() входить в ядро языка, а функция itertools.chain() не входит в ядро языка, так как находится в библиотеке.

* В C ядро языка - это ключевые слова, типы и прочее, а функция printf() в ядро языка не входит, находится в библиотеке функций. Это специально так сделано, за счёт чего он и пережил переход от консолей к графике, реализован на разных новых операционных системах (в отличие от Паскаля, который остался в ДОСе, потому что у него в ядро зашиты средства для консоли).
FishHook
py.user.next
Язык - это грамматика.
Функция len определяет грамматику? На мой взгляд, тот факт, что len прибита к интерпретатору гвоздями, а не вынесена в библиотеку не играет никакой роли. Я бы даже сказал, что для ООП языка само существование такой функции - плохой стиль. Гораздо более важные штуки, такие как JIT в PyPY и GIL в CPython могут повлиять на стиль и архитектуру программы гораздо существеннее. Ядро - это все таки интерпретатор, а не финтифлюшки вроде копеечных функций.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB