LINUX.ORG.RU
ФорумTalks

Питон здорового человека

 ,


1

3

Ahoi!

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

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

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


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

переформатировать код придется в любом случае

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

А в ЯП, где форматирование подменяет собой логическую структуру, жди беды. Можно просто не понять, что что-то пошло не так.

Тебе конструкция

DO 3 I = 1.3

что-нибудь говорит?

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

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

достаточно при копипасте питон-кода неверно выделить начинающийся пробел и логика блоков осыпется.

Питонисты: вот видите, питон борется с копипастой!

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

Возьмём наш ЛОР. Попытка выделить сообщение со временем его создания приводит к выделению аватарки. Т.е. одно неловкое движение мышкой и скопипастишь код с мусором, вот только при наличии явных операторных скобок мусор вычищается без нарушения логики.

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

Возьмём наш ЛОР. Попытка выделить сообщение со временем его создания приводит к выделению аватарки.

Это откуда должны расти руки, чтобы выделяя сообщение на ЛОРе вместе с временем его создания, выделялась аватарка?

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

Попробуйте сами, вот что получается у меня: mister_VA 26.04.23 23:40:54 MSK  (—— здесь мусор от аватарки, видимый при редактировании

Возьмём наш ЛОР. Попытка выделить сообщение со временем его создания приводит к выделению аватарки.

Это откуда должны расти руки, чтобы выделяя сообщение на ЛОРе вместе с временем его создания, выделялась аватарка?

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

Попробовал. https://pp.userapi.com/2lmzaJkKgVt5j22whg4jsO-2TWsRxIGI9RXICA/aUEcj-KKHK8.jpg

Рекомендую не только вправить руки, но и выяснить наконец за 16 лет пребывания на ЛОРе, где у сообщений находится время их создания.

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

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

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

Вот-вот. Как 200 грамм без закуси накатил.

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

копипаста нормально работает в приспособленном т/р.

И вообще этот аргумент о том что не все т/р приспособлены к питоновским отступам меня всегда удивлял. А зачем использовать т/р который не поддерживает питон? Вы в ворде, чтоли, скрипты пишите? Я вообще только Pycharm всегда использую для питона, ну иногда еще редактор простой в FM, в котором тоже есть рудиментарная поддержка питона. Вы что, код пишите и редактируете на компьютерах случайных людей в нотепаде за неимением чего-то еще, что-ли? Так если ставить питон с нуля, там редактор ставится какой-никакой. Его вполне можно использовать за неимением чего-то еще.

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

Да почти любой пример кода на нем является таким примером.

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

Попробовал в PyCharm вставлять код выделяя и пропуская куски по разному, все ок.

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

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

Так если ты код копируешь, он явно отформатирован как то.

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

Можно пример на Python?

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

Скопипастил код с мусором из ЛОРа, PyCharm все равно выровнил код, мусор оставил как есть.

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

Героически преодолевать «приспособленными т/р» проблемы, которые в других ЯП просто не возникают.

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

В любом ЯП это работает, только в питоне - нет.

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

А зачем использовать т/р который не поддерживает питон?

То есть питон претендует на роль ЯП, которому нужна особая поддержка от т/р. Другим ЯПам достаточно подсветки синтаксиса, и она необязательна, она всего лишь улучшает читаемость кода. Сильно улучшает, согласен. Но код её отсутствие не ломает.

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

Как буду писать не с мобильника — нарисую.

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

То есть питон претендует на роль ЯП, которому нужна особая поддержка от т/р

Конечно. Эту тему досконально раскрыли в холиварах ещё 20 лет назад. Но вот это т/р что-то новенькое. Читаю как телевидение и радио. Не ломайте мне парсер!

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

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

Без форматирования – это в том числе и без дополнительных отступов или всё же в виде «плоский текст», т.е. «без оформления»?

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

вставится у меня либо только текст, без лишнего

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

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

А зачем использовать т/р который не поддерживает питон?

Любимый? Для использования Питона на постоянке, понятно, что надо заточенные под него средства, но если надо немного навелосипедить по рецептам с просторов Инета?

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

То есть питон претендует на роль ЯП, которому нужна особая поддержка от т/р.

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

Nervous ★★★★★
()

Из своего опыта скриптежа для личных нужд могу сказать: проще полагаться на внешние программы и пользоваться их выхлопом, и для этого достаточно sh. Как ЯП это мусор, но если научиться нормально работать с пайпами и редиректами, это уже откроет кучу возможностей. Даже не стоит заморачиваться с bash, он такой же мусорный как ЯП, вся ценность во внешних тулзах.

Ну и иногда можно скомпилить сишный бинарник, сишный компилятор будет предустановлен с большей вероятностью, чем какой-нибудь Lua, Tcl или Node.js. Да и компилить бинарник на Си это скорее всего даже по ресурсам экономнее, чем запуск питонячьего скрипта.

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

иногда можно скомпилить сишный бинарник

Справедливости ради, встречал рекомендации по безопасности запрещать ставить бит исполнения на файлы в домашних и прочих «левых» директориях.

Tcl/Tk будет много где, но синтаксис tcl не лучше, чем у bash-а. Так что сейчас самый массовый (в Линукс после bash-а) всё же Питон, так что Питон, но со скобочками, а не отступами.

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

Нормальный у Tcl синтаксис, интерпретатор под него написать легко. Другое дело, что писать на Tcl сейчас, не привлекая внимания санитаров, не получится.

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

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

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

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

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

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

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

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

olegsov
()
Ответ на: комментарий от olegsov
  1. В диффе будет каша на 30 вставок и удалений. Или на 50. Или на 150. Легко можно принять за реальные правки.
  2. Я хочу, чтобы стрёмный код выглядел стрёмно. Я не хочу, чтобы он форматировался «как положено». Я хочу, чтобы временный стрёмный отладочный код выглядел максимально всрато. Тогда его сложно будет случайно пропустить в коммит.
wandrien ★★
()
Ответ на: комментарий от olegsov

Вообще много уровней вложенности - зло.

Если их отступами делать, то конечно. Особенно вымораживают языки разметки с таким синтаксисом. Тот же любимый рельсовиками haml это такой адок. Ну и yaml стоило бы сжечь напалмом.

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

set a 5 – нормально завместо a:=5 ?!

Это цена гомоиконности. Но вообще код на Tcl очень хорошо читается если попривыкнуть. После баша и перла это песня, хотя местами многословно.

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

хочу, чтобы временный стрёмный отладочный код выглядел максимально всрато.

Таки да, тоже стараюсь сделать его позаметнее — FIXME добавляю, отступов лишаю. С питоном такие номера не пройдут, конечно.

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

set a 5 – нормально завместо a:=5 ?!

Конечно, нет — скобочек не хватает.

(let [a 5] 
  ...)

Вот так гораздо лучше!

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

на практике почти во всех языках (императивных) = означает присваивание.

А сравнение «==». В математике знак «=» для чего только не используется и никого не парит, в том числе и для присваивания «вычислите значение выражения, если a=4, b=6».

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

Нету в математике присваивания, и

если a=4, b=6

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

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

Непонятно чем тебе неугодил питон для админских задач, тк как питон для этих целей используют с момента его создания. Но есть куча альтернатив. PHP, Perl, Ruby, C#, Golang. Но самые распространённые это питон, баш, руби, golang, ещё есть живые представители перла, но это редкое явление. Rust ещё обороты набирает, но это уже перебор.

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

Если, несмотря на то что это ЛОР, кому-то всё-таки нужен ответ на вопрос ТС, то это powershell.

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

Я бы даже сказал что если бы что-то вроде infix было встроено во всех LISP (только для мат операций) я бы к ним по другому относился, не как к забавному экспандеру для мозгов, а как к нормальным языкам :)

https://docs.racket-lang.org/russian-lang/ – лисп с инфиксными операциями.

monk ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)