The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск языка программирования Python 3.9

06.10.2020 10:41

После года разработки представлен значительный выпуск языка программирования Python 3.9. Python 3.9 стал первым выпуском после перехода проекта на новый цикл подготовки и сопровождения релизов. Новые значительные выпуски теперь будут формироваться раз в год, а корректирующие обновления выпускаться раз в два месяца. Каждая значительная ветка будет поддерживаться в течение полутора лет, после чего ещё три с половиной года для неё будут формироваться исправления с устранением уязвимостей.

Работа над новой веткой теперь начинается за пять месяцев до релиза очередной ветки, т.е. одновременно с выпуском Python 3.9 началось альфа-тестирование ветки Python 3.10. Ветка Python 3.10 будет находиться на стадии альфа-выпусков в течение семи месяцев, во время которых будут добавляться новые возможности и производиться исправление ошибок. После этого в течение трёх месяцев будет проводиться тестирование бета-версий, во время которого добавление новых возможностей будет запрещено и всё внимание будет уделяться исправлению ошибок. Последние два месяца перед релизом ветка будет находиться на стадии кандидата в релизы, на которой будет выполнена финальная стабилизация.

Среди добавленных новшеств в Python 3.9:

  • В словарях, определённых при помощи встроенного класса dict, появилась поддержка операторов слияния "|" и обновления "|=", которые дополняют методы {**d1, **d2} и dict.update, ранее предлагавшиеся для объединения словарей.
    
       >>> x = {"key1": "value1 from x", "key2": "value2 from x"}
       >>> y = {"key2": "value2 from y", "key3": "value3 from y"}
    
       >>> x | y
       {'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'}
    
       >>> y | x
       {'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}
    
  • Во встроенную коллекцию типов включены list, dict и tuple, которые можно использовать как базовые типы без импорта из модуля typing. Т.е. вместо typing.List, typing.Dict и typing.Tuple теперь можно указывать просто list, dict и tuple:
    
    
       def greet_all(names: list[str]) -> None:
           for name in names:
               print("Hello", name)
    
  • Предоставлены гибкие средства для аннотирования функций и переменных. Для прикрепления аннотаций в модуль typing добавлен новый тип Annotated, расширяющий существующие типы дополнительными метаданными, которые могут использоваться при статическом анализе или для оптимизаций во время выполнения. Для доступа к метаданным из кода в метод typing.get_type_hints() добавлен параметр include_extras.
    
        charType = Annotated[int, ctype("char")]
        UnsignedShort = Annotated[int, struct2.ctype('H')]
    
  • Смягчены грамматические требования к декораторам - любое выражение, подходящее для использование в блоках if и while, теперь может быть использовано как декоратор. Изменение позволило заметно улучшить читаемость кода PyQt5 и упростить сопровождение данного модуля:
    
       Теперь можно писать:
          @buttons[0].clicked.connect
     
       Было:
          button_0 = buttons[0]
          @button_0.clicked.connect
    
    
  • В стандартную библиотеку добавлен модуль zoneinfo, включающий информацию из базы часовых поясов IANA.
    
       >>> from zoneinfo import ZoneInfo 
       >>> from datetime import datetime, timedelta
       >>> # Летнее время
       >>> dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
       >>> print(dt)
       2020-10-31 12:00:00-07:00
    
       >>> dt.tzname()
       'PDT'
    
       >>> # Стандартное время
       >>> dt += timedelta(days=7)
       >>> print(dt)
       2020-11-07 12:00:00-08:00
    
       >>> print(dt.tzname())
       PST
    
  • Добавлен модуль graphlib, в котором реализована поддержка топологической сортировки графов.
  • Предложены новые методы для удаления префиксов и окончаний строк - str.removeprefix(prefix) и str.removesuffix(suffix). Методы добавлены в объекты str, bytes, bytearray и collections.UserString.
    
       >>> s = "FooBar"
       >>> s.removeprefix("Foo")
       'Bar'
    
  • Задействован новый парсер PEG (Parsing Expression Grammar), который пришёл на смену парсеру LL(1). Применение нового парсера позволило избавиться от некоторых "хаков", используемых для обхода ограничений в LL(1), и существенно снизило трудозатраты на сопровождение парсера. По производительности новый парсер находится примерно на одном уровне с прошлым, но значительно опережает его в плане гибкости, что позволяет более свободно чувствовать себя при проектировании новых возможностей языка. Код старого парсера пока сохранён и может быть возвращён при помощи флага "-X oldparser" или переменной окружения "PYTHONOLDPARSER=1", но будет удалён в выпуске 3.10.
  • Предоставлена возможность доступа методов Си-расширений к состоянию модулей, в которых они определены, с применением прямого разыменования указателей вместо поиска состояния модуля при помощи функции PyState_FindModule. Изменение позволяет повысить производительность модулей на Си за счёт снижения или полного исключения накладных расходов на проверку состояния модуля. Для ассоциирования модуля с классом предложена Си-функция PyType_FromModuleAndSpec(), для получения модуля и его состояния Си-функции PyType_GetModule() и PyType_GetModuleState(), а для предоставления методу доступа к классу, в котором он определён, Си-функция PyCMethod и флаг METH_METHOD.
  • Сборщик мусора избавлен от блокировки коллекций, включающих реанимированные объекты, которые остаются доступными извне после запуска финализатора.
  • Добавлен метод os.pidfd_open, позволяющий использовать подсистему ядра Linux "pidfd" для обработки ситуации с повторным использованием PID (pidfd связывается с конкретным процессом и не меняется, в то время как PID может быть привязан к другому процессу после завершения текущего процесса, ассоциированного с этим PID).
  • Поддержка спецификации Unicode обновлена до версии 13.0.0.
  • Устранена утечка памяти при повторной инициализации интерпретатора Python в одном процессе.
  • Проведена оптимизация производительности встроенных типов range, tuple, set, frozenset, list и dict, реализованная за счёт применения протокола быстрого вызова Vectorcall для более быстрого обращения к объектам, написанным на языке Си.
  • Модули _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time и _weakref переведены на загрузку с инициализацией в несколько стадий.
  • Модули стандартной библиотеки audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios и zlib переведены на использование ограниченного стабильного ABI, который решает проблему работоспособности сборок модулей-расширений для разных версий Python (при обновлении версии не требуется пересобирать модули-расширения, т.е. модули собранные для 3.9, смогут работать в ветке 3.10).
  • В модуле asyncio из-за потенциальных проблем с безопасностью прекращена поддержка параметра reuse_address (использование SO_REUSEADDR для UDP в Linux позволяет разным процессам прикреплять слушающие сокеты к UDP-порту).
  • Добавлены новые оптимизации, например, повышена производительность обработчиков сигналов в многопоточных приложениях, повышена скорость работы модуля subprocess в окружении FreeBSD и ускорено присвоение временных переменных (назначение переменной в выражении "for y in [expr]" теперь не уступает по производительности выражению "y = expr"). В целом большинство тестов показывают снижение производительности по сравнению с веткой 3.8 (ускорение наблюдается только в тестах write_local и write_deque):
    
    
    Версия Python                        3.4     3.5     3.6     3.7     3.8    3.9
    --------------                       ---     ---     ---     ---     ---    ---
    
    Variable and attribute read access:
        read_local                       7.1     7.1     5.4     5.1     3.9    4.0
        read_nonlocal                    7.1     8.1     5.8     5.4     4.4    4.8
        read_global                     15.5    19.0    14.3    13.6     7.6    7.7
        read_builtin                    21.1    21.6    18.5    19.0     7.5    7.7
        read_classvar_from_class        25.6    26.5    20.7    19.5    18.4   18.6
        read_classvar_from_instance     22.8    23.5    18.8    17.1    16.4   20.1
        read_instancevar                32.4    33.1    28.0    26.3    25.4   27.7
        read_instancevar_slots          27.8    31.3    20.8    20.8    20.2   24.5
        read_namedtuple                 73.8    57.5    45.0    46.8    18.4   23.2
        read_boundmethod                37.6    37.9    29.6    26.9    27.7   45.9
    
    Variable and attribute write access:
        write_local                      8.7     9.3     5.5     5.3     4.3    4.2
        write_nonlocal                  10.5    11.1     5.6     5.5     4.7    4.9
        write_global                    19.7    21.2    18.0    18.0    15.8   17.2
        write_classvar                  92.9    96.0   104.6   102.1    39.2   43.2
        write_instancevar               44.6    45.8    40.0    38.9    35.5   40.7
        write_instancevar_slots         35.6    36.1    27.3    26.6    25.7   27.7
    
    Data structure read access:
        read_list                       24.2    24.5    20.8    20.8    19.0   21.1
        read_deque                      24.7    25.5    20.2    20.6    19.8   21.6
        read_dict                       24.3    25.7    22.3    23.0    21.0   22.5
        read_strdict                    22.6    24.3    19.5    21.2    18.9   21.6
    
    Data structure write access:
        write_list                      27.1    28.5    22.5    21.6    20.0   21.6
        write_deque                     28.7    30.1    22.7    21.8    23.5   23.2
        write_dict                      31.4    33.3    29.3    29.2    24.7   27.8
        write_strdict                   28.4    29.9    27.5    25.2    23.1   29.8
    
    Stack (or queue) operations:
        list_append_pop                 93.4   112.7    75.4    74.2    50.8   53.9
        deque_append_pop                43.5    57.0    49.4    49.2    42.5   45.5
        deque_append_popleft            43.7    57.3    49.7    49.7    42.8   45.5
    
    Timing loop:
        loop_overhead                    0.5     0.6     0.4     0.3     0.3    0.3
    
  • Удалены многие функции и методы Python 2.7, которые ранее были отмечены устаревшими и в прошлом выпуске приводили к выводу предупреждения DeprecationWarning, включая метод unescape() в html.parser.HTMLParser, tostring() и fromstring() в array.array, isAlive() в threading.Thread, getchildren() и getiterator() в ElementTree, sys.getcheckinterval(), sys.setcheckinterval(), asyncio.Task.current_task(), asyncio.Task.all_tasks(), base64.encodestring() и base64.decodestring().


  1. Главная ссылка к новости (https://pythoninsider.blogspot...)
  2. OpenNews: Гвидо ван Россум предложил включить в Python операторы для сопоставления с образцом
  3. OpenNews: Проект Python намерен перевести отслеживание ошибок на GitHub
  4. OpenNews: Опубликован Python 2.7.18, последний выпуск ветки Python 2
  5. OpenNews: Python переходит на новый цикл формирования значительных выпусков
  6. OpenNews: Выпуск языка программирования Python 3.8
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/53840-python
Ключевые слова: python
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (211) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:14, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Был бы он ещё быстрым.
     
     
  • 2.5, zo0M (ok), 11:26, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +38 +/
    для увеличения скорости выполнения ваших программ, вам стоит посмотреть в сторону других языков программирования.
     
     
  • 3.29, Аноним (29), 12:20, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +12 +/
    А можно медленнее,но что язык сам за меня код писал?
     
     
  • 4.30, zo0M (ok), 12:23, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    AWS Honeycode вам в помощь
     
  • 4.55, Lex (??), 13:30, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    двое_из_ларца.jpg
     
  • 4.203, наше имя легион (?), 12:09, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    и чтобы код писал оооочень медленно
     
  • 3.113, Онаним (?), 19:26, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –10 +/
    > для увеличения скорости выполнения ваших программ, вам стоит посмотреть в сторону языков программирования

    Fixed.

     
  • 2.62, Аноним (62), 13:47, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Там это, 3.8 намного ускорили, 3.9 опять замедлили. В 3.10 опять ускорили что-то там. Вообще, фишечка питона, как раз в том, что он легко делается быстрым с применением cython и c, в крайнем случае есть numba. Достаточно использовать нормальные батарейки, и всё будет быстро работать. Например, брать pycurl вместо requests, в мультипотоке особенно заметна однопоточность питона.

    Я тут набросал скриптец, у меня вышло в 10 раз медленней сишной программы. Но питон легко можно заставить не делать лишнюю бесполезную работу (если ты точно знаешь, что она бесполезная), потенциальная экономия тысячи процентов на каждый запуск.

     
     
  • 3.63, Аноним (62), 13:48, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тысячи процентов экономии за счёт кэшей, ага.
     
     
  • 4.95, Аноним (62), 15:46, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не, ну вы конечно можете мне предложить переписать тот же find с поддержкой дискового кэширования между запусками, но я отправлю вас погулять на одну китайскую гору. А вот для питона это однострочник.
     
  • 3.102, Аноним (102), 18:04, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >Я тут набросал скриптец, у меня вышло в 10 раз медленней сишной программы.

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

     
     
  • 4.112, Аноним (62), 19:06, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем мне Julia? Конкретно тормоза были заметны на os.walk() -- он всё ещё в несколько раз медленней find лупит кэшированные файлы. Хотя я сохранял все файлы в памяти и я не уверен, что find это же делает, не самая быстрая операция. И на то, чтобы написать аналогичный код на баше, я потратил в 10 раз больше времени, и всё равно его хватило только на 1 запуск (замерить, насколько питон будет медленней на аналогичных операциях).
     
  • 4.133, Аноним (133), 23:04, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Адепты джулии уже хуже адептов раста, вам пора пары для размножения образовывать
     
     
  • 5.166, Аноним (166), 11:30, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И Rust, и Julia - это современные языки программирования, соответствующие текущей мысли языкостроения. При этом, оба, довольно эффективные как по скорости написания программ, так и по скорости выполнения. Питон - что-то из каменного века, отравляющее разум молодёжи и мешающее движению научно-технического прогресса.
     
     
  • 6.170, myhand (ok), 12:19, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > И Rust, и Julia - это современные языки программирования, соответствующие текущей мысли языкостроения.

    Это фанатик, не парьтесь.

     
     
  • 7.200, Аноним (200), 21:36, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как будто здесь кто-то кроме фанатиков комментирует.
     
  • 5.199, Аноним (-), 19:48, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Изучил возможности Джулии. Лаконично и изящно. Но не без проблем с компиляцией под систему.
     
     
  • 6.202, Аноним (202), 10:32, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Но не без проблем с компиляцией под систему.

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

     
  • 2.68, Skullnet (?), 14:17, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вот я и о том же. Пусть Python был бы в 2-5 раз медленне программ на си, но не в ~50 раз. В языке и так было достаточно фич и нужно было сделать его быстрее. Слишком много фич овер производительность закапывают Python в могилу. Жаль, язык очень хороший.
     
     
  • 3.148, Аноним (148), 01:24, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не закапывают. И да, на производительность всем плевать - боттлнеки можно написать и на сях а ждать событий можно хоть в 1000 раз медленнее, никто этого не заметит.
     
  • 3.150, leap42 (ok), 04:00, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Вот я и о том же. Пусть Python был бы в 2-5 раз медленне программ на си, но не в ~50 раз. В языке и так было достаточно фич и нужно было сделать его быстрее. Слишком много фич овер производительность закапывают Python в могилу. Жаль, язык очень хороший.

    Меня сейчас заминусят конечно, но попробуйте Go. Серьёзно. Он как раз всего в 2 раза медленнее Си (в среднем, т.е. в 10 раз быстрее Python, тож в среднем), а код пишется местами так же легко как на Python.

     
     
  • 4.151, Аноним (151), 05:44, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Лучше использовать свободные языки, нн связанные с корпорациями.
     
     
  • 5.153, leap42 (ok), 05:52, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Лучше использовать свободные языки, нн связанные с корпорациями.

    кому лучше? что плохого в том, что корпорация оплатит профессионалов-энтузиастов?

     
     
  • 6.221, Аноним (-), 12:15, 13/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >что плохого в том, что корпорация оплатит профессионалов-энтузиастов?

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

     
     
  • 7.222, leap42 (ok), 15:26, 13/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >>что плохого в том, что корпорация оплатит профессионалов-энтузиастов?
    > Плохо то, что google. Вы уже там все дополнительные пакеты для разработки
    > скачиваете с серверов google. То есть в некоторых случаях они примерно
    > могут представить и что вы разрабатываете. И к тому же это
    > как раз та корпорация, с которой станется внедрить трояны прямо в
    > компилятор. А потом еще и возмущаться начнут, мол, что плохого, это
    > ведь по справедливой лицензии google.

    1. гуглу плевать на  наработки любого анонима
    2. Go вам не C++, любой приличный джун понимает весь не ассемблерный код компилера (и да, он опен-сорсный, любой из 3-х)
    3. лицензия bsd

     
     
  • 8.223, Аноним (-), 17:13, 13/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это с каких пор гуглу стало плевать на личные данные пользователей Это вы к чем... текст свёрнут, показать
     
     
  • 9.224, leap42 (ok), 18:03, 13/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    на личные данные конечно не плевать их можно использовать , плевать на наработк... текст свёрнут, показать
     
  • 5.192, Аноним (202), 17:03, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    это Ruby что ли? Как пример чистого языка, не связанного с корпорациями?
     
  • 3.159, myhand (ok), 08:01, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там к производительности, скажем так, странное отношение.

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

     
  • 3.208, фыва (?), 13:57, 09/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Скудоумным не мешало бы уже понять, что для разных задач надо брать разные языки программирования. Мне почему-то слоупочность петона вообще никак не мешает, а вот синтаксис языка и развитая стандартная библиотека позволяют делать очень многое.

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

     
     
  • 4.213, Skullnet (?), 01:19, 10/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я не требую от питона большой производительности, просто не хочу, чтобы инерпретатор языка был совсем уж медленным.
     
  • 3.214, economist (?), 14:20, 10/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В реальных задачах Python медленнее С/С++ в 5-9 раз. Это досадно, но это всего лишь секунды в день, за которые все равно заплатит работодатель.
     
  • 2.78, Аноним (78), 14:47, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > В целом большинство тестов показывают снижение производительности по сравнению с веткой 3.8

    Эх... Узнаю свой любимый пихон. Именно этого я и ждал.

     
     
  • 3.118, Денис (??), 19:51, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > В целом большинство тестов показывают снижение производительности по сравнению с веткой 3.8

    А как же "устаревшие технологии надо выкидывать?"
    Повременим с обновлением.

     
  • 2.147, Аноним (148), 01:17, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем? У тебя есть боттлнек и ты можешь это доказать? Ну так перепиши только его на плюсах и используй дальше из питона.
     

     ....большая нить свёрнута, показать (34)

  • 1.2, Аноним (2), 11:14, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Питон превращается во второй С++
     
     
  • 2.7, zo0M (ok), 11:26, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    С чего такой вывод?
     
  • 2.8, llolik (ok), 11:28, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Ну так "больше фич богу фич". Как этот сахар ложиться в язык и отразится на читаемости - да по-барабану. И, как результат, из относительно стройной изначальной конструкции языка получается мрачное нечто.
     
     
  • 3.10, zo0M (ok), 11:30, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    какое-то очередное нытье без маломальской аргументации и фактов.
     
     
  • 4.22, None (??), 12:06, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Аргументация? Пожалуйста.
    Синтаксис нового питона развивается контринтуитивным образом. Сначала был for...else, который можно осознать, только глядя на конкретный сценарий применения.
    Теперь эту палку слияния всунули, которая похожа на |,  которое OR, но действует в противоположную сторону - если бы она была как or, предполагалось бы, что если есть в первом дикте элемент, из второго брать не надо.
    Взяли бы какой-то другой знак - вопросов бы не было.
    Ну хотя бы сделали бы что-то типа <| - чтобы было понятно, что правый dict перекрывает левый.
    А вот это вот переиспользование старых операторов в новых смыслах - не думаю что является хорошей практикой.
     
     
  • 5.60, НяшМяш (ok), 13:43, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Теперь эту палку слияния всунули, которая похожа на |

    Даже в JS было сделано красивее и универсальнее.



    const x = { }
    const y = { }
    const z = {...x, ...y}



    Так же оператор и с массивами работает.

     
     
  • 6.65, Аноним (65), 14:02, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В Python это все работало задолго до JS

    x = {}
    y = {}
    z = {**x, **y}

     
     
  • 7.85, НяшМяш (ok), 15:18, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Это и странно - зачем при существующем нормальном синтаксисе (который даже в других языках есть) вводить неведомо что.
     
  • 7.136, Аноним (136), 23:47, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, задолго. Аж три года назад добавили.
     
  • 5.140, rshadow (ok), 01:04, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Строки "+" можно, массивы "+" можно, а словари почему то отдельным оператором. Скорее всего потому что "математически" разные?
     
  • 5.152, Аноним (151), 05:51, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > если бы она была как or, предполагалось бы, что если есть в первом дикте элемент, из второго брать не надо

    or — это двоичное _сложение_

     
     
  • 6.195, PetrG (ok), 18:27, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сложение подразумевает перенос.
    1 + 1 == 10
    1 or 1 == 1
     
  • 4.25, llolik (ok), 12:13, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну, если нужно примеров, да хотя бы вот из предыдущего релиза пример кода


    while (block := f.read(256)) != '':
            <какая-то святотень>

    нет, я конечно понимаю, что операция присваивания внутри выражения полезна, но смешивать два синтаксиса присваивания - это как-то странно. А если ещё это и while ... else: , что тоже не совсем очевидно как работает, если ты не опытный разраб на python.

    Вот это

    def f(a, b, /, c, d, *, e, f):

    тоже из предыдущего релиза - это что? Нет, мне понятно зачем это сделано, но мне не понятна семантика. И также непонятно, почему надо упрекать тот же Rust/C++ в неочевидности, когда в python, который упрекать видимо не следует, всё отчётливей проявляется всё тоже самое.

     

  • 1.3, Аноним (3), 11:23, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Чем оно лучше ruby?
     
     
  • 2.6, nedprofit (ok), 11:26, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Тем, что его сейчас везде где только можно популяризируют среди школьников и студентов. По крайней мере, так в СНГ.
     
     
  • 3.21, Im banana man (?), 12:04, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Раньше в школах учили BASIC, теперь учат Python. Я считаю, это хорошо
     
     
  • 4.26, nedprofit (ok), 12:16, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Какой язык наиболее хорош в качестве первого такая вызывающие споры тема, что я пожалуй вообще не стану давать этому какую-то свою оценку.
     
     
  • 5.31, Аноним (31), 12:30, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    На фоне BASIC'ов и Turbo Pascal'ей - однозначно, Python лучше.
     
     
  • 6.32, 1 (??), 12:33, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Pascal - лучший для изучения язык.
    Там пробел от <Tab> не отличается.
     
     
  • 7.36, Аноним (31), 12:38, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Там в принципе все whitespace, не несущие смысловой нагрузки игнорируются парсером. Можно вообще писать портянку без отступов, не парясь выстраивать код лесенкой. Очень плохая практика. В отличие от Python'а, приучающего форматировать код, потому что если ты забьёшь - он не будет работать.
     
     
  • 8.45, Аноним84701 (ok), 12:50, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Кхе 128567 code def _ _ , __ ... большой текст свёрнут, показать
     
     
  • 9.110, Аноним (31), 18:59, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это нужно постараться и извернуться А вот в пасквиле - запросто просто не стави... текст свёрнут, показать
     
  • 8.146, rshadow (ok), 01:15, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Джуны пишут партянки на любом языке Нахреначат переводов строк например или... текст свёрнут, показать
     
  • 6.56, Lex (??), 13:34, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    На фоне бейсика и паскаля практически все нынче будет "лучше".
    Но в случае с первым ЯП ИМХО Си был бы лучше
     
     
  • 7.83, mumu (ok), 15:15, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Си не учит программировать. Он учит считать байты и чистить кучи. Нельзя просто взять и реализовать какой-то шаблон проектирования на Си, не выстрелив себе в ногу с десяток раз.

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

     
     
  • 8.114, Онаним (?), 19:29, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Си как раз учит программировать А чтобы программировать - надо выстрелить в шаб... текст свёрнут, показать
     
     
  • 9.115, Im banana man (?), 19:32, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Прикольный взгляд на мир... текст свёрнут, показать
     
     
  • 10.116, Онаним (?), 19:35, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Который выручал уже 100500 раз, пока шаблонеры месяцами шаблонят ... текст свёрнут, показать
     
     
  • 11.218, Im banana man (?), 14:00, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Тоже верно Но я на C давно разрабатывал, но скоро вернусь снова... текст свёрнут, показать
     
  • 8.128, Ilya Indigo (ok), 22:10, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нельзя просто взять и реализовать что угодно на чём угодно , не выстрелив себ... текст свёрнут, показать
     
  • 8.206, Lex (??), 15:36, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем его реализовывать и делать это на сях Программирование, как таковое, э... большой текст свёрнут, показать
     
     
  • 9.219, Im banana man (?), 14:01, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Субъективный взгляд на вещи Не надо так ... текст свёрнут, показать
     
     
  • 10.225, Lex (??), 09:40, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Человек в принципе существо субъективное... текст свёрнут, показать
     
  • 4.46, Аноним (46), 12:51, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Между ними был Паскаль.
    И все три наносят вред.
     
  • 4.120, Денис (??), 19:54, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А детей учат Python'у? Какой ужас.
     
     
  • 5.121, Аноним (62), 20:22, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > А детей учат Python'у? Какой ужас.

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

     
     
  • 6.122, Аноним (-), 20:29, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В топовых мировых вузиках учат

    вообще-то, в топовых вузиках уже во всю идёт миграция на Julia. Потому как не вполне понятно, для каких целей может быть нужен питон в ближайшей перспективе. Уж явно, не для научных сотрудников и не для enterprise apps он может быть нужен.

    https://computationalthinking.mit.edu/Fall20/

     
     
  • 7.123, Аноним (62), 20:45, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да не, количество и качество батареек в пользу питона. А что там Julia умеет? Матрицы складывать на видеокарте хотя бы умеет? Ну, наверное, умеет. Нейронки клепать там, не знаю, тут нужен какой-нибудь pytorch или keras. Всё упирается в количество и качество готового кода. Хотя, я посмотрел тут https://juliabyexample.helpmanual.io/ и знаешь, наверное, лучше по расту упороться.
     
     
  • 8.127, Аноним (202), 21:19, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Откуда в батарейках питона качество Упарывайтесь чем хотите, но технологически ... текст свёрнут, показать
     
  • 6.124, Денис (??), 20:46, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так вот откуда столько быдлокода.
     
     
  • 7.125, Аноним (62), 20:51, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Значительную часть опенсорса пишут студенты, больше никто бесплатно работать не согласен обычно.
     
     
  • 8.129, Аноним (202), 22:24, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Студенты хоть и пишут opensource, но, в основной своей массе, бесполезный Полез... текст свёрнут, показать
     
  • 3.47, Аноним (46), 12:56, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Именно так и нужно поступать, если целью ставится нанесение максимального ущерба.
     
  • 3.48, Аноним (48), 12:57, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну не только в СНГ. Он также очень распространён в странах где плохо с оффлайн работой. Например, Индия, Филипины, Индонезия. Замечал у них огромные питон-сообщества.
     
  • 2.17, Аноним (17), 11:51, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хз что там щас у руби со скоростью, но раньше он сливал по этому параметру.
     
     
  • 3.23, nedprofit (ok), 12:08, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну, Матц обещает, что на католическое Рождество выложит Ruby 3.0, которая будет в три раза быстрее по сравнению с предыдущими версиями. Не знаю, а как будет на деле, но на сей момент эта возможная разница в быстродействии имеет место быть.
     
     
  • 4.54, Социально Жевал Воевал (?), 13:25, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Только не быстрее предыдущей версии, а именно быстрее 2.0 в три раза. И в целом всё идёт к тому.
     
  • 4.157, funny.falcon (?), 07:59, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    При все моей любви к  Ruby, цель 3x они скорее всего пофейлят. Надеюсь, что ошибаюсь.
     
  • 3.105, Аноним (102), 18:05, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ruby давно быстрее питона на типовых задачах
     
     
  • 4.137, Аноним (136), 23:50, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Типовая задача для обоих сабжей: удалить к чертям эту нечисть со своей системы. Думаю, справляются одинаково быстро.
     
  • 4.158, funny.falcon (?), 08:01, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Очень спорное утверждение. Особенно учитывая, что типовые задачи питона сейчас несколько отличаются от типовых задач рубей.
     
     
  • 5.165, Аноним (165), 11:26, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если имеете в виду ML, то питон тут - чистая обёртка, и о его собственной производительности говорить не приходится. Остальные задачи - сильно пересекаются с Ruby.
     
  • 2.139, Аноним (148), 01:03, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тем что живо и развивается.
     

     ....большая нить свёрнута, показать (39)

  • 1.4, Аноним (4), 11:24, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >> воскрешённые объекты

    Некроманты на выходе

     
     
  • 2.24, YetAnotherOnanym (ok), 12:08, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Реаниматоры же!
     

  • 1.9, zo0M (ok), 11:29, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Хороший такой релиз, без революций)
    Всех "сочувствующих" поздравляю!
     
     
  • 2.38, Аноним (-), 12:44, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Скоро всем миром будем выпиливать тройку т.к будет совсем несовместима с четверкой. Уря товарищи !
     
     
  • 3.43, zo0M (ok), 12:46, 06/10/2020 Скрыто модератором
  • –4 +/
     
  • 3.98, w0sian (?), 16:06, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Так еще двойку даже не выпилили.
     
     
  • 4.100, Аноним (-), 17:13, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там чуть чуть еще осталось, вот закончим с двойкой и самое время миру лицезреть новую, несовместимую версию.
     

  • 1.11, Георгий (??), 11:31, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Зря они вообще продолжают его менять. Работает - не трогай.
     
     
  • 2.12, zo0M (ok), 11:33, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –7 +/
    что за горячечный бред.
    сами то понимаете, что пишете?
     
  • 2.13, Георгий (??), 11:35, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я имею ввиду сам язык. Добавление новых операторов особенно.
     
     
  • 3.20, Аноним (31), 12:03, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Operator overloading не слышали? Вот и до Python 3.9 у словаря можно было переопределить оператор |. Просто теперь будет один переопределённый оператор из коробки.
     
  • 2.33, myhand (ok), 12:34, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Идеальным языком является тот, что умеет адекватно обстоятельствам меняться.
     
     
  • 3.40, Аноним (-), 12:46, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    C шикарен, 89. Впредверьи новой эры - 99 , но тоже погорячились.
     
     
  • 4.75, Аноним (62), 14:41, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Писать не на gnu11 было довольно болезненно. Сейчас перешли на gnu17. Писать без гццизмов тоже довольно болезненно. Тебе вместо 69 рекомендую как эталон для фапа брать вариант 70 года, всё равно ты писать на этом ты не будешь.
     
     
  • 5.77, Аноним (62), 14:41, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    *вместо 89
     
  • 5.178, Урри (?), 13:27, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вы путаете стандарт языка и фичи стандартных библиотек.

    Текущий стандарт - c99, и он божественен. А то, что у вас без gnu11 mmap не позволяет создавать не привязанные к файлу области в памяти - так это ограничение ОС и стандартной либы, а не языка.

     
     
  • 6.189, Аноним (62), 16:01, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я не знаю чем c18 и c2x отличаются от c11, но c11 определённо упрощает жизнь относительно c99. То, что в студии c11 не поддерживается, это ваши проблемы, писать на сишечке в студии это содомия ещё та.
     

  • 1.14, xi (??), 11:40, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    json.loads() не удалён. "The encoding parameter of json.loads() has been removed." - это, всё-таки, другое.
     
     
  • 2.149, anonononim (?), 03:36, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    а чем тебе json.loads() помешал?
     

  • 1.15, Аноним (17), 11:50, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Годно. Я его хоть и пользую только для написания тестов и всякой мелочи, но хорошо, что язык развивается.
     
     
  • 2.81, Аноним (81), 15:11, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Что именно в этом хорошего? Как по мне наоборот хорошо если синтаксис и операторы языка никогда не меняются. Это значит что при проектировании языка подумали головой и сделали сразу как надо. Максимум что нужно развивать это стандартную библиотеку. Дополнять, оптимизировать её.
     
     
  • 3.90, Аноним (62), 15:35, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Дататайпы и хинты это 10/10, я всегда мечтал о них в питоне (attrs, да). И := опять же годнота, позволяет выкинуть сразу несколько строк, особенно вкупе с x comprehension. Я даже не говорю про корутины и замыкания, их тоже совершенствуют. Выкидывать мусор из стандартной библиотеки конечно нужно регулярно, тут я не спорю.
     
  • 3.141, Аноним (148), 01:06, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Это значит что при проектировании языка подумали головой и сделали сразу как надо

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

     
  • 3.156, myhand (ok), 07:51, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > значит что при проектировании языка подумали головой и сделали сразу как надо.

    На планете Земля такого не умеют, смирись.

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

     
  • 3.179, Урри (?), 13:31, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ему просто нравится возвращаясь через три года к написанному и отлаженному коду переписывать его под новую версию языка, потому что старой уже давно нету и она не поддерживается.

    Почему я могу просто взять любой пример 20-летней давности на С, написать gcc ..., собрать и запустить без лишних телодвижений? (ну ладно, не любой, а 9999 из 10000). И почему я не могу запустить 9 из 10 примеров на питоне, найденных в интернете в интересующей меня статье только потому, что они "устарели" на четыре года?

     
     
  • 4.191, Аноним (62), 16:58, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это не работает. то что 10 лет назад не было ошибкой, сегодня ей является, и поведение непредсказуемо. Хорошо, если хоть как-то предупредит. Рассказывайте про си где-нибудь в другом месте. У питона как раз примерно 100% совместимость -- проблема будет, только если ты некрофил. Очередные прохладные сказки, в общем.
     

  • 1.16, alcortazzo (ok), 11:50, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Спасибо за статью
     
  • 1.18, ryoken (ok), 11:52, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Чо, щас portage будет при случае в морду тыкать вариантом python_single_target_python3_9 в куче с прочими? :D (3_6, 3_7, 3_8)
     
     
  • 2.64, Аноним (62), 13:57, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Добавь в файл с питоноюзами

    */* PYTHON_TARGETS: python3_8 python3_9
    */* PYTHON_SINGLE_TARGET: -* python3_9

    если этого не сделать и вручную перебирать, то придётся для нескольких пакетов прописать по типу

    dev-util/itstool PYTHON_SINGLE_TARGET: -python3_7 python3_8

    Но я не вижу смысла, 3.8 очень хороший, на него стоило перейти с 3.6, а 3.7 был не очень хороший. Наверно стоило глобально отключить 3.7, но у меня там всего 3 пакета с ним вышло и так.

     
     
  • 3.67, ryoken (ok), 14:09, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Добавь в файл с питоноюзами
    > */* PYTHON_TARGETS: python3_8 python3_9
    > */* PYTHON_SINGLE_TARGET: -* python3_9

    Я пока ещё маленький гентовод, в make.conf хватит вот первую строку добавить? Только с pytho3_8? (И пересобрать всё, ага :D ).

     
     
  • 4.71, Аноним (62), 14:26, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У меня PYTHON_TARGETS="python3_6 python3_8" в make.conf, single target управляю per package. Могу выбрать только 3.8 или только 3.6 и не собирать остальное. Просто некоторые пакеты хотели непременно 3.7 (так в ебилде прописано), даже когда стало можно поменять на 3.8, а 3.7 в системе вообще не было. Очередные гентушные заморочки с кривыми ебилдами. Там ещё 2.7 был, теперь уже проще должно быть.
     
  • 3.82, Аноним (82), 15:13, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    [1]   python3.7
      [2]   python3.9 (fallback)
      [3]   python3.8 (fallback)
      [4]   python2.7 (fallback)
    Совсем не плох.)
     
     
  • 4.87, Аноним (62), 15:22, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
      [1]   python3.8
      [2]   python3.6
      [3]   python3.9 (fallback)

    Лично я вздохнул с облегчением, когда 2 самоудалился. А с 3.7 это ты напрасно.

     
     
  • 5.89, Аноним (82), 15:34, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня много старых приложух и им требуется вторая питоняка и к тому же собираю систему с гтк3 не люблю куте.)
     
  • 2.142, Аноним (148), 01:09, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А можно подробнее, интересно что это за гентопроблемы.

    Я-то во FreeBSD поменял DEFAULT_VERSIONS+=python=3.8, пересобрал py3* и про старые версии забыл навсегда. Сейчас сделаю также до python=3.9 как завезут.

     
     
  • 3.160, ryoken (ok), 08:25, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Я-то во FreeBSD поменял DEFAULT_VERSIONS+=python=3.8, пересобрал py3* и про старые версии
    > забыл навсегда. Сейчас сделаю также до python=3.9 как завезут.

    Ну системы всё же разные, не знаю как там у вас пакеты ставятся при возможности использования нескольких версий бидона :). Мне emerge пишет, что начальник, определись, вот тут вот надо кокретную версию из 3-х в use-флаге поставить :). Ну и ставлю пока что 3.6.

     

  • 1.27, Аноним (27), 12:18, 06/10/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –10 +/
     
     
  • 2.35, Аноним (27), 12:37, 06/10/2020 Скрыто модератором
  • –6 +/
     
     
  • 3.73, Аноним (148), 14:30, 06/10/2020 Скрыто модератором
  • +1 +/
     
  • 3.155, myhand (ok), 07:46, 07/10/2020 Скрыто модератором
  • +/
     

     ....ответы скрыты модератором (3)

  • 1.28, Аноним (29), 12:19, 06/10/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • +3 +/
     
     
  • 2.34, myhand (ok), 12:35, 06/10/2020 Скрыто модератором
  • +1 +/
     

  • 1.41, Аноним (41), 12:46, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    С версии 3.4 питон только хуже и хуже. С асинхронностью вообще, теперь каждую библиотечку нужно преписать чтобы она поддерживала "кооперативую многозадачность" как было в DOS. И даже sleep у нас теперь переписаный. Но это не дает настояющую многопоточность, а давайте вкрутим возможность запускать несколько интерпритаторов! Как это было в sh 40 лет назад. И сверху намажем общую память, гениально!
     
     
  • 2.58, 1 (??), 13:38, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Erlang ===> там
     
  • 2.76, Аноним (148), 14:41, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Во-первых, переписывать ничего не надо Синхронный код вообще никак и нигде не м... большой текст свёрнут, показать
     
     
  • 3.84, 1 (??), 15:17, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > кооперативная многозадачность это офигенно, потому что несёт меньше оверхеда, обеспечивает меньшие задержки и большую предсказуемость.

    Блин ... Аж прослезился ... Прям выдержка из рекламы NetWare 3.1

     
     
  • 4.168, Аноним (168), 11:53, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И windows 3.x
     

  • 1.44, Аноним (44), 12:47, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Очередное «быстрее сильнее тормознее». Какой вообще смысл трогать синтаксис? Лучше работайте над оптимизацией под капотом. А то это похоже на развития ради развития. Очередной смузи way.
     
     
  • 2.209, Прохожий (??), 16:32, 09/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как одно мешает другому? Новый синтаксис - для улучшенной эффективности программирования. Оптимизация под капотом - для улучшенной эффективности выполнения кода.
     

  • 1.49, m.makhno (ok), 13:03, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    блин, все хаят питона, но он же неспроста идёт по умолчанию во всех значимых дистрах - ни go ни прочего php в них по дефолту нет
     
     
  • 2.50, имяимя (?), 13:11, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А как же perl?
     
     
  • 3.52, Аноним (27), 13:14, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А кто из тутошних каментеров может в Perl?? Поланонимуса!
     
     
  • 4.59, 1 (??), 13:39, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да легко.

    Просто Perl - Это чтоб на awk и sed не писать.
    А питонистам важны пробельчики.

     
     
  • 5.70, Аноним (29), 14:24, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Перл - эталон стабильности синтаксиса
     
     
  • 6.88, Аноним (-), 15:24, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Raku с тобой не согласен.
     
     
  • 7.103, Аноним (103), 18:04, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Перл 7 передает твоему раку привет. Сохранив совместимость с Перл 5
     
  • 3.180, Урри (?), 13:34, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    и баш. и С.
     
  • 2.51, Аноним (27), 13:13, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > все хаят питона, но он же неспроста идёт по умолчанию во всех значимых дистрах

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

     
  • 2.61, Lex (??), 13:44, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Потому что на момент включения в осн дистры он был чуть ли не единственным относительно нормальным и удобным скриптовый ЯП.. еще и с типо_ООП( раньше это считалось однозначно круто и вообще, ООП спасет мир, сейчас - возникает все больше сомнений )

    То были темные времена, когда в мире ИТ не было ничего слаще редьки и краше рубинсовских красоток под 200кг живого веса :)

     
  • 2.66, Аноним (66), 14:08, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Будешь ныть — перейдут на пхп по дефолту.
     
     
  • 3.69, Аноним (29), 14:23, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    ПХП в тысячу раз лучше джаваскрипта
     
  • 2.79, Онаним (?), 15:02, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В основном из-за легаси в скриптах конфигурации.
    Мы всю конфигурацию хостингов и прочих систем например на PHP строим, и у нас таким же образом PHP во все поля.
     
     
  • 3.92, Анонец (?), 15:36, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    больные yблюдки
     
     
  • 4.96, a (??), 16:03, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Орел, залогинься!
     
  • 4.111, Онаним (?), 19:06, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > больные yблюдки

    В отличие от систем авторства здоровых девляпсов, всё таки работает, и каши не просит годами.

     
     
  • 5.144, Аноним (148), 01:12, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, мне такое с гордостью втирал один тип с интернет магазином на php3. А потом его хостинг накрылся, и он уже никуда с этим магазином не переехал, а пока платил кучу бабла за переписывание все клиенты разбежались.
     
     
  • 6.162, Онаним (?), 09:51, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну конкретно эти подсистемы переехали с PHP 4 на PHP 5, с PHP 5 на PHP 7, сейчас PHP 8 на подходе.
    С должной поддержкой и раз в пятилетку небольшим рефакторингом, разумеется.
    Самое жёсткое было между 4 и 5, сейчас всё уже проще.
     
  • 6.163, Онаним (?), 09:53, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кстати о хостингах. Мы для клиентов вполне себе держим legacy, у нас представлены все версии от 5.2 до 7.4 ныне, на выбор. Платформа меняется, а билды легаси трансляторов под новые платформы мы поддерживаем самостоятельно. То есть в этом плане наши клиенты более защищены, чем пресловутый товарищ. Потихоньку все переходят на 7.x, но конкретно мы никого не торопим.
     
     
  • 7.164, Онаним (?), 09:57, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    При этом у нас даже для 5.2 собран opcache и обновлён встроенный коннектор MySQL, дабы работал с MariaDB 10.x (сейчас 10.4), поддерживается почти одинаковый набор расширений. Архитектура - apache 2, mpm-itk, по инстансу на версию интерпретатора в нативном виде - никаких плясок с cgi. И фронтенд на haproxy, который разруливает хосты по инстансам.
     
  • 7.169, myhand (ok), 12:18, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > билды легаси трансляторов под новые платформы мы поддерживаем самостоятельно.

    Т.е. баги правите, или как обычно?  Ну я так и думал...

     
     
  • 8.182, Онаним (?), 13:35, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кое-что бэкпортим Критичное для функционирования Но для тех, кто по тем или ин... текст свёрнут, показать
     
     
  • 9.194, myhand (ok), 17:58, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, они в домике Кстати, не только баги используемого ПО для них обычно... текст свёрнут, показать
     
     
  • 10.197, Онаним (?), 19:36, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну как только их дыркософт начнут ломать - вылезут из домика и переедут Мы зат... текст свёрнут, показать
     
  • 10.198, Онаним (?), 19:37, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А расклад такой, что куча 5 2 шников уже энный год никуда не переехала и даже не... текст свёрнут, показать
     
  • 2.119, Денис (??), 19:52, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня в Xubuntu 16.04 его нет.
    Точнее, я сам поставил 3.8 из PPA.
     
  • 2.134, Аноним (-), 23:11, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >ни go ни прочего php в них по дефолту нет

    Хаят, чтобы подменить на какой-нибудь "триппер", вроде Go, Rust, или Julia. Потому, что все три по большей части никому не нужны. А у PHP как раз пользователей хватает, потому он тут в общем-то не при делах.

     
     
  • 3.173, Аноним (173), 12:42, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот не надо Julia записывать в конкуренты PHP. В той нише, где есть Julia, конкуренты у неё только R и Matlab. И PHP тут точно никому не нужна ни в какой форме. Если только не для иллюстрации фильма Хичкока.
     

  • 1.80, Аноним (148), 15:04, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > поддержка операторов слияния "|" и обновления "|=",
    > Во встроенную коллекцию типов включены list, dict и tuple
    > В стандартную библиотеку добавлен модуль zoneinfo
    > Предложены новые методы для удаления префиксов и окончаний строк

    Очень нравятся эти мелкие улучшения, видно как язык полируется до идеала. Заюзал в своём коде всё перечисленное, выкинул pytz - красота.

     
  • 1.86, Аноним (-), 15:22, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ждём когда Python 3.9 устареет, и выйдет  Python 4.0
     
     
  • 2.91, Аноним (148), 15:36, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Будет 3.10, петросян.
     
     
  • 3.138, Аноним (136), 23:55, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Так он поэтому и _ждёт_. А устареет он к 2025-ому (пруф https://www.python.org/dev/peps/pep-0596/#lifespan), могут и успеть придумать py4000.
     
     
  • 4.205, Аноним (-), 14:14, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А чо так долго а? Питон 3.9 должен через год устареть!
     

  • 1.94, ИмяХ (?), 15:43, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > поддержка операторов слияния "|" и обновления "|="

    А операторы инкремента/декремента для целый чисел не завезли ещё?

     
     
  • 2.97, a (??), 16:04, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    не по смузи это, понимаете ли
     
  • 2.161, Аноним (161), 08:32, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это очень важные операторы. Без них многопоточность ломается.
     

  • 1.99, Аноним (99), 16:52, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    пускай медленный, но чтобы скорость написания кода росла и была быстрой
     
     
  • 2.106, Аноним (102), 18:08, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это вам на Ruby. Но там, к сожалению, и со скоростью выполнения ситуация лучше.
     
     
  • 3.109, Аноним (99), 18:55, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    у питона пакетов больше мне кажется, а что руби крут?
     
     
  • 4.172, Аноним (172), 12:32, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Когда стоит вопрос о реальной разработке, обычно берут не все имеющиеся пакеты, а те единичные, которые реально необходимы. С этим у Ruby полный порядок. В отношении же языка, ну так код на Ruby чище, компактнее и человечнее. Его легче читать, легче поддерживать. То есть, программисты на Ruby, конечно, дороже, чем питонисты. Но и эффективность их сильно выше.
     
     
  • 5.174, Аноним (99), 12:48, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Когда стоит вопрос о реальной разработке, обычно берут не все имеющиеся пакеты, а те единичные, которые реально необходимы.

    DRY && YAGNI

     
  • 5.210, Прохожий (??), 17:37, 09/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    По поводу "эффективности" программистов на Ruby. Уже который год одна довольно крупная крипто-биржа с каждым апгрейдом рассказывает, как они в очередной раз подняли производительность своего говно-софта. И каждый раз спустя какое-то время биржа не выдерживает наплыва пользователей. Уже даже несмотря на довольно жёсткие ограничения по количеству одновременных коннектов.
     
  • 4.215, economist (?), 14:26, 10/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я поискал за вас
    pipy - 266k
    rubygems - 166k

    Пакеты pipy содержат тысячи "толстых" приложений, ну типа spyder, такого изобилия под руби нет, в основном мелочевка.  

     
  • 3.185, Максим (??), 13:49, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Руби давно протух. Все вакансии только на уже существующие проекты, которые нужно поддерживать.
     
     
  • 4.187, Аноним (187), 15:06, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это можно сказать про любой язык прошлого века.
     

  • 1.101, Аноним (101), 17:20, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    >Добавлены новые оптимизации
    >большинство тестов показывают снижение производительности

    Это успех. Мне почему-то кажется, что авторы CPython не совсем правильно понимают значение термина "оптимизация".

     
  • 1.107, niger (??), 18:37, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Ух ты, сколько всего замечательногою Ну теперь C/C++, Rust и Go точно конец.
     
     
  • 2.176, Аноним (176), 12:54, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Придется этим языкам писать библиотеки для Питона. Потому как без Питога эти языки не нужны.
     

  • 1.117, Денис (??), 19:49, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Теперь можно писать так

    Опять совместимость сломали.

     
     
  • 2.145, Аноним (148), 01:15, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Добавление новых фичей в язык не может ломать совместимость. Но их использование в коде поднимает требования к минимальной версии языка, да. И правильно делает - паразитов думающих что они могут на py27 один раз написать, а потом им по гроб жизни его бесплатно поддерживать будут надо гнобить.
     
     
  • 3.183, Урри (?), 13:40, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Оракл то же самое про джаву говорит. А в результате мне приходится таскать с собой бинари 8й чтобы не переделывать проект вод все новые и новые апдейты.

    Разработчики ведроид студии, кстати, со мной солидарны - они тоже бинарники с собой таскают.

     

  • 1.126, аноним еще один (?), 21:05, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Python 2.7 зато теперь стабильный :)
     
  • 1.130, Аноним (130), 22:34, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Python очень годный язык.
    Чем больше пользусь тем больше нравится.

    Переписал на него кучу проектов, все просто суепер.

    Так привык к строгой табуляции кода, что даже на С++ раствляю все в py стиле.

     
     
  • 2.143, foo (?), 01:10, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Переписал на него кучу проектов

    С С++?

     
  • 2.171, Аноним (202), 12:28, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Попробуйте, наконец, какой-нибудь ЯП из этого века.
     
     
  • 3.190, Аноним (190), 16:38, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, какойнибудь недоделанный, сырой, без инфраструктуры и постоянно ломающий совместимость.

    Но зато новый и модный. То-то на них -100 софта написано. А если где найдётся что то настолько кривое и косое что даже софтом то не назвать

     
     
  • 4.193, Аноним (193), 17:56, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, какойнибудь недоделанный, сырой, без инфраструктуры и постоянно ломающий совместимость.

    Речь не про питон. А про что-нибудь современное

     
  • 2.184, Урри (?), 13:40, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Слишком жирно, товарищ.
     

  • 1.131, Аноним (131), 23:02, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Задействован новый парсер PEG (Parsing Expression Grammar), который пришёл на смену парсеру LL(1).

    Это очень плохо. LL(1) - это не только производительность, но ещё и простота и совместимость хоть с LL, хоть с LR, хоть с PEG. Я даже инструмент для автоматической трансляции грамматик между различными парсерами ра0ных языков написал.

     
  • 1.132, Аноним (131), 23:03, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Добавлен модуль graphlib

    а как же netwokx?

     
  • 1.135, Аноним (136), 23:28, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Захожу такой на опеннет, а там новость про питон. Ну думаю, надо комментарии почитать. А там через один хвалят, говорят хороший язык и фичи интересные.

    Так вот, вопрос. Чё происходит вообще?

     
     
  • 2.154, Echo (?), 06:14, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Похоже ты отстал от жизни, или ни разу не пробовал что-то больше hello world.
     
  • 2.167, Аноним (167), 11:32, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Питон принято любить. Школию 10 лет назад объяснили, что это лучший язык для всего, они передают это дальше. Надолго это, в общем.
     
     
  • 3.175, Аноним (176), 12:52, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это второй лучший язык в любой сфере.
     
     
  • 4.177, Аноним (177), 12:59, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    То есть, другими словами, питон - всегда лузер в любой сфере?
     
     
  • 5.211, Прохожий (??), 17:43, 09/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если из доступной десятки всегда занимать второе место - какой же это лузер?
     
  • 3.186, Аноним (-), 13:54, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так ты не слушай, а сам пробуй.
     
     
  • 4.188, Аноним (136), 15:12, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Первая доза бесплатно?
     

  • 1.196, _ (??), 18:33, 07/10/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –1 +/
     
  • 1.204, Аноним (-), 13:20, 08/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Программирование пробелами очень знатно доставляет, но чтоб это не превращать в рутину - давайте постоянно менять синтаксис. Ооо пасаны, идея ! А давайте версии несовместимыми между собой еще сделаем?!!
     
     
  • 2.212, Прохожий (??), 17:48, 09/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты так возмущаешься, как будто другие языки постоянно не меняют синтаксис, подстраиваясь под современность. То, что между версиями (2 и 3) совместимости полной нет - это, конечно, не есть хорошо. Но не особо критично, ИМХО. Есть же всякие трансляторы, которые за тебя всё сделают. Да, некоторые телодвижения надо проделать, неприятно. Но, опять же, не критично в свете того, какую производительность при разработке софта даёт Питон.
     
     
  • 3.216, Аноним (-), 15:35, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Но, опять же, не критично в свете того, какую производительность при разработке софта даёт Питон.

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

     
     
  • 4.217, Другой аноним (?), 13:59, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Куча батареек. То есть не надо выдумывать велосипеды. Нет нужды следить за переполнением чисел - за этим интерпретатор следит. Нет нужды заниматься компиляцией (это правда ко всем интерпретируемым языкам относится). Легкая работа со строками вообще, и в частности с UTF-8. Это только то, что сразу вспомнилось, но и этого достаточно.
     
     
  • 5.220, Другой аноним (?), 14:03, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Опечатался. Слова "переполнением чисел" следует читать, как "переполнением типов".
     

  • 1.207, economist (?), 20:32, 08/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Да никто пробелами не форматирует, откуда вы все это берете?
    отступ делается Tab-ом, во всех программах.

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру