LINUX.ORG.RU

Питонячьи радости

 ,


0

4

Отступы, блин

Был у меня код вида:

for blah-blah-blah :
    # какой-то код
    if что-то :
         # код
    else:
        # ещё код

Код скопипастил из одного места программы в другой. При этом не заметил как отступы нарушились. Ну вы поняли, да? Стало:

for blah-blah-blah :
    # какой-то код
    if что-то :
         # какой-то код
else:
      # ещё код

И вот это мне стоило довольно большого количества потеряного времени. Условие else: стало относиться не к if, а к циклу for. Учитывая, что тело цикла было достаточно длинным, как-то не бросалось в глаза, что else уехал не туда. Мать-перемать, но код после этого даже почти нормально работал.

Еще уже мелочь относительная, но все же, чего-то не подумав захотел поработать с гугл драйвом прямо из своего кода и недолго думая сделал pip install --upgrade google-api-python-client - и это разрушило всё. Благо, что от юзера, а не рута, вылечилось сносом .local и повторной накаткой некоторых модулей

★★★★★

Последнее исправление: anonymous_incognito (всего исправлений: 3)

Еще уже мелочь относительная, но все же, чего-то не подумав захотел поработать с гугл драйвом прямо из своего кода и недолго думая сделал pip install –upgrade google-api-python-client - и это разрушило всё. Благо, что от юзера, а не рута, вылечилось сносом .local и повторной накаткой некоторых модулей

python -m venv .venv
source .venv/bin/activate
pip install ...

# либо как это делают в 2023
poetry add ...
rtxtxtrx
()
Ответ на: комментарий от sanyo1234

Чтобы получить Жигуль, Фиат несколько переделали под российские дороги. Увеличили клиренс, дисковые тормоза заменили на менее чувствительные к грязи барабанные, например. Немного изменился и кузов, жигулёвский мне нравился больше итальянского дизайну. Ну а уж потом модифицировали всё больше, так что «Семёрка» ещё сильнее отличалась от «Фиата».

P.S. Я водил «Семёрку», за свои деньги (тогда это было 150 тыс + 37 тыс опции) это был замечательный автомобиль, который я купил на свою учительскую з/п. Увы, он снят с производства и бюджетных авто больше нет. Даже «Калина» начинается с полумиллиона.

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

Так это не синтаксис, это семантика.

P.S. Нужно быть конченым, конечно, чтобы судить языки по синтаксису.

P.P.S. А семантику PHP не поправят никогда, это уже другой язык будет. С python2 не факт, что все перешли-то, а тут изменения ещё серьёзнее.

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

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

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

Отсутствие в PHP областей видимости переменных уровня блока

Семантика, конечно. Синтаксис это задавать ли блок с помощью скобок или отступов.

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

Отсутствие в PHP областей видимости переменных уровня блока

Прям как в бидоне. И в руби тоже нет, если блок это не «блок», а какой-нибудь проклятый адептами for. Зато в перле всё чётко (если use strict не забудешь). Переходите на перл.

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

Никто же не предполагал, что начнут писать километры говнокода на скриптовых языках. Скрипт это структурно очень простая штука, там всякие заморочки не нужны. Если посмотреть на перл, то хорошо видно, как синей изолентой к нему приматывали модули, ссылки, объекты и прочую хурму из ЯП общего назначения. То же и с жаваскриптом, но там изначально была вменяемая масштабируемая модель, только сахара досыпать оставалось. Вот почему питон такой убогий, это мне непонятно. Вроде автор серьёзный мужик из академической среды, мог бы сделать и получше. И уж тем более в 3-й версии можно было пофиксить все болячки, вместо этого они там заменяли print на print(). Странные люди.

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

Никто не предполагал, поэтому на лиспе автоматику для прилунения написали, ага. Чушь не пиши. Еше 20 лет назад всякие цивы 4, вампир маскарад и ив онлайн были наполовину на питоне написаны. Авторы дебилы тебя не слушали, всяким идиотизмом занимались, и писали на языках не предназначенных ни для чего кроме выполнения функций калькулятора в сосноли, проекты А-уровня, заработавшие им сотни миллионов долларов, а еще придурки всякие ютубы на пистоне делали, когда надо было в сишечку подолбиться

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

Это поведение зависит от версии. Их сейчас куча поддерживаемых от 5.6 до 8, но пхп зафаршмачили, пытаясь превратить в джаву. На нем лучше не писать. Каноничный пример дерьма - это какой-нибудь вротпресс с глобальными переменными… Да там в принципе все cms/фреймворки ужасны, включая laravel - самое красивое срнди непотребства

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

Да, а ещё писали ERP на перле. Я же всех агитирую за перл, не заметил что ли? А то мне скучно там одному (ну ладно, есть ещё несколько перловиков в стране, но они немного поехавшие).

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

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

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

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

в скале с этим еще хуже, потому что писать ты будешь на голом свинге, вероятнее всего. То есть вроде бы и скала, а внутри вот эти вот layout.set*. Впрочем, если сторонних компонентов нет, то был какой то scala-swing, но не скажу ничего, юай не писал

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

JVM пока рассматриваю только для использования с достаточно навороченной Hibernate (OGM, Shards, etc.). IMHO nHibernate всё же послабее. Т.е. чтобы прикрутить такую JVM DTO сборку через RPC к привычному .NET data layer (вместо, например, Entity Framework).

А кто-нибудь умеет делать Hibernate L2 кэш, общий для всех приложений, запущенных на разных хостах? Это вообще возможно через Distributed Hibernate L2 Cache?

Можно примеры? С кластером Redis/Tarantool оно будет работать?

Т.е. чтобы кластер приложений читал данные из общего кластера NoSQL L2Cache ? Чтобы не было дублирования данных разных инстансов приложения в разных частях L2 кэширующего кластера.

Кластер .NET приложений -> RPC -> JVM DTO сервис, использующий Hibernate -> Hibernate L2 cache cluster -> light (master-slave replication) RDBMS cluster.

И вообще я не любитель работы над GUI, а над бизнес логикой IMHO куда приятнее работать на JVM языках по сравнению с новомодними Go и Python, несмотря на мою любовь к .NET.

Недавно поизучал Golang более подробно, и просто ужаснулся, не дай Бог, бы когда-нибудь пришлось бы кодить на таком. Даже сразу внезапно возлюбил популярные JVM языки, ибо они достаточно популярны у платежеспособного населения :)

sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 3)
Ответ на: комментарий от ugoday

Мозголомность брейнфака вызвана не неправильными синтаксическими закорючками, но сложностью напсать что-то толковое с помощью ленты значений и восьми примитивных команд.

Можно подумать, будь BF синтаксически богаче Scala, но при этом ещё более закорючкнутым, то стал бы популярнее и приятнее чем Scala.

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

Зато в перле всё чётко (если use strict не забудешь). Переходите на перл.

Всегда забавляла эта директива. Что это, если не свидетельство в косяках дизайна языка? В питоне такой никогда не было нужно и не будет 😊.

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

Вот почему питон такой убогий, это мне непонятно.

В питоне объекты и модули сделаны может и не супер как, зато не на изоленте держатся.

И уж тем более в 3-й версии можно было пофиксить все болячки, вместо этого они там заменяли print на print()

Питон 3 зато выпустили и даже убедили на него переходить кодеришек. А перл 6, когда его дождались, отправили в сRakudo😁. Как и пэхапэ 6, вроде. То есть из всей скриптоты смог обновиться только пихтон 😊.

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

Это откуда такая статистика? :)

И ещё ведь важно, что именно писать.

Можно ли на BF написать программу, аналогичную той, что получится с использованием Play framework?

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

Питон 3 зато выпустили и даже убедили на него переходить кодеришек.

Не убедили. Многие так и не перешли, а просто бросили проекты. Другие со скрипом переписывали годами. Главное, никто не понял зачем это всё.

А перл 6, когда его дождались, отправили в сRakudo

И правильно сделали, такую то наркоманию. Самые шизики туда свалили, а могли бы перл5 потихоньку ломать.

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

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

Размер образа зависит от способа его приготовления и от изученных теорий, а не от невесть какой практики с грустными результатами:

https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2023/11/AOTOptimizations3.png

https://www.opennet.ru/opennews/art.shtml?num=60112

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

Питон 3 зато выпустили и даже убедили на него переходить кодеришек.

Не убедили. Многие так и не перешли, а просто бросили проекты.

Убедили, не надо заниматься отрицанием.

Другие со скрипом переписывали годами.

Даже странно, ведь только инструкцию print на функцию print поменяли — что же они там переписывали?

Главное, никто не понял зачем это всё.

Когда есть изначально удачный и правильно развивающийся проект, «кардинальная» доработка косяков может выглядеть как косметическая операция. Это какой-нибудь перл нужно напрочь переписать захотеть, если трезво подойти к его осмыслению )). И рождается Ракудо, который на предыдущую версию похож не больше, чем малыш-негр, родившийся в семье бледнолицых. Я так понимаю, Ларри не от великого восторга своей перловкой такую переделку задумал и/или одобрил. Но мы будем заниматься отрицанием, да-да )). А вообще, как оно в перле живется сейчас, когда понятно, что со всем этим нагромождением костылей нужно жить теперь до конца перла (на еще одну глобальную перестройку ведь никто уже не пойдет), когда даже в жаваскрипт модули завезли уже с классами? )) Жизнь на медленно тонущем корабле, одним словом.

Virtuos86 ★★★★★
()