На выходных достаточно угорел,...

Posted on Mon 14 November 2022 • Tagged with from_telegram, in_russian

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

На Nim можно легко компилировать нативные модули для дальнейшего вызова из Python. Собственно, такое упражнение я для себя и выбрал: взял пять функций для работы со строками, которые относительно недавно использовал, и реализовал их в виде nim-библиотеки, которую можно импортировать в python-код. Выбрал строки, потому что в числодробилках тягаться с numpy-экосистемой было бы сложно.

Гипотеза такая: учитывая простоту языка сабсета языка, на него можно будет переписывать узкие места кода на питоне (например, какой-нибудь препроцессинг), не прибегая к тяжелым наркотикам вроде Rust 🦀

TL;DR: - писать примитивные штуки действительно несложно, билдить под питон - тоже; - слишком примитивные функции ускорить не получится; - чуть более сложные куски приятно ускоряются; - тягаться с оптимизированным C кодом, обернутым в питон, тоже нельзя.

В общем, в прод не потяну, а для какого-нибудь оффлайн процессинга вполне можно пробовать. Чуть больше деталей и исходники на Github 👨‍💻

source