Администраторы репозитория Python-пакетов PyPI (Python Package Index) опубликовали информацию о выявлении неавторизированного доступа к 174 учётным записям пользователей сервиса. По предположению представителей PyPI параметры аутентификации пострадавших пользователей были получены из коллекциях ранее скомпрометированных учётных данных, сформированных в результате взломов или утечек баз пользователей других сервисов. Доступ к учётным записям удалось получить из-за использования жертвами атаки одинаковых паролей на разных сайтах и неиспользования двухфакторной аутентификации в каталоге PyPI...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60918
Поэтому нужно использовать пакетный менеджер дистрибутива, а не каждый раз подтягивать непроверенные пакеты из такой помойки. Пакет должен быть собран напрямую из git разработчика, зафиксирован и проверен.
Следующая новость: Атакующие получили доступ к 174 учётным записям в каталоге GitHub/GitLab/Bitbucket/etc...
Это не меняет. Запуская pip install, получаешь самую новую версию, возможно скомпрометированную. А в пакетах дистрибутива будет завиксированная версия.
Возможно протрояненная месяцем годом раньше.
Об отказе от Python думать надо.
И заодно Си, судя по последним 50 годам бэкдоров, намеренных и случайных. Да вот хоть последний (шучу, не последний) с xz. Обошлось без PyPi как-то. Проблема точно в консерватории?
Ну заменят каким-нибудь Nim, но со времененм и там будет не менее скучная помойка.
так жээсом же ))) и он уже помойка, не надо ничего придумывать
>Об отказе от Python думать надо.Хорошо отказываемся.
Но возникает вопрос. На что тогда переходим? Перечисли аналоги.
>>Об отказе от Python думать надо.
> Хорошо отказываемся.
> Но возникает вопрос. На что тогда переходим? Перечисли аналоги.Аналоги будут аналогичны. Отказываться надо сразу от всего. Тушишь полностью свой ноут
На чистый СИ
> На чистый СИА либы xz не на Си ли писали?
Да, зафиксированная. Например, зафиксированная на версии 5.6.1
> Да, зафиксированная. Например, зафиксированная на версии 5.6.1любители bleeding edge должны страдать.
> Запуская pip install, получаешьту версию, которую прописал в зависимостях. По другому бывает только в Hello, world, который не интересен вообще никому.
Наоборот - только у писателей хеловротов хватает времени и вдохновения бегать "фиксировать версии" всех стопиццот зависимостей зависимостей зависимостей. Тем более что в хеловроте их всего тридцать.
Я так думаю что именно ты и приступишь к этому? Все сотни тысячь пипок опакетишь для всех основных дистров?
Зачем сотни тысяч? Всё что кому-то нужно давно опакечено, например https://repology.org/project/python:jinja2/versions. Это нужно дурачков отучать от использования venv и pip.
> Зачем сотни тысяч? Всё что кому-то нужно давно опакечено, например
> https://repology.org/project/python:jinja2/versions. Это нужно дурачков
> отучать от использования venv и pip.Ну так они хотели жить на bleeding edge, заодно - вот - и все минные поля разминируя прямо своими тушками. Вооооон там господа с Stable дистрами - прозрачно намекают, когда им xz-чего из бэкдоров не прилетело, в отличие от вон тех, разминировавших свежие мины своими тушками. А в stable - есть команда саперов.
>нужно дурачков отучать от использования venv и pipОчередной гореадмин локалхоста)))
venv и pip отличные инструменты, но не для гореадминов, которые пассатижами забивают 100 мм гвозди)
rm -rf спасёт дистростроителей
"Атакующие получили доступ к 174 учетным записям CI дистрибутива X..."ну шо за детский сад, такое можно с любым репозиторием провернуть, хоть с PyPI, хоть с каким-нибудь Ubuntu universe, хоть с Flathub
У питоньих разработчиков добраться до оригинального VCS можно менее чем в половине случаев.Далее идут насквозь проверенные дистростроители/мантейнеры с накатыванием слегка подплесневевшей серии патчей поверх не-очень-понятно-какого тарболла. Не, конечно, тоже вылежавшегося и очень-очень проверенного. Сыном маминой подруги. Кажется.
>Поэтому нужно использовать пакетный менеджер дистрибутивакак понимаю, ты не прогер, а просто эксперт опеннета с широким кругозором )
что тебе мешает зафиксировать версию пакета в пип/мавен/итд ?
в дистрибах нет 99% содержимого пип/мавен
Неправильно понимаешь, я прогер.
Зачем же прогеру делать вид, что он это несколько разных Анонимов? Зачем так делает автономный сборщик пакетов в соседней теме, программирующий патчи к диффам - это понятно.
> как понимаю, ты не прогер, а просто эксперт опеннета с широким кругозором )Те, кто использует PyPi - тоже не прогеры. Прогеры это те, кто пишет на C, на С++, на ассемблере. Те, кто пишут фирмваре для железа, кто пишет ОС, файловые системы, работает с прерываниями и DMA. А юзеры PyPi - это формошлёперы, как раньше были "программисты" на дельфи
> Прогеры это те, кто пишет на C, на С++, на ассемблере.То есть, чем сильнее ты страдаешь, используя кривые инструменты - тем больше ты программист?
Исключение -- программисты perl.
Я бы вообще называл прогерами только тех, кто освоил компутер саенс, ну так чтобы за регистры шарить и ассемблер и прочее
Ну а те кто купил курсы на очередных слилкетори это так, операторы эвм
> ну так чтобы за регистры шарить и ассемблер и прочееэто то что не про питонистов... тоже мне прогеры
Лол, вычисления на регистровых машинах -- это вообще только 5 глава SICP, не самая нужная, вообще говоря.Не надо думать, что знание всяких дурацких идиосинкразий конкретных архитектур делает вас компьютерсаентистом.
Умение скачать скрипты через pip тоже не делает
Чёйта это ты про операторов ЭВМ так уничижительно ?
Для справки - "В СССР программистов выпускали ПТУ. С высшим образованием были инженеры-программисты."
> В СССР программистов выпускали ПТУБред.
Так в CS курсе MIT заменили LISP как раз на Python.
>Прогеры это те, кто пишет на C, на С++, на ассемблерете самые ребята, который за что более-менее сложное ни возьмутся (smbd, httpd, cow-fs), всё дырявая вонючая кучка получается... байтики гонять и страдать от убожества анси сишечки это не элита ИТ, а дно.... недаром там все выгоревшие уже.
а на жабе прогать это каеф )
> Поэтому нужно использовать пакетный менеджер дистрибутиваА на Windows что использовать посоветуешь? Ну, на той маргинальщине, которой ползуется более 70% мира?
WSL же !
Та ещё бяка.Некоторое время использовал WSL, но вернулся к старым добрым виртуальным машинам.
Двухфакторная аутентификация ничем в плане безопасности не лучше
Поясни почему, по пунктам. А то вот недавно в амазоновском govcloud аккаунт регистрировал для клиента, и там почему-то mandatory 2FA. Тупые пендосы, не иначе!
>Тупые пендосы, не иначе!this
нет, там опечатка в слове индусы.
>govcloudНе для домена gov.no, случаем, используется? В любом случае для любой сферы, связанной с сертификациями и лицензиями, важнее всего не реальное делание дел, а прикрытие жопы бумажкой.
Ну да, зачем вытирать, если прикрыть достаточно.
Двухфакторка по смс, если анон имел именно ее ввиду, и правда не самый безопасный вариант
Просто потому что смс никак не шифруются, и чтобы перехватить код, достаточно сдр
В 90% случаев спасает
Ну вот к примеру живёт себе такой Джон Хренпокладофф.. завёл емейл john.hrenpokladoff@gmail.com и временами регистрируется на сайтах вида "Клуб любителей Лада Калина" или "Ремонт самогоннного аппарата своими руками" итд итп.. И не сильно заморачиваясь везде лепит свой емейл, и один и тот же пароль. В какой то момент идёт на курсы "программирование на петоне за 3 дня" и потом идёт и заводит себе аккаунт на Pypi. и не сильно заморачиваясь вводит те же емейл и пароль..
потом нехорошие люди ломают форум одного из клубов по интересам, где наш Джон состоит, и тырят оттуда все пароли (да пофиг что они там зашифрованные, правят код и пишут в лог открытым текстом пароли с логинами, потом лог забирают)
и эти нехорошие люди вдруг видят, ба, а этот емейл из их лога - засвечен в PyPI. пихают туда этот же пароль и чудо! их пускает..А вот была бы двух факторка - обломались бы. К счастью сделать одинаковые OTP для разных сайтов наш Джон не сможет и смс от одного сайта не поможет в другом.
все имена вымышленные, совпадения случайны.
да, если бы дядя чуток бы напрягся и завёл себе хранилище паролей и использовал бы разные пароли на разных ресурсах, смысла с двух факторки было бы не много.. но такова селява, что народ в массово
пароль будет использовать одинаковый.
> А вот была бы двух факторкачуваки нажали бы кнопочку "ой, мабилка сресетилась и забыла сид - сгенерите-ка мне новый".
И нажали бы ссылочку пришедшую в ту самую john.hrenpokladoff@gmail.com с тем же самым паролем.То ли дело вот двухфакторка в смс с привязкой к номеру. Когда восстанавливать нечего, потому что все действия снова ведут в смс с тем же номером. Ну а если ты такой л-х что зарегистрировался на одноразовую мобилу и паспорт гад не предъявил - то с тобой дел иметь незачем, твой вреднозиторий превратился в тыкву.
> Двухфакторная аутентификация ничем в плане безопасности не лучшеКазалось бы, в новости случай, который прядо говорит об обратном, но опеннетный эксперт как всегда альтернативно одарен...
Ну и фиг с ним. Кто пользуется - молодец.
Интересно, конечно, что не сделали 2FA обязательной.А по поводу паролей - менеджер, да и +сом можно для помоек иметь один пароль и не париться, а для важного - генерить и хранить.
Так как от покражы с "сайтов вида "Клуб любителей Лада Калина" или "Ремонт самогоннного аппарата своими руками" итд итп.." вообще ни тепло ни холодно, а во всех нужных местах пароли уникальные.
Элементарная гигиена, простите.
> Интересно, конечно, что не сделали 2FA обязательной.Не у всех есть телефоны с симкой, так как они по паспорту выдаются
>> Интересно, конечно, что не сделали 2FA обязательной
> Не у всех есть телефоны с симкой, так как они по паспорту выдаютсяЧел, чтобы для 2FA сгенерить TOTP даже доступ в инет не нужен...
>>> Интересно, конечно, что не сделали 2FA обязательной
>> Не у всех есть телефоны с симкой, так как они по паспорту выдаются
> Чел, чтобы для 2FA сгенерить TOTP даже доступ в инет не нужен...У себя дома ты можешь что угодно генерить, только пошлёшь ты мне как? Голубем?
Open Source менеджер паролей KepassXC даёт возможность настроить TOTP.
Для его использования не требуется SIM и доступ в интернет.
> Open Source менеджер паролей KepassXC даёт возможность настроить TOTP.
> Для его использования не требуется SIM и доступ в интернет.Плз, поподробнее здесь. Захожу я к примеру на гитхаб, а он мне шлёт SMS, а я такой открываю KepassXC и попадаю на гитхаб?
Если там ТOTP второй фактор, то никаких СМС никто не шлёт. а ждёт 6 цифирек из ТОТП клиента (их есть разных, им может быть в том числе и кейпасс). Цифирьки меняются раз в 60 сек (на девайсе где запущен ТОТП клиент должно быть достаточно точное время, примут значение +- пару минут). на выбор начальных значений для ТОТП пользователь не влияет, соотв своими шаловливыми руками сделать значение предсказуемым не может.
> Если там ТOTP второй фактор, то никаких СМС никто не шлёт. аСпасибо добрый человек! Буду разбираться!
Я тот аноним что изначально написал про KepassXC. Пояснение написал другой. Так вот, лично я пользуюсь именно KepassXC, его советуют всём. Просто Kepass не пользуюсь и не советую.
>Элементарная гигиена, простите.Подавляющее большинство не хочется об этом задумываться. Когда я пытаюсь просвещать людей и объясняю необходимость использования менеджера паролей вместо таблиц Эксель, то 100% начинают объяснять что им и так хорошо. В редких случаях может быть найдется один человек который заинтересуется.
А в чём преимущество по сравнению с таблицей под паролем?
> А в чём преимущество по сравнению с таблицей под паролем?Автоматом подставляет логин/пасс в поля на сайтах
и не только туда. Чем и плох.
>Автоматом подставляет логин/пасс в поля на сайтахЭто какой менеджер паролей так делает? Так делают браузеры которые сохраняют логопас у себя и отдают их корпорациям, правоохранителям, а заодно и хакерам.
>>Автоматом подставляет логин/пасс в поля на сайтах
> Это какой менеджер паролей так делает? Так делают браузеры которые сохраняют логопас
> у себя и отдают их корпорациям, правоохранителям, а заодно и
> хакерам.Так делает KeePassXC. В браузер ставится расширение и оно как-то связывается с клиентским приложением KeePassXC и забирает оттуда логин/пароль. А браузер и без KeePassXC может забрать, вы же в поля ввода на сайте так или иначе вводите данные, правильно? Что мешает браузеру собрать и тайком зааплодить на свои сервера?
>В браузер ставится расширение и оно как-то связывается с клиентским приложением KeePassXC и забирает оттуда логин/пароль.Никогда не ставил это расширение. Всегда подозревал неладное.
>А браузер и без KeePassXC может забрать, вы же в поля ввода на сайте так или иначе вводите данные, правильно?Одно дело Гугл Хром, а другое какой-нибудь форк Фаерфокса. Основной момент не сохранять пароли в самом браузере, чтобы их от туда нельзя было достать хакерам.
>Что мешает браузеру собрать и тайком зааплодить на свои сервера?Не пользоваться браузером который собирает и отправляет на сервера логопасы?
>>Что мешает браузеру собрать и тайком зааплодить на свои сервера?
> Не пользоваться браузером который собирает и отправляет на сервера логопасы?Об этом вы никогда не узнаете
Ну всё же доверия Фаерфоксу больше чем Хрому.
> Ну всё же доверия Фаерфоксу больше чем Хрому.На чём основано? Фаерфоксу платит Гугель, и ему кушать хочецца
То что Хром шпионит о каждом чихе нам известно.
То что Фаерфокс шпионит это гипотетическое предположение.
Выбираю из двух зол меньшее.
https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi?az=p...
Тебе же уже рассказал про существование KepassXC. Просто начни им пользоваться и перестань всякие глупости про шифрование таблицы выдумывать.
> Тебе же уже рассказал про существование KepassXC. Просто начни им пользоваться и
> перестань всякие глупости про шифрование таблицы выдумывать.Режим параноика никто не отменял )))) Я то пользуюсь, но рано или поздно в нём найдут не один бэкдор )))
Я тебе рекомендую лучшие практики.
Ну Во-первых: таблица хранится в открытом доступе без шифрования. Получив доступ к таблице, доступ сразу ко всему логопасам в ней.
Во-вторых в таких таблицах хранятся простые пароли расчитаные на то чтобы их было легко запомнить.
Смысл чтобы использовать сложные длинные пароли со спецсимволаит с высокой энтропией.
Эти сложные пароли хранить в базе паролей с помощью менеджера паролей.
Доступ к базе с помощью мастер пароля который надо помнить, но он тоже сложный. Также второй фактор для базы паролей это физическая флешка, без каторой даже с мастер паролеи не откроет.
Отдельно база паролей для работы, отдельно для личного, для каждой Второй фактор.
У меня для Вас плохие новости.. даже руки после сортира не все в состоянии помыть, не то что пароли разные делать... поэтому надо както заставлять людей соблюдать гигиену.. хотябы 2ФА. ну или предложите другой способ.
>У меня для Вас плохие новости.. даже руки после сортира не все в состоянии помытьВ туалете я касаюсь только своего тела. От самого себя сложно заразиться чем-то новым.
А вот сколько новой заразы будет на маховике смесителя, что бы открыть воду. Хотя сам мою руки.
>поэтому надо както заставлять людей соблюдать гигиену.. хотябы 2ФА. ну или предложите другой способ.А как ты их заставишь. Системные администраторы, да даже руководители ИТ отделов вчерашние эникейщики, всё поголовно хранят пароли в Google Sheets. Это в не большом бизнесе. В бизнесе побольше, федеральном, где есть нормальный отдел безопасности, там используют корпоративные менеджеры пролей с отслеживанием кто какой пароль куда когда и когда изменил.
Хотя я научил пользоваться KepassXC секретаршу в небольшой конторе.
Но не смог научить руководителя ИТ отдела. Хотя в других двух конторах научил пользоваться KepassXC сисадминов и руководство. Но был один самый умный сисадмин который упорно отрицал менеджер паролей.
Вообще мне кажется сисадминов которые не используют менеджеры паролей надо увольнять за профнепригодность.
> Вообще мне кажется сисадминов которые не используют менеджеры паролей надо увольнять за
> профнепригодность.А если в менеджере закладка как в недавнем xz? Что тогда? Кого надо будет "расстреливать"?
Менеджер паролей с гипотетической закладкой против хранения паролей в таблицах эксель и в браузере, я выбираю меньше зло.
> Менеджер паролей с гипотетической закладкой против хранения паролей в таблицах эксель и
> в браузере, я выбираю меньше зло.И какое же меньшее? таблицу можно шифровать и вероятность там закладки почти нулевая, если использовать простой редактор
Это даже не смешно.
Сколько времени у тебя будет уходить на расшифровку таблицы?
> Сколько времени у тебя будет уходить на расшифровку таблицы?GPG шифрует 500 MBytes за 3.77s на Intel i7 at 2.7 GHz, 64-bit mode
https://security.stackexchange.com/questions/56167/why-is-gp...
У тебя сколько весит файл с паролями? ))))
Мне просто любопытно, ты будешь занимать ручным шифрованием и расшифрованием каждый раз когда понадобиться поставить логопас?
> Мне просто любопытно, ты будешь занимать ручным шифрованием и расшифрованием каждый раз
> когда понадобиться поставить логопас?Ярлыки никто не запрещал. Создаёшь ярлык, в нём команду на дешифровку. Ввёл пароль от ключа - открылось приложение с паролями. Держишь открытым пока нужно, как это делает всё тот же KeePassXC.
При изменении файла паролей немного посложнее будет, но тоже реализовать можно скриптами.
А если не будет?
> А если не будет?А кто гарантирует и чем? Где основания? А так ты милок можешь сколь угодно гадать на кофейной гуще.
>> А если не будет?
> А кто гарантирует и чем? Где основания?Статистика.
> А так ты милок можешь сколь угодно гадать на кофейной гуще.
Напоминает анекдот от статистов про блондинку и динозавра. Так и ты с своим "а вдруг!?" :-D
>>> А если не будет?
>> А кто гарантирует и чем? Где основания?
> Статистика.Это не аргумент. Статистика ничего не открывает, пока ей ничего не дадут. Гарантий нет. Тем более для одних одна статистика, а для других - другая. И даже более, у каждого своя.
XZ был в какой статистике?
Всё что ты предлагаешь это костыль вместо специализированной программы.
Где гарантия что в твоё шифровальщике нет бекдоров?
Альтернативы какие?
Шифровать таблицу?
Чем шифровать?
Откуда ты уверен что в твоём шифровальщике нет бекдоров?
Шифровать шифровальщиком это костыль менее удобный а не альтернатива менеджеру паролей который для этого придуман.
> Активность атакующих была выявлена после получения серии жалоб, в которых пользователи сообщали о получении уведомлений от PyPI об активации двухфакторной аутентификации, в то время как они не заходили в это время в свою учётную запись и сами ничего не меняли.
> а всем остальным пользователям PyPI, у которых не была включена двухфакторная аутентификация, отправлены уведомления и инициирован процесс повторной верификации их email.Ээээ, а перевод точно верен ?
В PyPI чтобы совершать действия с аккаунтом обязательно нужно, чтобы была включена двухфакторная аутенитификация. Поэтому злодеи после входа включили 2FA, но параметры они ещё на этой стадии не поменяли и уведомление о включении отправилось на email пользователя.
>Пострадавшие учётные записи были заблокированы до окончания разбирательства, а всем остальным пользователям PyPI, у которых не была включена двухфакторная аутентификация, отправлены уведомления и инициирован процесс повторной верификации их email.То есть под предлогом мизерного процента скомпрометированных записей проблемы создают всем остальным, да ещё и на мороз выгоняют всех, у кого записи на временную почту зареганы. Да ради создания этого повода можно самим наделать 147 жалких sockpuppetов. Легитимности это всё равно хтим действиям никакой не даст, только ещё один довод не связываться с этим дерьмом и все пакеты хостить исключительно у себя на гите. Даже если это откроет "увизгвимость" с регой на pypi пакета с совпадающим именем: у кого включена загрузка с pypi - тот сам виноват и сочуствия не заслуживает.
> проблемы создают
> записи на временную почту зареганыА ты последовательный.
Но ведь на временную почту ничего ценного не регистрируют.
Так ли велика утеря?
Есть только один способ решения этой проблемы: писать ВСЁ самому. Да здравствуют велосипеды с квадратными колесами.
Ну а кто заставляет делать колёса квадратными? Скопипастил пару строк из интересного проекта и норм.
База!
Колеса именно поэтому и получаются квадратными - потому что берут их из интересных проектов...
Колеса переоценены, предки ходили пешком и на лошадях сказали и ничего, выжили как-то.
Технология колес ещё не достаточно отлажена.
Хождение на двух ногах переоценено, предки прыгали по деревьям и ничего, выжили как-то.
Технология прямоходящего хождения ещё не достаточно отлажена.
174 учетки скомпрометированы. Может список пакетов дать, сказать какие из них нужно откатить, ну и тд?! Неееее, этж питон! И таааак сойдёт. Просто будьте в курсе, лол.
а смысл? Пока ты этот список читаешь - скомпрометируют 140 следующих. Это ж - пихон. В его вреднозитории копаться-проверять что за тары туда пихают - некому.
Найми себе проверяльщика за деньги. Отличная идея для стартапа.
Идея мне нравится, но с таким подходом - ты этого слона не продашь.Может чатгопоту попросим нарисовать нам промо?
В том то и дело что не надо ничего откатывать. Мошенника поймали. А названия пакетов только сделают им антирекламу.
> В том то и дело что не надо ничего откатывать.мамой клянёшься? 170 пакетов, это не один и не два. Проверили меньше чем за день (14 часов?). Красавчики, чо уж. И чо ж я им не верю-то...
> Мошенника поймали.
за руку? а пишут что никого не поймали, заморозили акки, в общем читай новость и не выдумывай здесь.
> А названия пакетов только сделают им антирекламу.
кому? питону? пипу? пакетам? ну, счастье в неведении, ога.
Есть мнение что собственно пакеты тех обалдуев, что использовали одинаковые пароли на всех своих сайтах им не нужны были (как и вообще никому).. а вот положить потом под их аккаунтом, не новым, час как созданным, а старым аккаунтом, новый пакет с подозрительно похожим именем на какой нить популярный пакет очень даже идейка.. но спалились, не успели.
Ничего, скоро код на пятоне будет генерировать на лету GPT. И не надо будет никаких репозиториев.
> Ничего, скоро код на пятоне будет генерировать на лету GPT.а поскольку он учился на примерах лучших из худших - он затолкает в них зависимости всего от всего.
> И не надо будет никаких репозиториев.
надо, Федя, надо!
Python странная технология. Есть ощущение, что он популярен только потому что однажды стал популярен и вошёл в рекурсию.Смотрю на всё это дело со стороны, и удивляюсь, зачем его брать вообще для чего-то.
Сопровождение питон-кода крайне дорогое. Типов нет. Медленный. Многопоточки нет. Аот-компиляции нет.
Разве что только порог вхождения.
> Python странная технология.
> Сопровождение питон-кода крайне дорогое. Типов нет. Медленный. Многопоточки нет. Аот-компиляции
> нет.
> Разве что только порог вхождения.А что вы хотите на нём писать, что он у вас медленный? В остальных задачах скорость на последнем месте, не все могут сразу встать с кровати и получить миллионы пользовательских запросов. А постепенно задача со скоростью также решается узлами и балансерами.
Пайтон божественнен в своей структуре и логичен. Наверное единственный полноценный язык который полностью отвечает парадигме ООП.
Типы в динамике не нужны, это ограничение. Типы нужны лишь только для неродивых пограммистов. Самой машине, компу, типы не нужны. Совершенствуйся сам в типах, для этого есть в Пайтоне хинты типов и с этим уже всё в порядке
> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
> неродивых пограммистов.
$ python3
>>> '2' + 3.14Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "float") to strтипы не нужны но нужны.
>> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
>> неродивых пограммистов.
>
> $ python3
>>>> '2' + 3.14
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> TypeError: can only concatenate str (not "float") to str
>
> типы не нужны но нужны.А так? :)))
> print("Geeks" * 4)
:)))))))))))))))))))))))))
В Пайтоне есть такая штука как operator overload. Делай что хочешь. Напиши свой метакласс, переопредели метод __add__() и будет тебе без Exception'а. Просто по умолчанию решили так сделать, а с умножением как видишь, умолчание другое, никаких ошибок.
тогда уж так:
print("2" * 4)
будет совсем не 8....
> тогда уж так:
> print("2" * 4)
> будет совсем не 8....Да, Python обладает строгой динамической (не статической) типизацией. Это работает, потому что переменная не имеет типа:
https://stackoverflow.com/questions/11328920/is-python-stron...
> Да, Python обладает строгой динамической (не статической) типизацией.но ведь...
> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
> неродивых пограммистов.м?
>> Да, Python обладает строгой динамической (не статической) типизацией.
> но ведь...
>> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
>> неродивых пограммистов.
> м?Ну статические имел ввиду типы это ограничение
>>> Да, Python обладает строгой динамической (не статической) типизацией.
>> но ведь...
>>> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
>>> неродивых пограммистов.
>> м?
> Ну статические имел ввиду типы это ограничениеи это ограничение. Правильно сделано в Perl. Если я хочу конкатенацию строк, я пишу 1 . '2', если хочу сложение чисел - 1 + '2'. Хочу сравнение строк - 1 eq '2', хочу сравнение чисел - 1 == '2'. Мне не надо думать над типами, и почему я одну overload'нутую операцию применяя к переменным x и y получаю TypeError. Зачем мне этот полумер с строгой динамической типизацией? От ошибок рантайма не спасает, лишь добавляет лишней мороки.
> и это ограничение. Правильно сделано в Perl. Если я хочу конкатенацию строк,
> я пишу 1 . '2', если хочу сложение чисел - 1
> + '2'. Хочу сравнение строк - 1 eq '2', хочу сравнение
> чисел - 1 == '2'. Мне не надо думать над типами,
> От ошибок рантайма не спасает, лишь добавляет лишней мороки.А кто мешает в Python реализовать метакласс в котором переопределить операторы? Будет почти тоже самое:
1 + '2' = 3
1 + 'строка' = '1строка'
'1' + '2' = '12'
1 == '1' is trueКак хочешь...
https://docs.python.org/3/library/operator.html#mapping-oper...
> А кто мешает в Python реализовать метакласс в котором переопределить операторы? Будет
> почти тоже самое:но зачем? :-D
>> А кто мешает в Python реализовать метакласс в котором переопределить операторы? Будет
>> почти тоже самое:
> но зачем? :-DДело ваше конечно. Просто возможность. Хотите используете - хотите нет. Почти ничего не прибито гвоздями
>>> А кто мешает в Python реализовать метакласс в котором переопределить операторы? Будет
>>> почти тоже самое:
>> но зачем? :-D
> Дело ваше конечно. Просто возможность.возможность overloadнуть методы? ни-мо-жит-быть! только на опеннете тебе пито-няши расскажут что исключения - замена юниттестам, а перегрузка методов замена слабой типизации. Так и живём, кампутер сцаенс.
> А кто мешает в Python реализовать метакласс в котором переопределить операторы? Будет почти тоже самое...А можно не надо? Моя мысль в том, что питон требует массы усилий, чтобы с ним нормально работать. А конкурентных приемуществ 0, кроме как миллионы джунов-питонистов, которые не понимают как компьютер работает, но лезут изо всех щелей
> и это ограничение. Правильно сделано в Perl. Если я хочу конкатенацию строк, я пишу 1 . '2', если хочу сложение чисел - 1 + '2'. Хочу сравнение строк - 1 eq '2', хочу сравнение чисел - 1 == '2'.Извиняюсь, поправлю.
Ты вряд-ли пишешь "1.'2'"
Скорее всего ты пишешь $amount . $otherAmountТо есть, явного нетипобезопасного приведения в реальном коде встретить практически нельзя. А стреляет как раз неявное
> А что вы хотите на нём писать, что он у вас медленный?Обработка цен в реальном времени.
> В остальных задачах скорость на последнем месте, не все могут сразу
> встать с кровати и получить миллионы пользовательских запросов. А постепенно задача
> со скоростью также решается узлами и балансерами.Давайте представим геймдев на питоне? Или блокчейн?
> Пайтон божественнен в своей структуре и логичен. Наверное единственный полноценный язык
> который полностью отвечает парадигме ООП.C#, Java
> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
> неродивых пограммистов.Вот говорят так а потом падают в рантайме и пишут тесты на то, чтобы типы совпадали.
А ещё эту информацию необходимо донести ребятам, которые каждый год изобретают новые аннотации типов в питон.
> Самой машине, компу, типы не нужны.
Типы нужны машине для того, чтобы оптимизировать код, в первую очередь инлайнить его. Но для вас, вероятно, эти слова ни о чём ни говорят. У вас скорость выполнения не важна
> C#, JavaНа счёт C# не знаю, а вот Java не полностью объектно-ориентированная. Операторы являются объектами? Все ли операторы? А как на счёт встроенных (примитивных) типов которые не объекты?
https://stackoverflow.com/questions/974583/is-java-100-objec...
> Операторы являются объектами? Все ли операторы?А должны?
> А как на счёт встроенных (примитивных) типов которые не объекты?
А должны?
Ты же понимаешь, надеюсь, что объекты требуют выделения памяти?
> Ты же понимаешь, надеюсь, что объекты требуют выделения памяти?1 Гб ОЗУ стоит меньше, чем я потратил время на то, чтобы тебе ответить
окей- добавь мне 1 гигабайт памяти в макбук, телефон или 75% продаваемых ноутбуков, где память распаяна
- добавь 1 гигабайт памяти в контейнер Amazon ECS (спойлер, цена вырастет примерно в два раза)
- удвой оперативную память в aws-лямбдах (спойлер, цена вырастет в 4 раза)
Я не устану повторять, что оперативная память крайне дорогой ресурс во всех случаях кроме домашних стационарных пк.Поэтому в облачных вычислениях пэйфон даже не рассматривают, и используют AOT-компилированный дотнет, раст или гоу.
В мобильных приложениях и веб-фронте пэйфоном даже не пахнет. Кому нужно приложение, которое будет со сплеш-скрином висеть по несколько секунд и жрать как не в себя?
Откуда вы берётесь, розовые пони?
>> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
>> неродивых пограммистов.
> Вот говорят так а потом падают в рантайме и пишут тесты на
> то, чтобы типы совпадали.Ну пусть пишут, если exception'ы не захотели писать
>>> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
>>> неродивых пограммистов.
>> Вот говорят так а потом падают в рантайме и пишут тесты на
>> то, чтобы типы совпадали.
> Ну пусть пишут, если exception'ы не захотели писатьокей, эксепшены замена юнит-тестам, записал. опеннет познавательный.