LINUX.ORG.RU
ФорумTalks

Подгоревший питон со вкусом багета

 , ,


4

5

Столкнулся я (сишник-плюсовик) с Питоном. Причём не непосредственно с Питоном, а с его подобием (но разрабы мамой поклялись, что это почти Питон).
Столкнулся с отступами. Это, извините, жопа.
Языка я пока не знаю, библиотек тоже, поэтому в основном копипащу, а не пишу. И мне пришлось уже приложить несколько капустных листов к раскалённой точке контакта со стулом.
Я привык к табуляциям, поэтому особых проблем нет в моём коде, но когда приходится что-то копировать с интернета, то... Это жопа, господа.
Бедные питонисты. Как они выживают без внятных ограничителей блоков кода?
В общем: если ты сишник, то обходи Питон стороной если только у тебя нет действительно веской причины его использовать.
Система отступов — чудовищна.

★★☆

Они еще чертов YAML используют

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

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

Они еще чертов YAML используют

YAML обычно рабисты используют

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

неспособность к кастомным решениям

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

А вот твоя элитарность, самомнение класса «я выше их всех» — это довольно печально. Правда, печально только если когда-то придётся с трона слезть. Если можно сидеть там всю жизнь, ничего страшного.

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

Потому что «любой скрипт», который будет менять {} на отступы, будет нести в себе токенизатор Python и как минимум часть его парсера.

$ indent -i4 ..ключики.для.скобок.на.одной.строке.. source.py; perl -pi -s/\s*[{}]\s*// source.py;

Токенизатор, блин, им подавай, да парсер, етить. Лишь бы посложнее и потормознее.

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

имхо, люди не понимают особенности больших проектов больших компаний. Если попросить js/python/ruby-хипстера пойти закодить что-нибудь для какого-нибудь министерства обороны или банка силами миллионов джунов, в чем будут многие тысячи фич (которые невозможно даже запомнить по именам), и потом поддерживать это 20 лет, то он просто не осилит. Сломается, и убежит в горизонт. Вот так и получается, что настоящие продукты «созданные навечно» пилятся силами ретроградов на устаревших языках.

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

Хм. Ты предлагаешь форматировать Python-исходники форматтером для Си? Это даже круче того фейспалма, на который я рассчитывал.

tailgunner ★★★★★ ()

Байтослесарь, поглощающий лапшу на завтрак, обед и ужин впервые увидел нормальные языки. Как мило.

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

Хм. Ты предлагаешь форматировать Python-исходники форматтером для Си?

Объясни форматтеру, что то что есть вообще не надо трогать, а надо только расставить отступы согласно скобкам. Оно умеет.

На самом деле это вообще можно однострочником на перле сделать, без всякого indent.

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

Объясни форматтеру, что то что есть вообще не надо трогать, а надо только расставить отступы согласно скобкам.

Опции давай. Пока что indent сделал из моего красивого питончика рубленую колбасу.

На самом деле это вообще можно однострочником на перле сделать, без всякого indent.

Воот. Можно увидеть этот однострочник?

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

Опции давай. Пока что indent сделал из моего красивого питончика рубленую колбасу.

Чисто ради прикола подобрал: :) :) :)

cat source.py | perl -pe 's/\n/;\n/;s/\s*(if|for|while)\s+/_$1 /' | indent -i4 -nut -nbbo -npro -nbc -nbfda -nhnl -npsl -l500 -st | perl -pe 's/^\s*[{}]+;\n//;s/\s*;//;s/_(if|for|while)/$1/'

В source.py блоки должны быть в {}, на выходе будет отформатированный текст с 4 пробелами в отступе блока.

Может ещё какие ключевые слова надо будет добавить, помимо if, for и while

Воот. Можно увидеть этот однострочник?

Мне просто лень писать вещь, которая мне никогда не понадобится. Обратись в job, если она тебе действительно нужна.

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

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

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

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

Iron_Bug ★★★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от i-rinat

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

а насчёт телефонов: никто не покупает телефон размером с чемодан. просто потому что функционал телефона не может занимать столько места. то же самое с софтом.

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

если это и есть «размен трудоёмкости», то я чего-то не понимаю в жизни.

Дела обстоят примерно так:

У производителей железа возникла идея - заставить армию вебмакак приносить немеряную прибыль.

Решение оказалось элементарным и дешевейшим. Производителям всего-то надо было чутка проспонсировать втихушечку создание говноязычков и говнофреймворков на них, которые будут жрать ресурсы железа (как серверного, так и клиентского) как не в себя, и повзволят сляпать что-то работающее даже макаке. :)

Вот откуда это вот всё.

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

ну, это уж прямо теория заговоров :)

я работала, в том числе, напрямую с производителями железа. нет. они не заинтересованы в том, чтобы что-то там на верхнем уровне засирало сеть или пожирало проц. у них совсем другие проблемы. у них главная проблема - выкатить продукт, который будет поддерживаться всеми осями и чтобы юзер его приобретал. потому что часто бывает, что железо есть, а софт его тупо не поддерживает. вот с этим они действительно сражаются. а софт верхнего уровня их вообще не интересует. а многие крупные компании (типа Intel) даже разрабатывают средства разработки и оптимизации этого самого софта. им не нужен говнокод.

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

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

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

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

то самое. процессороёмкие алгоритмы для обработки данных. обычно данные большие. хотя и сами алгоритмы могут быть сложные.

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

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

Люди не хотят дизайн, который технари считают приличным. Люди хотят красивый дизайн. Ужас, творящийся внутри, интересует только верстальщиков, которые хотят узнать, как сделать так же.

если это и есть «размен трудоёмкости», то я чего-то не понимаю в жизни

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

Как-то слышал жалобы на «дурацкую синтетику». Мол, раньше всё было из натуральных тканей, а потом пришли (непонятно кто, этот момент я пропустил) и принудили всех пользоваться синтетикой. В итоге выяснилось, что при выборе между дешёвой синтетикой и дорогой натуральной тканью будет выбрана таки синтетика. Из-за того, что она дешевле.

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

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

наверное, я «несовременный» человек. я выбираю качество. мой отец всегда говорит: мы не настолько богаты, чтобы покупать дешёвые вещи. и это действительно очень верно замечено. дешёвые товары в итоге ведут к бОльшим затратам. поэтому я покупаю качественные вещи и качественные продукты. и вполне логично, что я не хочу использовать некачественный софт. когда я вижу, что на мониторе какой-то ужас, я просто закрываю сайт и больше никогда к нему не возвращаюсь. потому что если компания не уважает своих клиентов - это значит, что не нужно пользоваться услугами такой компании. вот и всё. пользоваться таким софтом - это всё равно что покупать одежду у китайцев на барахолке. когда она через день полиняет, а через два - развалится на куски. смысл такой «экономии» мне непонятен.

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

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

А х.з. У меня тут целый «программный комплекс». И кроме питоноподобного языка мне досталась к нему IDE, которая ни на что не похожа и заточена под решение весьма специфических задач. Может где-то в глубинах конфигов что-то и есть...

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

Из удаленного

повторюсь, я не против c/c++, но для быстрой разработки и создания прототипа питон отличный язык, если вы его не осилили печаль, боль, уныние. И уж давайте не равнять всех. А то одни гуру на*** послать не кого

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

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

Iron_Bug ★★★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: Из удаленного от ggrn

Re: Из удаленного

эмм... да там и «осиливать» нечего, какбэ. после десятков лет на С, плюсах и ассемблерах ваш пистон за два дня изучается целиком. но мне он не нужен просто. даже в мелких скриптах. потому что я скорее возьму баш или перл. или lua, если речь идёт об эмбеддеде. чтобы ради крошечного скриптика не тащились сотни мегабайт ненужного барахла из реп.

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

Когда я занимался игрушкописательством, Intel подгонял свежайшее на то время железо (Pentium II с мамками, i740 c надписями Not FCC approved!) ещё даже не выпущенное в продажу, и уговаривал чтобы игрухи на этом железе использовали его на полную и немного подтормаживали. Денег заносили немеряно по тем временам, жили мы очень неплохо.

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

Stanson ★★★★★ ()
Ответ на: Re: Из удаленного от Iron_Bug

Re: Из удаленного

после десятков лет на С, плюсах и ассемблерах ваш пистон за два дня изучается целиком

Не изучается (ага, у меня тоже те самые десятки лет). Впрочем, ты и не пробовала.

tailgunner ★★★★★ ()

нытик-аутист, строящий из себя пограмизда, даже неосилил текстовый редактор.

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

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

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

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

питоноподобного

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

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

В смысле «какого»? Нет названия у этого языка. Ну, по крайней мере, я его не знаю. Но делался он копированием синтаксиса Питона.
Да и не важно это. Питон.

Stahl ★★☆ ()
Ответ на: Re: Из удаленного от tailgunner

Re: Из удаленного

а зачем пробовать? вот лежит кучка говна. я не собираюсь её пробовать. она на цвет и на запах ни разу не похожа на повидло. и я не хочу на собственном опыте проверять, каково оно на вкус. достаточно снаружи осмотреть, что это несъедобно. если оно жрёт кучу ресурсов даже у тех, кто много лет на нём пишет, даже на самых простейших задачах, если у него нет нормальной многопоточности не через одно место (которое называется GIL), то зачем мне это пробовать? не вижу ни единого резонного аргумента для траты времени на такие вещи.

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

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

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

Откуда у локальных продаванов Not FCC approved железо? :)

Нет, это было официальное представительство Интеля в Москве, сам не раз туда ездил. Железо привозили на ВАЗ2104 с большой эмблемой Intel inside на капоте. :) По всяким важным вопросам общались мы с американцем который до работы в Москве имел какое-то отношение к разработке 2D видеоакселераторов в Intel.

Stanson ★★★★★ ()
Ответ на: Re: Из удаленного от Iron_Bug

Re: Из удаленного

а зачем пробовать?

Чтобы заявления вроде

Iron_Bug> ваш пистон за два дня изучается целиком

не были обычным враньем.

я не хочу на собственном опыте проверять, каково оно на вкус

То есть ты им вообще не пользовалась? Твой уровень понтов уникален.

когда мне понадобился пых - я его изучила за 2 недели. когда мне понадобился lua - я его изучила за пару дней

Ты их изучила на уровне «еще одна дрессированная обезьянка».

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

А что делает данный код?

Задача вроде сделать взаимообратное преобразование из индентов в скобочки (которые ещё и используются в самом языке) и обратно, не?

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

А что делает данный код?

А разве из кода непонятно? Из питоносырца со скобочками и произвольным выравниванием делает питоносырец без скобочек и с жёстким выравниванием 4 проблами. посредством не умеющего в питон indent.

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

Да не делает он ничего подобного. Код просто испорчен.

Пример в студию. Наверняка не осилил скобочки правильно расставить.

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

Эта строка не должна меняться, естественно. Забавно, что ты пытаешься написать транслятор языка, которого не знаешь вообще совсем.

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