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)

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

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

PPP328 ★★★★★
()

(Предложение об улучшении языка №572 — «Выражения присваивания»), вокруг которого в сообществе разработчиков и пользователей языка развернулись ожесточенные дискуссии.

А можно суть драмы или там просто нужно/нинужно?

ya-betmen ★★★★★
()

Здравствуй, теперь уже еще один PHP!

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

Без $SOME_BICYCLE современный мир немыслим

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

devl547 ★★★★★
()

«Пожизненный», «ушёл». Значит он должен в ближайшее время прекратить функционирование? :D

Куда теперь бубунта рванётся, в которой, как тут же писали, этого питона много? Волнуюсь... :D

dv76 ★★★★
()

PEP 572 добавляет в язык выражение присваивания вида var := some_expression

Вот, собственно, из-за большого количества таких тонких различий, размазанных по всему языку, я перестал использовать python.
Дело в том, что держать в голове всю эту кучу нюансов может только «программист на». А у меня с этим не сложилось, я занимался автоматикой (C, LabView), опердень (Delphi, Free Pascal, python, java, SQL, свои DSL), автоматизацией всякого серверного дерьма (bash, python, emacs lisp), мобайл (java, swift). При таких раскладах важнее помнить не 100500 нюансов, а простота инструмента и ясность намерений, которые ты этим инструментом сможешь передать. И предпочтение отдается инструментам, где прорыв в функциональности достигается за счет небольшого количества удачно скомбинированных идей, в противоположность насыщения языка новыми фичам. Последний подход ведет к тому, что сообщество не в состоянии ассимилировать накопленные фичи. Python, где-то до 2.5 или 2.6, и был таким языком с удачной комбинацией нескольких хороших идей, а уже потом пустился во все тяжкие. Как по мне, он до сих пор держиться на инерции 2-й ветки.

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

Понравилось, что в языке теперь два оператора присваивания? Специфический у тебя вкус. Присваивание в условиях нужно, но реализовали это через жопу.

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

Python не тормозит

Уход Гвидо заставил тебя задуматься о карьере комика?

WitcherGeralt ★★
()

Пришло время ставить памятник !

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

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

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

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

if (user->uid = 0)

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

Лайк за то что впилили отдельную лексему.

От за это как раз не лайк. Можно было анализировать контекст и использовать одну лексему.

где присваивание делается знаком сравнения

вкусовщина

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

к тому времени он уже утратил простоту

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

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

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

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

засветился как питонявщик
предложения о работе в качестве data scientist валятся регулярно
какой, нафиг, из меня сайнтист

Просто «статистик» не звучит модно, а нужно как-то привлекать специалистов для анализа больших массивов данных. К тому же, это не значит, что на произвольной позиции с данным наименованием нужно обладать знаниями и опытом для ведения научной деятельности. Хайп и баззворды. Настоящей науке не нужна вывеска со словом «наука». В свое время так «computer science» раскрутили.

seiken ★★★★★
()

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

фуууу как в грёбаном паскале

лучше C-шного синтаксиса ещё ничего не придумали одни сплошные извращения

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

Питон славится читаемостью и близостью к естественному языку.

да-да, упомянутые выше списочные включения и with офигительно ближе, да. Так же как и все эти _foo(), __foo(), __foo__()

Когда присваивание похоже на сравнение

== сильно отличается от =. Привыкаешь быстро. Хотя, да, было бы правильней :=.

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

Что с волком стало помнишь?

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

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

В исходных вариантах волк

И даже не волк, а оборотень. Волка придумала цензура.

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

Ты это по старой памяти говоришь или по актуальному опыту? Я до сих пор пишу под 2.6 (есть серваки на старом SLES, куда не хочу завозить 2.7) и иногда бекпортирую код с 2.7, и разница минимальна, реальная разница видна только с 2.5, причём в лучшую сторону (with — мастхев). Там разница в основном в стандартной библиотеке, а в языке только минорщина, на вскидку припоминаю dict comprehensions и разницу в синтаксисе для str.format, да и всё на этом (не поню когда там new style classes завезли, но это не принципиально).

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

Ну так аннотации — это не руки, а скорее пиратские крюки.

Крюки приделывали вместо потерянных рук. Что у Пайтона было «руками», если аннотации сравниваются с пиратскими крюками?

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

началось где-то с введения списочных включений

Они идиоматичны, а в этом (был) весь пайтон.

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

к тому времени он уже утратил простоту

началось где-то с введения списочных включений

list comprehensions существуют в Пайтоне начиная с версии 2.1

оператора with

Оператор для работы с контекстовыми менеджерами как раз облегчил читаемость, особенно когда его допилили. Разве могут быть множественные вложенные try/finally лучше одного with?

Virtuos86 ★★★★★
()

Сегодня как раз пятница. Есть повод прибухнуть. За то, что Гвидо больше не двигает ЭТО, за то, что пистон либо станет нормальным языком (в чем большие сомнения), либо - сдохнет (что будет очень радостным событием)

silver-bullet-bfg ★★
()
Ответ на: комментарий от silver-bullet-bfg

Я бы прибухнул, если бы перестали писать «пистон», «пифон», «пихтон», «путон», «пайсон» и все остальные остроумные варианты.

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

Обходились, пока они не понадобились. Мне вот, если надо куда-то сходить, руки тоже не нужны, я использую ноги.

Virtuos86 ★★★★★
()
Ответ на: комментарий от silver-bullet-bfg

А срач мы тоже с гуглом будем устраивать? Серьезно, на ЛОР'е кому-то такие вещи надо объяснять в 2018 году?

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

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

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

То ли дело с пиратскими крюками! Даже лучше, чем с руками, как уверяют некоторые.

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

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

Virtuos86 ★★★★★
()

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

while True:
    line = fp.readline()
    if not line:
        break
    m = define_rx.match(line)
    if m:
        n, v = m.group(1, 2)
        try:
            v = int(v)
        except ValueError:
            pass
        vars[n] = v
    else:
        m = undef_rx.match(line)
        if m:
            vars[m.group(1)] = 0

и новую, в которой строк почти в два раза меньше
while line := fp.readline():
    if m := define_rx.match(line):
        n, v = m.group(1, 2)
        try:
            v = int(v)
        except ValueError:
            pass
        vars[n] = v
    elif m := undef_rx.match(line):
        vars[m.group(1)] = 0

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

with выглядит естественно, да, что не так? Когда ты говоришь «возьми молоко из холодильника», ты не добавляешь «и потом закрой холодильник».

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

Хотя некоторая ассиметрия тут есть, ибо говорить питону «открой холодильник» все-таки приходится.

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

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

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