vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Вышел новый питон. А в нем добавили pattern matching в стиле ML-ей, эрланга и Rust-а. Интересно, будет ли оно пользоваться популярностью, и если да - как скоро.

До сих пор как-то по-моему python развивался в противоположном направлении и высокоумные теоретические конструкции вроде lambda в нем норовили объявить deprecated. А тут вот полноценный pattern matching.

В остальном как-то ничего особо принципиально нового там не видно. Эх, избавиться бы поскорее от дистрибутивов с 3.2 и 3.4, чтобы можно было писать без огляднки на то что "вот это поддерижвается только с 3.5, а это - только с 3.8".

Кстати, у меня вот тут вчера на сервере опять запрос сертификтов с let's encrypt сломался. Потому что это было первое обновление сертификатов после апгрейда на bullseye. И acme_tiny вдруг внезапно обнаружила что просто "python" в системе больше нет. А догататься поискать python2 или python3 (оно вообще-то и с тем и с тем умеет) - шебанги у нас не настолько умны. Там тоже паттерн-матчинг нужен чтобы перебирать несколько вариантов интерпретатора (это я на днях наблюдал как jenkins java ищет на слейве. Не нашел что характерно, пришлось туда руками лезть и ставить).

Пришлось поставить на сервер специальный пакет python-is-python3. С ним сертифкаты обновились.

Date: 2021-10-10 08:05 am (UTC)
From: [personal profile] kouzdra
В паттерн-матчинге ничего заумного и функционального нет. Его хоть в С++ можно вставить.

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

Ну и компилятору с ним проще справляться.

Кстати как и АТД из того же ML

Упорство с которым эти конструкции игнорируют меня всегда удивляло

Date: 2021-10-10 09:08 am (UTC)
vladimir000: (Default)
From: [personal profile] vladimir000
Зачем вставлять, уже есть, из чистого Си пришел, все отличие что break после каждого case писать не надо (а зря, зря, 1% случаев когда это бывало осмысленно давал такие изумительные часы дебагиннга в 99% когда это в виду не имелось... :)

Date: 2021-10-10 09:45 am (UTC)
vladimir000: (Default)
From: [personal profile] vladimir000
Так я тоже по незапамятным временам вспоминаю, а не по новым :)

Date: 2021-10-10 02:22 pm (UTC)
yurikhan: (Default)
From: [personal profile] yurikhan

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

def area(s: Shape) -> float:
    match s:
        case Rect(x0, y0, x1, y1):
            return (x1 - x0) * (y1 - y0)
        case Circle(_x, _y, r):
            return math.pi * r ** 2
        case _:
            raise TypeError('unknown shape')

Date: 2021-10-10 06:23 pm (UTC)
vladimir000: (Default)
From: [personal profile] vladimir000
Да, согласен, надо еще оператор приведения к int соорудить. для полноты. или, наверное, к типу sizeof, как обычно бывает...

Но идеология ровно та же, на мой вкус.

Date: 2021-10-10 06:45 pm (UTC)
yurikhan: (Default)
From: [personal profile] yurikhan

Оператор приведения чего к int? И как это поможет с деструктурированием, да и с собственно матчингом?

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

Date: 2021-10-10 07:19 pm (UTC)
vladimir000: (Default)
From: [personal profile] vladimir000
По последнему соглашусь.

подозрительность к питону

Date: 2021-10-10 11:31 am (UTC)
From: [identity profile] figador.livejournal.com
Простота и интуитивность – одновременно и преимущество, и недостаток Питона.
Преимущество – потому, что его можно впаривать дитЯм в качестве первого языка, а недостаток в том, что потом эти же самые детки, обучившись Питону, но не научившись самодисциплине, публикуют некачествееный (не сказать ещё хужЕй) код вроде certbot или offlineimap которы сначала вроде работает, а потом внезапно нет.
Или вообще неработающий facedetect, который, что характерно, публикуется в Debian.

Date: 2021-10-10 11:55 am (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Я вообще в конце концов притормозил мой сайт, потому что да, python2, letsencrypt... времени жалко стало на эту хрень. Или денег.

Date: 2021-10-10 01:06 pm (UTC)
burbilog: (Default)
From: [personal profile] burbilog
Гыгыгы, 3.4. У меня тут на 2.3 софтюшка до сих пор работает, шеф просит не прибивать...

Хвастаемся старьём

Date: 2021-10-10 02:13 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
У меня всё ещё бегают программы для ДОСа, написанные на ТурбоПаскале и ДССП в 1990 году. Данные они отдают по сети на эмулятор Novel NetWare; когда-то был настоящий NetWare, в 2000-ых переехал на эмулятор в Windows 2000. Не знаю, какой Windows там сейчас стоит, скорее всего NT. В Линуксе данные доступны благодаря ncpfs (NetWare Core Protocol FileSystem) который не работает с ядрами 4.18+. Соотв., удалось обновиться до Debian 9 и перекомпилировать ядро; и на этом всё, дальнейший апгрейд невозможен. :-D

Одну из программ я дописывал и компилировал в 2012 году, запустив BorlandPascal в DOSBox в Линуксе.

Re: Хвастаемся старьём

Date: 2021-10-10 03:38 pm (UTC)
From: [personal profile] igus
Что ж, это мудро, к пенсии станешь сотрудником, которого нельзя уводить, потому что никто из нынешних сопровождать это не сможет.

Re: Хвастаемся старьём

Date: 2021-10-10 06:40 pm (UTC)
dmarck: (Default)
From: [personal profile] dmarck
ых. я так Не Тварь А Средство Комму Ни Кацыи на границе миллениума таки извёл (была прекрасна, в тумбачки, блок питания снаружи приверчен к полу, аптайм четыре года)

Re: Хвастаемся старьём

Date: 2021-10-10 07:40 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Мы не можем извести, у нас лапки программы в ДОСе, а LANMANAGER больше памяти жрёт, чем новеловский стек с пакетным драйвером.

Re: Хвастаемся старьём

Date: 2021-10-10 08:03 pm (UTC)
dmarck: (Default)
From: [personal profile] dmarck
Ты Древне Зло Вызвал!

(резво прячицо)

Re: Хвастаемся старьём

Date: 2021-10-17 06:21 pm (UTC)
slobin: (Default)
From: [personal profile] slobin
Как ДССП, откуда ДССП? Правда под досом ДССП? Потому что я на ДССП писал вообще на ДВК-шках, а досовского (?) ДССП-386 живьём уже не видел.

Про Борланд Паскаль можно особенно не рассказывать. Ну паскаль и паскаль, что тут такого? На TIOBE вон тихо и незаметно поднялся обратно на 20 место (пока все радуются, что питон занял первое). В общем, бытовуха. Я тут на днях перечитывал доки на фри паскаль (хотя, конечно, не для дос). Потому что.

... Он тоже однажды уничтожил Стального Генерала ...

Re: Хвастаемся старьём

Date: 2021-10-17 08:04 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Мой (будущий) шеф, как я подозреваю, писал на ДССП на PDP-11, а оттуда перешёл в ДОС. Я не знаю, сначала ли он выбрал ДССП, а потом познакомился с Брусенцовым, или знакомство с Брусенцовым привело его к ДССП. В любом случае Брусенцов стал слать шефу своих студентов, и в их числе Игоря Чайкина. А с Чайкиным мы были друзья; когда я вернулся из армии он даже сумел поселить нас в одну комнату общаги. И когда моему шефу понадобился человек для перехода в ДОС, Чайкин познакомил с шефом меня; я к тому времени как раз неплохо освоил Turbo Pascal 5.5.

Нет, Turbo/Borland весьма необычные Паскали — объектно-ориентированные. Таких больше не было, а может, и сейчас нет; Delphi и FreePascal — это дети и клоны.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

May 2026

S M T W T F S
      12
345 6789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 6th, 2026 10:17 pm
Powered by Dreamwidth Studios