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)

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

Не присваивание, сравнение: с приведением типов, без оного и еще сравнение строк без учета настройки ignorecase. Да, операторы зависят от настроек! Чтобы было не так скучно там еще есть is is? is# для проверки на идентичность. Итого 6 операторов сравнения. Я хоть убей не могу запомнить что есть что, каждый раз лезу в хелп.

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

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

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

Ну, судя по удалённому комментарию

нет, увы, комментарий удален, потому что я неверно прочитал твое сообщение (пропустил отрицание)

я не против считать := и = дублирущими друг друга. но as из конструкций import, except и with сюда как-то неохотно относится.

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

Но с in ведь даже сложнее, есть ведь ещё и in clause (или как это правильно назвать). И, опять же, это никого не смущает. Как не смутил бы и ещё один as.

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

Ну as-то действительно именует некое значение создавая под него переменную, не имея при этом никакого другого назначения.

а += - это оператор сложения, но не присваивания :)

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

Как не смутил бы и ещё один as

таки смутил.

in

for identifier in expression трудно спутать с in clause, т.к. in стоит ровно через две позиции от for. в отличие от предложенного синтаксиса as

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

Если разрешить юзать as только совместно с другими операторами (для чего, собственно, ведь и нужен :=, так?), то проблем тоже не будет.

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

Я в том смысле, что += в идеале вообще никакого присваивания не должен делать, а __add__ не должен ничего возвращать, только изменять состояние объекта.

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

Это понятно, отсюда и косяк.

Fix: ну ты понял (а я тебя нет), речь про иммутабельность инта (стринга, тапла и мб ещё чего) из которой и растёт присваивание.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 2)
Ответ на: комментарий от Virtuos86

Ну кто ж вам запрещает рукоблудствовать вприсядку? Свобода выбора и всякое такое :)

Linfan ★★★★★
()
Ответ на: JavaScript - новый Python от anonymous

python был отличным и перспективным языком 15 лет тому назад. но сейчас скатился в унылое: 1. слишком большая стандартная библиотека. это код на все случаи жизни, который практически невозможно улучшать и фиксить из-за необходимости сохранения обратной совместимости. 2. слишком гибкая и поэтому тормозная объектная модель, не позволяющая делать эффективные оптимизации. 3. куча синтаксических конструкций, каждая со своим набором открытых проблем. 4. не в меру затянувшийся переход с 2 на 3.

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

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

Примерно также ванговали про все популярные ЯП: «цэ не нужен» «жаба умерла» и т.п. Не путайте интересный концепт с ЯП вышедшем в продакшин. Альтернатив Пистону нет. Жабоскрипт - УГ на бэкэнде.

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

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

mixin-ы, как раз, есть:

class MyMixin:
    def handle(self, attrs):
        attrs = super().handle(attrs)
        attrs['is_new'] = True
        return attrs

clas MyClass(MyMixin, MyBaseClass):
    pass
anonymous
()
Ответ на: комментарий от anonymous

Ну и на кой в динамическом языке интерфейсы? Утиная типизация же. Сильно надо проверить, что все методы реализованы - используйте абстрактные классы - будут ошибки в рантайме. https://docs.python.org/3/library/abc.html

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

Кстати, как ни странно, один из самых понятных способов обработки ошибок - в Go, хоть раньше он мне и не нравился (например потому что его по-сути и нет), но бывает крайне удобно, просто возвращать ошибку как часть результата работы функции, это например позволяет проще организовать обработку и слить это в одну точку.

Мне вспомнился Cи с его errno.h, такую логику можно реализовать на любом ЯП, в котором есть функции

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

Только пока у тебя все ошибки описываются объектом одного типа (как целые коды возврата в Си).

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

Вообще, начудили с синтаксисом Python сильно: - async def/await - появился целый класс «меченных» строго асинхронных функций. - yield from - урод - super() без передачи self. Как так то? Везде при вызове методов указываем self, а тут можно не указывать... - Концевые запятые ведут себя мягко говоря странно. Вряд ли кто-то не спотыкался об

    a = b,    # == a = (b,)
- Нет общего стиля форматирования исходников. Особенно доставляют форматирование import-ов и chained вызовы методов (разработчикам на Django пламенный привет). - Стандартная библиотека - это зоопарк кода разных мастей. Батарейки включены, но какие... xml с etree - это какой-то ахтунг. Почему его не закопали при переходе на Python3?

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

Разве у них есть какие-то внятные альтернативы для простого кодирования бизнес-логики с асинхронными вызовами?

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

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

Ну и да, как человек, достаточно близко знакомый с научным миром, могу сказать, что это представление об учёном с пустыми карманами более неактуально даже для России. Сосед-профессор, завкафедры археологии в универе, по субботам гоняется на своем крузаке по всяким го́внам, перемежая это хобби с практической стрельбой. Буквально, пример нашей советской профессуре © Дежа-вю

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

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

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

mixin-ы, как раз, есть:

Накостылить можно, да. Так и в жс можно. Какая разница где костылить. По факту ООП в питоне не менее уличное, но зато есть ключевое слово class. В жс теперь тоже есть.

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

Ну и на кой в динамическом языке интерфейсы?

На той, чтобы иметь предсказуемый API. Даже если интерфейсов нет, то неявно они все равно будут.

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

поэтому в целом исход уже определен.

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

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

Абстрактные классы — уходящий век ООП. Интерфейсы более современны.

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

anonymous
()

Хипсторы доканали старика. Теперь наделают форков, один будет от гугла, один лоу левел для быстрой математики с гото и ассемблерными вставками и один со свичем для эстетов. Ну и еще и четвертая версия не совместимая со всеми ними.

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

Теперь наделают форков, один будет от гугла, один лоу левел для быстрой математики с гото и ассемблерными вставками и один со свичем для эстетов. Ну и еще и четвертая версия не совместимая со всеми ними.

+1.

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

Ты ещё «питухон» не встречал.

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

mixin-ы, как раз, есть:

Накостылить можно, да. Так и в жс можно. Какая разница где костылить. По факту ООП в питоне не менее уличное, но зато есть ключевое слово class.

Почему накостылить? В Python «из коробки» самые обычные классические MixIn-ы.

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

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

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

Я тоже фигею от местных аналитиков и могильщиков. В научных и инженерных кругах настоящий бум Питона. Его пихают буквально везде, МАТЛАБ и R отступают. Но лоровских завсегдатаев это, конечно, не беспокоит.

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

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

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

На чём на чём же делать что-то новое??? На Rust? На Go?

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

Я тоже фигею от местных аналитиков и могильщиков. В научных и инженерных кругах настоящий бум Питона. Его пихают буквально везде, МАТЛАБ и R отступают. Но лоровских завсегдатаев это, конечно, не беспокоит.

Не стоит. Тут всё просто, ЛОРовские могильщики закапывает php, python, c++ находясь дома, приходя же на работу, свои мысли они сворачивают и засовывают глубоко до следующего вечера на уютненьком ЛОРчике.

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

Ищите и обрящите (с) тулзов на пистоне в продакшине более чем.

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

На фронтэнде жабоскрипту альтернатив тоже нет.

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

Форки есть уже давно. От Гвидо это не зависит

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

Не путайте интересный концепт с ЯП вышедшем в продакшин

Ну COBOL тоже до сих пор где-то крутится в продакшене. Это не делает его живым.

Альтернатив Пистону нет

Альтернатив пистону вагон и маленькая тележка. Даже пых уже лучше питона. Это фиаско, братан.

Жабоскрипт - УГ на бэкэнде

После того как в js завезли нормальные классы он стал таки годным. А typescript вообще конфетка.

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

Можно ли отделить науку от инженерии в этом случае? Наверное, можно. 'Да только кто же согласится' © Поручик.

вот и ответ.

Сосед-профессор, завкафедры археологии в универе, по субботам

один пример уже репрезентативная выборка?

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

Его пихают буквально везде, МАТЛАБ и R отступают

Так вот зачем в top500 такие мощности, чтобы питон не тормозил! А если серьёзно, то мелкие расчёты (читай хеловорды) совершенно пофиг на чём писать. В 90-е было популярно делать это на turbo pascal 7.0, потом на дельфи. Один знакомый физик в экселе на бейсике фигачил, говорил, что норм, и графики потом красивые можно рисовать. Ну и где теперь всё это?

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

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

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

один пример уже репрезентативная выборка?

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

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

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

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

Например, когда им срочно нужен будет метод Левенберга-Марквардта или решатель ОДУ с адаптивным шагом, двусторонний t-test на дисперсию, быстрое Фурье такое, чтобы не обязательно использовало степени двойки. Вот ещё бывает нужно читать нейрофизиологические форматы типа WDQ или Spike2, вы же специалист в этом, подскажите нам как? Есть ещё такая штука NEURON, система моделирования, написанная на сишке и суровом фотране с интерфейсом к Питону, вы же нам при необходимости выкатите интерфейс к вашему языку? Несомненно, в любом языке эти библиотеки лежат на поверхности! В php, java, nim всего этого завались, причём лежит в удобных пакетах, работает и на Линуксе, и на Винде, и на Маке, и устроено так, что типы данных используются одни и те же и результаты из нединейного МНК можно сразу совать в fft и t-test.

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

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

Зарплата доуента, кандидата наук с учётом надбавок и стажа при условии публикации 3 приличных статей в год в Национальном исследовательском университете не в Москве составляет 24-27 тыс. руб. У доктора, профессора 35-40 тыс. Если вы считаете, что это приличная заплата, ну тогда ладно. Хотя кормить на неё семью из троих детей не очень получается, учитывая, что жена сидит со младшим в декрете.

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