Вполне закономерный вопрос. Хотел написать этом в топике и забыл. SWIG это хорошо и удобно, но для такого маленького модуля, imho, это оверкилл. У меня в сумме 3 часа где-то на всё вместе ушло. Да и интересно было написать без обёрток.
Ну а если нужен интерфейс к чему-то готовому, то SWIG конечно лучше.
А всем исходный код нравится и вызывает симпатию, поэтому когда первый раз прокручивают бегло статью — плюсуют) а чтобы что-то написать, надо время пока народ осилит много букв)
Язык С позволяет достичь огромного прироста производительности по сравнению с некоторыми родными модулями Питона. Например, есть великолепный модуль Pickle, который запаковывает объект в строку или файл в бинарном режиме. Он хорош и быстр, но есть модуль cPickle, который работает в ТЫСЯЧИ раз быстрее своего питоновского аналога.
А вообще если дадите кармы, напишу статью о консервации и последующего использования объектов. Я много интересного знаю про Питон.
Всё дело в том, что некая группа товарищей в свое время меня основательно минуснула, так что никуда написать не могу, кроме комментов, а в комменты писать как-то не сильно хочется, слишком тексту много.
А если серьёзно — то лёгкость которую даёт питон подкупает, к ней привыкаешь, и менять её на что-то другое уже не очень хочется. Думаю я не один такой.
PS: ОС на C у нас уже полно. Почему бы не написать ещё одну на Python? :P
ну точто на питоне можно быстро реализовать сносно рабочую поделку — это я и сам знаю… только в отличие от вас я трезво оцениваю возможности питона и его место…
Программист должен быть ленив. Гораздо проще и приятнее писать экстеншены на boost.python. В крайнем случае, если очень не хочется C++, существует SWIG
Впрочем, если надо написать простой модуль-прослойку из пары функций, нативный питоновский интерфейс достаточно удобен.
О ужас, pyrex-ом кто-то пользуется??? Мне он показался невообразимым костылем, поскольку не решает главной проблемы — простого и быстрого построения интерфейса к готовым библиотекам из мира C/C++.
А если просто надо быстро что-то сосчитать, в 90% случаев хватает NumPy и Weave.
rushman, а можно вас попросить написать статейку про то как вы с libvirt из питона работаете?
я помнится пытался в ней покопаться, но что-то не осилил.
кстати, можно на вашу систему управления машинками посмотреть?:)
Пишем модуль расширения для Питона на C