LINUX.ORG.RU
ФорумTalks

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

 , ,


4

5

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

★★☆

Ответ на: комментарий от Lavos

Lavos> Для наколенной автоматизации есть bash.

Bash - это наколенная автоматизация на уровне приложений. Python - это наколенная автоматизация на уровне данных. Разницу улавливаешь?

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

Это не правильный подход, а один из жизнеспособных и применяемых на практике. Подход со скобочками и begin и end тоже жизнеспособный и применяемый на практике.

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

Iron_Bug> он по определению непригоден для серьёзной разработки.

Смотря что понимать под серьёзной разработкой и в какой области. А то так можно договориться до того, что C непригоден для серьёзной разработки по определению.

Iron_Bug> только для наколеночных поделий. но в этом качестве и баш можно использовать.

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

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

Iron_Bug> не, жаба всё-таки лучше пистона.

У python есть реализация под жабу.

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

А не надо пытаться писать на нём то, что нужно писать на том же C.

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

Это обозначается термином «клей». И да - язык-клей очень востребован. Есть огроменное количество задач, где нужно сделать что-то быстро и грязно, но несколько раз или в очень ограниченных сулчаях, когда на ресурсы наплевать в принципе. И тут python приходит на помощь.

Iron_Bug> что тот же luа его уделывает в сотни раз по скорости и потребляемым ресурсам.

Зато по среде lua вообще и рядом не валяется с python. У lua другая область применения, которая с python практически не пересекается.

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

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

Нынче в мире x86 многопоточность недоразвита. Сейчас только AMD некоторые потуги делает в этом направлении, а тот же Intel до сих пор на однопоточность ставку делает и многопоточность продвигать массово даже не думает.

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

Iron_Bug> как же перловка и греп без этих ваших пистонов работали до сих пор???

Простая замена begin/end на отступы не поможет, так как надо ещё учитывать уровень вложенности. Потребуется парсер посложнее, чем использование grep.

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

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

Всему своё место в каждом проекте. И у python оно в крупных проектах тоже имеется. Не обязательно в продукт код на python должен попадать.

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

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

Кто-то мешает ещё и в машинных кодах написать в hex-редакторе? Конечно никто не мешает. На чём угодно можно написать. Потому вопрос выходит совсем на другой уровень, а не «bash - единственное средство для наколеночных скриптов» (можно ещё zsh сюда приплести).

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

Iron_Bug> numpy - это обёртка над сишными библиотеками. и всё равно она умудряется убить производительность.

Что тогда скажешь насчёт того, что софтовая базовая станция LTE реализована на Octave (совместимый аналог MATLAB)?

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

Не боишься, что твою дверь ночью порубит топором фортранщик?

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

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

Так python или тот быдлокодер, который на нём говнокод понаписал?

Iron_Bug> биткойном не занималась, но сетевым трафиком в больших объёмах - да.

Это не для python задача. Не с этой колокольни о python надо судить. Я не понимаю твоих претензий.

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

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

Iron_Bug> или, например, эмбеддед, где на всё про всё 16 метров

Жирненький у вас там embedded... Четырёх килобайт RAM уже мало?

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

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

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

Гугль, пейсбук и амазон как раз тормозят. Плохой пример.

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

Iron_Bug> а зачем пробовать? вот лежит кучка говна. я не собираюсь её пробовать. она на цвет и на запах ни разу не похожа на повидло.

Я не понял: сейчас речь про Python или про экосистему MS .NET?

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

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

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

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

То же самое можно сказать про C, C++, Pascal, Haskell, Java и т.д.

И загруз был не от python, а от скрипта, который в им выполнялся.

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

Писал простенькие скрипты в kwrite на python с использованием tkinter. Всё работало как надо. Что я делал не так?

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

Lavos> Тогда awk/perl, но всё равно не петон.

awk менее удобен в этом случае. А PERL или Python - это уже дело вкуса. Не более.

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

И загруз был не от python, а от скрипта, который в им выполнялся.

Ява не тормозит. Тормозят программы на Яве. Ява без программ почти летает.

Stahl ★★☆ ()

Iron_Bug дальше своего сишного мирка не выбиралась за исключением пхп, и претендует на авторитетное мнение о питоне. «Не писала, но осуждаю». А большие проекты на питоне есть. Хотя бы тот же openstack.

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

Stahl> Ява не тормозит. Тормозят программы на Яве. Ява без программ почти летает.

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

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

Lavos> А ещё лучше сразу писать на кошерной сишечке.

Ну пиши. Только потом не ной, что слишком долго разработка одноразовой программы идёт.

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

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

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

perl

серьёзно?
Я теперь даже парсеры сайтов на питоне пишу, ибо перл утомил (сколько десятков лет на нём писал, столько уставал его «парсить»)

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

Поэтому я и написал «notepad.exe». Сейчас даже самый позорный kwrite мало того, что со всем пограмистским дерьмом справляется, так еще и vim-режим имеет

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

Лучше бы js только в вебе и остался. Его для веба и доводили.

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

Даже в notepad.exe можно более-менее комфортно код писать на python благодаря отступам.

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

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

Совершенно определённо он этого не делает.

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

Портит исходники на Python.

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

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

Я уже давно объяснил как обстоят дела, и даже выдал пистономакакам однострочник, которым выбранные маркеры начала и конца блоков прекрасно заменяются на отступы. (обратная задача ничуть не сложнее, кстати, и тоже решается однострочником) А то, что некий туповатый персонаж не может это использовать, прям как вендузятник тупо копирующий «ls -la /home/jonny» к себе в убунточку, то это не мои проблемы.

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

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

Как тяжело люди с высшим образованием привыкают к новым языкам.

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

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

Ещё раз - маразм с отступами в пистоне ничем не оправдан и не имеет никакого смысла

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

Из классики:

... Я осознаю, что существуют безмозглые пидоры, у которых в список значимых кримериев может входить, к примеру, синтаксис языка. Hу так накласть мне на них. Меня интересуют объективные критерии, а не цацки всякие.

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

Наверняка не осилил скобочки правильно расставить.

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

Вообще, использовать для одного языка форматтер другого — наивно. Взять, к примеру:

a = 10 // 5

А как он там будет длинные выражения переносить? В Python не обязательны точки с запятой, а в Си обязательны. В Си допустимо и нормально выражение в несколько строчек написать, тогда как в Python это будут разные выражения. Получается, несколько выражений могут быть собраны в одно, с потерей смысла?

Что насчёт двоеточий? Почему они обязательны? Логично было бы делать так:

if a == b {
  print "'equal"
}

а не заставлять всё ещё делать так:

if a == b: {
  print "'equal"
}

В общем, эти потуги с indent тянут на «выпендриться», но не тянут на PoC.

i-rinat ★★★★★ ()

А зачем начинают требовать отступы делать пробелами, а не табом? Ладно Python, но когда такое в Rust - не могу понять. С редактором проблем нет, он сам всё расставит, но если Вася привык читать два пробела, Петя четыре, Маша восемь? Не критично, но неприятно ограничение на ровном месте. Интересует обоснованность техническая.

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

Да покрывайся. А разного рода петушки так и норовят ткнуть меня во всякие PEP8. Не осилили они прочитать первую строчку и что так называемый стандарт лишь для стандартной библиотеки.

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

Понятно, что Stanson на регулярочках это сделать не сможет ни при каких обстоятельствах

Ну, Stanson случайно угадал правильное направление - использовать не только регулярки, но и настоящие лексер и парсер (из indent). Правда, всё равно получился фейл и пришлось изображать филина-стратега из анекдота.

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

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

И для определенных задач С/С++ прекрасны, у них есть свои подходы к работе с исходным кодом, идиомы, но с чего бы объявлять их абсолютной истиной решительно непонятно и уж тем более пытаться все языки мерить с колокольни С\С++. Если поступить наоборот, то получится примерно так: да в этом ашем С/С++ стандартная библиотека просто никакая,обмажутся своими шаблонами и компеляют по два часа чтобы пото читать з-км простыни от компилятора, гордо себя именуют С++-программистами, а пишут все том же С, в этом вашем С стандартных структур даннх нет, алгоритмов так же кот наплакал, велосипедят все или натащат кучу библиотек кривоватых и считают это нормой. А и С++x11 то ли больше миф, то ли реальность в продакшене.

Вот только это бред рзумеется требовать от низкоуровневых языков батарейки уровня Java или питона, или чего-то подобного.

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

Ага, я это читал. Но там вопрос скользкий, в indent не совсем парсер Си, да и всё равно же не получилось.

tailgunner ★★★★★ ()

Соглашусь с ТС.

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

Лично я вижу в отступах питона больше проблем, чем плюсов.

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

Но он же не работает!!11

Ну что ты там выдал то? Неработающий однострочник?

Просто дешёвый и дебильный выпендрёж в чистом виде и ничего больше

а что удобнее? миллион

})})})})
как в js? или
)))))))
как в лиспе?

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