LINUX.ORG.RU

Гвидо ван Россум покидает пост BDFL языка Python

 


3

7

Создатель и один из основных разработчиков языка программирования Python Гвидо ван Россум объявил о том, что устраняется от принятия дальнейших решений о развитии языка. В течение какого-то времени он продолжит выполнять функции рядового разработчика и консультировать команду, но фактически Гвидо складывает с себя полномочия «великодушного пожизненного диктатора» (benevolent dictator for life, BDFL), которыми он обладал 27 лет с момента создания языка. Сейчас в списке рассылки python-committers идет дискуссия о новой модели управления разработкой Python.

Гвидо принял решение после утверждения PEP 572 «Assignment Expressions» (Предложение об улучшении языка №572 — «Выражения присваивания»), вокруг которого в сообществе разработчиков и пользователей языка развернулись ожесточенные дискуссии. «Я больше не хочу когда-либо сражаться за PEP и видеть, как множество людей презирают мои решения» — сказал ван Россум.

PEP 572 добавляет в язык выражение присваивания вида var := some_expression и будет реализовано в Python 3.8 (сейчас присваивание является оператором, не вырабатывающим значения).

Сегодня днем на рассылку разработчиков языка Python пришло письмо следующего содержания:

Теперь, после того, как PEP 572 утверждено, я больше не хочу когда-либо сражаться за PEP и видеть, как множество людей презирают мои решения.

Я хотел бы полностью устраниться от процесса принятия решений. Я все еще буду какое-то время участвовать в разработке в роли рядового разработчика, и я буду доступен для консультаций, возможно, больше, чем прежде. Но я, по сути, ухожу в бессрочный отпуск с позиции BDFL, и вам придется существовать самостоятельно.

Так или иначе, рано или поздно это все равно должно было случиться — автобус всё еще подстерегает за углом, и все мы не молодеем... (Не буду вдаваться в подробности о состоянии своего здоровья.)

Я не планирую назначать своего преемника.

Так что вам придется самим решать, как быть дальше. Установить демократию? Анархию? Диктатуру? Федерацию?

Я не думаю, что мой уход серьезно затронет повседневные решения по задачам в трекере и на GitHub. Моим мнением там интересуются очень редко, и на самом деле, как правило, оно не так важно. Так что в этом плане дела будут идти своим чередом.

Наиболее существенные решения, которые мне приходилось принимать, это, пожалуй:

  • Какая судьба ожидает новые PEP
  • Принятие новых разработчиков языка в команду

Мы можем оформить эти процедуры в виде PEP (возможно, эти PEP составят своего рода конституцию языка). Но суть такова: я хочу попробовать дать вам (текущим разработчикам) самим решить все это для себя.

Обратите внимание, что вы все еще обязаны подчиняться Правилам поведения сообщества — если вы не согласны с этим документом, пожалуй, единственный выход для вас — добровольно покинуть эту рассылку. Возможно, нам еще стоит обсудить, не стоит ли кого-то исключить отсюда (тогда придется заодно исключить их и из рассылок python-dev и python-ideas, так как они тоже подчиняются Правилам).

И последнее — напоминаю, что архивы этой рассылки публичны (https://mail.python.org/pipermail/python-committers/), несмотря на то, что участие в ней ограничено (только для разработчиков языка).

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

-- Гвидо ван Россум (python.org/~guido)

>>> Подробности



Проверено: tailgunner ()
Последнее исправление: tailgunner (всего исправлений: 13)

Ответ на: комментарий от grem

ой да ладно, уже не раз встречал потерянные сырцы в разных проектах для CERN. О reproducible research, слышали, далеко не все. Код, чтобы собрать, который нужно приезжать в универ, где тебя научат его собирать. Write one код, который выбрасывается после написания статьи. Отсутсвие умения пользования системами сборки. Написание на всех языках, как на фортране и т.д. и т.п..

qnikst ★★★★★
()
Ответ на: комментарий от tailgunner

Хотел сказать, что неавтопроверяемость документации есть не абсолютная истина, а лишь текущее состояние инструментов. Т.е. если формализовать формат документации до роботочитаемого, можно будет напихать «контракты» туда, и это будет ничем не хуже бесполезных(*) аннотаций в коде.

(*) бесполезных в том смысле, что компилятор/интерпретатор/вхатэвор не добывает оттуда полезной инфы, или не использует её(как в этих наших питонах)

DonkeyHot ★★★★★
()
Ответ на: комментарий от no-such-file

Ясное дело, фортран вон до сих пор насилуют.

В Фортране есть фичи из коробки (без всяких библиотек), которые делают его удобным для вычислений определённого рода. Например, работа с матрицами. Думаю, что Матлаб стал отчасти популярен именно из-за того, что позволял работать с матрицами так же просто, как в Фортране. При этом в остальном язык Матлаба может быть костылём на костыле с т.з. теории языков программирования и грамотного дизайна, но преимущества от удобства определённых фич перевешивают недостатки от костыльности других.

Я к тому, что научные работники не являются «двигателями» в языкостроении.

Как и большинство программистов. Главное - чтобы практические задачи решались эффективно.

Они потребители, и от того что они потребляют питон, ситуация в питоне никак не улучшается. Сдохнет питон или нет, от них никак не зависит.

А от кого зависит? И даже если сдохнет, что случится-то? Все проги, написанные на нём вдруг превратятся в тыквы?

seiken ★★★★★
()
Ответ на: комментарий от no-such-file

программисты такие, у которых «матан» был только на первых двух курсах

"Не прогуливать на первых двух курсах"

DonkeyHot ★★★★★
()
Ответ на: комментарий от qnikst

Одно другому не мешает.

Я наоборот видел ряд примеров того, как код тащат и дополняют с момента начала разработки после института. Как и случаи продолжения разработки кода, который первоначально писал другой человек.

grem ★★★★★
()
Ответ на: комментарий от DonkeyHot

Хотел сказать, что неавтопроверяемость документации есть не абсолютная истина, а лишь текущее состояние инструментов. Т.е. если формализовать формат документации до роботочитаемого, можно будет напихать «контракты» туда, и это будет ничем не хуже бесполезных(*) аннотаций в коде.

Только надо понимать, что «формализация до робочитаемого» даст ровно ту же сложность аннотаций типов, что и mypy, просто записано оно будет в комментариях. Но да, можно. Но в реальности не существует (mypy умеет аннотации в комментариях, но не думаю, что туда можно добавлять документацию).

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от seiken

В Фортране есть фичи из коробки (без всяких библиотек), которые делают его удобным для вычислений определённого рода.

Это да. Я будучи студентом, посмеивался, узнав у знакомого из МАИ, что им преподают фортран (какой не знаю), считая, что на нём никто уже не пишет. И лет через 15, когда он мне потребовался, стал сожалеть, что его не было у меня в институте. Настолько проще в куче случаев там всё делается проще.

grem ★★★★★
()
Ответ на: комментарий от cab

на минимальном уровне

=> без чтения справочников (IMHO).

И сабмитить я буду только тот реквест, который будет отвечать моим требованиям

Ну то ты. А бывает так, что кто-то шел мимо, у него было настроение покодить, и внезапно наткнулся на прикольный проект.

Или например человек начал вникать и по ходу закоммитил фиксы для руссиш инглиш.

Ты конечно волен поступать на своих проектах как считаешь нужным. Я просто делюсь личным опытом и не настаиваю, что он тебе нужен.

Vit ★★★★★
()
Ответ на: комментарий от Vit

=> без чтения справочников

Одно дело немного доки, как раньше, а другое приличную книжку только по языку, как сейчас. Python стал слишком толстым.

cab ★★★★
()
Ответ на: комментарий от AlexM

По большому счету ученный может позволить себе не заморачиваться на легаси и обратной совместимости. Это не ынтерпрайз, гдедо сих пор на Cobol-е, PL-1 или древней Java пишут. Бо не дай Бог в какой-то библиотеке что-то сломается и, в результате, твоей конторе миллионные иски выставят.
Потому, кстати, 2.7 и используется вовсю - он стабильный.

cab ★★★★
()
Ответ на: комментарий от cab

Толщину питона обсуждать не готов, т.к. я на нем не писец вообще.

Просто глаз резануло утверждение, что когда для чтения сорцов нужен справочник это ОК. У себя стараюсь чтобы было достаточно комментов и в суть можно было врубиться вообще не читая строки кода.

Vit ★★★★★
()
Ответ на: комментарий от tailgunner

ровно ту же сложность аннотаций

Но есть нюанс. Синтаксис аннотаций в комментариях/доке придётся совмещать не с богатым синтаксисом основного языка, а с тривиальным синтаксисом комментариев. Что, вероятно, даёт возможность придумать его красивше или мощнее или ещё более какой захочется.

DonkeyHot ★★★★★
()
Ответ на: комментарий от Vit

Просто глаз резануло утверждение, что когда для чтения сорцов нужен справочник это ОК

Ну кто же виноват, что примерно 100 страничное руководство по языку вылилось в толстый талмуд?
Ситуацию спасает лишь то, что большинству хватает небольшого простого подмножества python.

cab ★★★★
()
Ответ на: комментарий от grem

возьмём простую задачу о распаде произвольного разрыва для соседних ячеек, даже не его применение для расчёта одномерного сопла

И конечно он найдётся на питоне за 1 минуту гугления, как мне тут обещали? Если так, то в чём проблема переписать его на любой другой язык который мне захочется притащить в проект? Ещё раз, специально для тебя - наличие «горы» кода на питоне никак не защищает питон от устаревания и забвения.

no-such-file ★★★★★
()
Ответ на: комментарий от seiken

И даже если сдохнет, что случится-то? Все проги, написанные на нём вдруг превратятся в тыквы?

Если язык перестанет развиваться с практической стороны, будут только запиливать очередные финтифлюшки, то он перестанет быть конкурентноспособным в решении практических задач.

Телеги тоже никуда не делись, только большинство почему-то ездит на авто.

no-such-file ★★★★★
()
Ответ на: комментарий от DonkeyHot

Не прогуливать на первых двух курсах

Если матан изучается не ради галочки (как у гуманитариев), то на третьем курсе учиться будет невозможно.

no-such-file ★★★★★
()
Ответ на: комментарий от cab

Да, согласен насчет легаси.

Единственный вопрос: как приводить в порядок для себя и для своих студентов.

AlexM ★★★★★
()
Ответ на: комментарий от no-such-file

Не знаю что тебе обещали и причём здесь переписывание, но речь шла о том, что ты утверждал, что любой джун запилит реализацию любого описанного алгоритма за 16 часов.

grem ★★★★★
()
Ответ на: комментарий от DonkeyHot

Но есть нюанс. Синтаксис аннотаций в комментариях/доке придётся совмещать не с богатым синтаксисом основного языка, а с тривиальным синтаксисом комментариев.

Т.е. ты хочешь выдумать для аннотаций типов новый синтаксис. Как по мне, идея не очень.

Что, вероятно, даёт возможность придумать его красивше или мощнее или ещё более какой захочется.

Синтаксис аннотаций mypy совместим с синтаксисом Python и покрывает все практические нужды. Впрочем, если ты хочешь использовать синтаксис аннотаций с, например, несбалансированными скобкам, это можно делать хоть сейчас:

def foo(a: ":')") -> ":(":
   pass
tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

выдумать для аннотаций типов новый синтаксис

Я только указываю на большие возможности такового в доках, по сравнению с расширением основного синтаксиса. Возможно они(возможности) не нужны(допустим, аннотации слишком простые и одного двоеточия достаточно для всех будущих потребностей). Возможно получится только хуже(за счёт увеличения расстояния до описуемых объектов, или дополнительного мусора). Но априорно такое решение выглядит «гибче».

Как по мне, идея не очень

На самом деле, если посмотреть на «среднюю» питонскую програмку, там уже намешано куча разных синтаксисов - сам питон, строки, регекспы, документация(где сфинксы водятся) - с несистематичным переключением между ними - где-то это кавычки, где-то заборы, где-то какие иные особенности. Т.ч.

ты хочешь ...

... «универсальный» синтаксис, позволяющий одинаково удобно работать с вышеупомянутой мешаниной. Нужно что-то не от «языка А», сказал «язык Б», и не переживаешь, что это сломает парсер первого. Ещё не придумал, как это могло бы выглядеть. Что-то похожее есть в xml-ях(кажется), но орудия пыток - оффтопик.

DonkeyHot ★★★★★
()
Ответ на: комментарий от no-such-file

то на третьем курсе учиться будет невозможно

Если не прогуливать первые 2 ??? Странное заявление.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

если посмотреть на «среднюю» питонскую програмку, там уже намешано куча разных синтаксисов - сам питон, строки, регекспы, документация

... «универсальный» синтаксис, позволяющий одинаково удобно работать с вышеупомянутой мешаниной.

/me молча покрутил пальцем у виска.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

а нужен, чтобы присваивание можно было запихнуть в условные операторы и тем сократить код (и избавиться от дублирования).

Так помню же всю жизнь питонисты кричали что это не нужно и оператора достаточно. Может еще и лямбды починят? А на дворе шла середина 2018...

loz ★★★★★
()
Ответ на: комментарий от loz

Так помню же всю жизнь питонисты кричали что это не нужно и оператора достаточно.

Если они и кричали об этом, с моей жизнью это не перекрывалось. В любом случае, времена меняются.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Меняются конечно, но чтож так супер медленнo. Присваивания как выражение (а еще цикл-выражение, условие-выражение) в лиспах (и не только) существуют уже лет 50.

loz ★★★★★
()
Ответ на: комментарий от loz

Присваивания как выражение (а еще цикл-выражение, условие-выражение) в лиспах (и не только) существуют уже лет 50.

Да, Капитан.

tailgunner ★★★★★
()
Ответ на: комментарий от grem

любого описанного алгоритма за 16 часов

Ну и? То о чём ты говоришь в списке не было. Это питон так на мозги влияет, что потом трудно понять контекст обсуждения?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

что сложного налабать известный алгоритм по подробному описанию?

может ещё между строк читать? эта задача не сложнее того, что было в списке

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от cab

Ну, опять же, из того, что я вижу вокруг, на примере товарищей, жены и сына. Нет или практически нет изолированных задач, есть некоторые методики, которые можно натянуть на один массив данных, потом, по мере поступления — на другой массив, а потом, подумав, применить решение в какой-то ещё области.

AlexM ★★★★★
()
Ответ на: комментарий от tailgunner

Медленный старт — это не проблема, а признак солидности.

buddhist ★★★★★
()
Ответ на: комментарий от buddhist

А как связана «утиность» и статическая/динамическая типизации?

Что такое «утиность» типизации? Я не использовал этот термин.

tailgunner ★★★★★
()
Ответ на: комментарий от buddhist

A structural type system ..., in which type compatibility and equivalence are determined by the type's actual structure or definition. It contrasts with ... duck typing, in which only the part of the structure accessed at runtime is checked for compatibility.

перевожу: structural type system != duck typing

MyTrooName ★★★★★
()
Ответ на: комментарий от buddhist

Утиность это просто сайд-эффект динамической типизации. Никто специально такое не придумывал. Какой-то гуру ляпнул термин, и дебилы подхватили. Пользы от нее чуть более чем нихера. И в статике никакой утиности быть не может, у тебя либо полное соответствие заданному интерфейсу, либо ты идешь лесом. А суть утки это возможность совершенно левый и неожидаемый объект скормить функции. Ну полный вывод типов может создать иллюзию утиности, но её там нет.

anonymous
()
Ответ на: комментарий от anonymous

Утиная типизация это когда из-за неверно переданного аргумента приложение крякнет в продакшене, а разработчик станет объяснять руководству на кой лад он выбрал питон. AttributeError: quack, quack, quack!

Lucky ★★
()
Ответ на: комментарий от no-such-file

Даже пых уже лучше питона.

«Кому и кобыла - невеста» (с)

После того как в js завезли...

Хипстота туда много чего навезла. Но пока «на хлеб намазывается, а вот вкус и запах ещё не доработан» - это из совецкого анекдота как из говнеца сливочное масло изобретали :)

Linfan ★★★★★
()
Ответ на: комментарий от Yur4eg

Гугл давно отказался от питона как mainstream языка после неудачной попытки примерно в течении года кардинально улучшить что-либо в плане производительности интерпретатора. Наработки отдали в сообществу, а часть идей реализовали в V8. У них основная масса кода на питоне это академические проекты, инструменты и легаси.

Lucky ★★
()
Ответ на: комментарий от Lucky

кардинально улучшить что-либо в плане производительности интерпретатора

если им так печет, допилили бы cython и компилировали бы горячий код им, не? или pypy бы допилили...

t184256 ★★★★★
()
Ответ на: комментарий от Linfan

Вот про JS не надо. Тактика развития языка сейчас круче на порядки. Наличие стандартов, вместо стандартной библиотеки, позволят имплементациям быстро и качественно эволюционировать снаружи.

Всего за пару лет язык обновили радикально, сохранив возможность использования кода в старых окружениях (эпическая история с 2to3 в питоне это слезы). Теперь же благодаря популярности транспилеров и грамотно выстроенным процессам есть возможность продолжать экспериментировать с языком, доводя до стандарта лишь действительно востребованные фишки _после_ тщательной обкадки в продакшен.

Lucky ★★
()
Ответ на: комментарий от t184256

если им так печет, допилили бы cython и компилировали бы горячий код им, не? или pypy бы допилили...

Гугл сделали реально много. Но в итоге получили улучшения на проценты, где-то в разы. Не на порядки. А питон - тормоз. Принципиальным ограничением является большая гибкость языка, которая не позволяет делать предсказания и быстрые безопасные оптимизации. В питоне есть возможность менять что угодно кучей разных способов, ломающих эвристики. Кодинг на подмножестве языка, cython, pypy это все хорошие, но довольно хрупкие локальные костыли, которые в промышленном масштабе не масштабируются.

Lucky ★★
()
Ответ на: комментарий от Lucky

Вы, как и визави, которому отвечал, путаете языковые навороты с востребованностью в «народном хозяйстве». Практически все ЯП имеют свои четкие ниши (или выставлены на мороз без таковой). И сколько наворотов в пыхпых не запилят - все одно это ЯП для сцайтов. Тоже и жабоскрипт: сколько классами не обмазывайтесь - это тул для фронтэнда в браузере. Конечно будем посмотреть, но откочевать в другую область обычно ЯП не удаётся. Даже жабе с ее офигенным энтерпрайзным бэкграундом, так особо десктоп и прочие области применения не удались.

Linfan ★★★★★
()
Ответ на: комментарий от Lucky

А питон - тормоз.

Давно и много раз это уже обсасывалось - и Гвидо и даже на ЛОРе. Удел питона - сложная логика для связки между кусками нативного кода (сишного как правило). Питон + нативные экстеншины обеспечивают вполне приличную скорость.

Linfan ★★★★★
()
Ответ на: комментарий от Lucky

Без стандартной библиотеки жаваскрипт никуда не взлетит. Понимаешь, когда нужна скриптуха на сервере, меньше всего хочется на любой чих качать неизвестно откуда непонятного качества пакеты.

anonymous
()
Ответ на: комментарий от Lucky

Не поспоришь.

В питоне есть возможность менять что угодно кучей разных способов, ломающих эвристики.

О да.

довольно хрупкие локальные костыли, которые в промышленном масштабе не масштабируются.

Тоже довольно правдиво, но причиной тому как раз малая популярность. Просто я на работе пишу числодробилку, где горячие места на Cython, и 80% питонологики вокруг дают вполне терпимые 20% оверхеда. Как-то странно, что мне норм, а гуглу - нет.

t184256 ★★★★★
()
Ответ на: комментарий от anonymous

Какая беда, ну заморозить их Nix-ом. Это не отменит того, что язык - говно.

t184256 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.