vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

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

Вот на что бы такое перейти?

Чтобы оно было действительно высокоуровневое, не rust и не go.

По хорошему счету бы чтобы оно было не менее высокоуровневым чем традиционный shell.

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

При этом хочется типизированности и компилируемости.

Переносимость в общем не шибко нужна. Debian stable (в смысле уже trixie к тому времени как соберусь что-то внеднять). На эльбрусах, пожалуй, шеллом обойдутсь, так что компилируемость вне основного набора платформ (x86_64, arm64, s390x, riscv64) не принципиальна.

X-Post to LJ

Date: 2025-02-25 12:40 pm (UTC)
elglin: (Default)
From: [personal profile] elglin
Я как практикующий питонист спрошу: а чем питон-то не люб?
90% претензий к питону (за вычетом одной категории), которые я видел, сводились к тому, что питон дает писать плохо. Но никто ж не заставляет писать плохо. Та самая категория, за вычетом которой, это производительность и всякий там GIL. В описанных вами задачах я не вижу высоких требований к производительности.
Типизированность у вас есть, если вы не ленитесь делать type hinting. Да, это не дает жесткой типизации, но вы и в Си можете что угодно кастануть к void*, а оттуда в что угодно. Что до компилируемости, ну, интерпретатор же при запуске компилирует в байткод, так что ошибки, которые поймал бы компилятор, поймает и интерпретатор до этапа исполнения. К тестированию питон более требователен, чем компилируемые языки, но так что ж.

И еще два соображения.
1. Питон обходит все прочие популярные языки по скорости разработки, а уж особенно в описанной вами области. Если вам надо фигачить большой объем функционала в фатально недостаточное время, альтернатив попросту нет. Я не припомню за последние лет пять ситуации, когда у меня было больше времени, чем функционала к реализации.
2. Вы когда-нибудь покинете текущую работу, все мы, в конце концов, смертны. Баш и питон найдется кому разобрать, поддерживать и дописывать, равно как джаву, голанг или даже си с крестами или без. Уже грувиста найти будет сложно, а если мы говорим о чем-то более экзотическом, то первое, что сделает ваш сменщик - это вместо дописывания будет писать обвязку вашего кода на понятном ему языке, а второе - будет полностью выкидывать ваш код в мусор, как только получит возможность.

Date: 2025-02-25 06:01 pm (UTC)
elglin: (Default)
From: [personal profile] elglin
Если скорость разработки примерно как у Си, так пишите на нем. Переносимый, компилируемый, типизируемый.
Нужны структуры данных - так возьмите плюсы с STL, никто не заставляет использовать Boost. Библиотеки для JSON есть. Для HTTP(S) можно на curl завязаться.
Но не берете. Значит, все-таки что-то тут такое у питона есть.

Date: 2025-02-25 03:41 pm (UTC)
nms: (Default)
From: [personal profile] nms
Ruby?

Date: 2025-02-25 08:39 pm (UTC)
nms: (Default)
From: [personal profile] nms
Я пришёл к ruby после перловки и питона. YMMV

Date: 2025-02-25 04:28 pm (UTC)
avryabov: (Default)
From: [personal profile] avryabov
Я тупо использую bash + awk.

Python всегда вызывает проблемы переносимости.

Если хочется компилируемости, то я для себя решил, что это должен быть rust. Хотя вариант Go тоже допустим, но это для слабаков.

Date: 2025-02-27 11:58 am (UTC)
From: [personal profile] justuser
Haskell, Ocaml.. мсье знает толк в извращениях..
Был опыт успешной разработки на них? Выбор действительно довольно нишевый

Date: 2025-03-12 03:55 pm (UTC)
From: [personal profile] justuser
В итоге к какому решению пришли? Python forever?

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

July 2025

S M T W T F S
  12345
6789 1011 12
13141516 17 1819
20212223 242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 26th, 2025 05:12 pm
Powered by Dreamwidth Studios