PooH
Вот даже интересно стало, а чему бы вы отдали предпочтение python+c(cyton?) или python+c++. Ну и аргументы хотелось бы услышать.
Я писал C Extensions на Python C API, Cython и boost::python.
Однозначного решения нет.
Python C API знать нужно в любом случае. Разработка тяжела, требует очень много внимательности и тестирования (сегодня не заметил лишний Py_DECREF и все ломалось, причем не сразу). Но без этой основы - никуда.
Cython - очень здорово и быстро, хорош для отдельных не слишком больших модулей. Нужно знать Python C API чтобы понимать, что этот Cython нагенерит, где возможна оптимизация - и где нет. Генеренный код тяжело читать - а делать это приходится регулярно: шаг влево или вправо и можно получить все еще работающий модуль, который будет выполнятся медленней, чем просто написанный на Питоне. Плюс отсутствие сложных структур данных - Cpython это все же С, stl не хватает местами. На Python C API можно писать оптимальней - но делать это гораздо тяжелее.
boost::python. Для простых задач - из пушки по воробъям. К тому же сложнее в развертывании (setup.py можно настроить, но приходится делать больше телодвижений чем для C/Cpython). Если система сложная (или нужно завернуть С++ библиотеку, готовую или локальную, но имеющую ценность саму по себе) - лучший выбор.
Еще один ньюанс - приходится обращать внимание на время жизни объектов и конверторы Python <=> C++. Без ясного понимания легко напортачить. При использовании C/Cython такой проблемы как правило не возникает просто потому, что используются более примитивные конструкты. Т.е. если модуль на Cython дорастет до типовой сложности задач, под которые создавался boost::python - тоже прийдется обо всем заботиться. Но до такого чаще не доходит.
Очень красивая форма записи. Великолепный дизайн. Быстрый код. Отличная расширяемость - можно встроится в любом месте (часто нужно хорошо владеть метапрограммированием на С++, но это другая проблема)
В целом - мощнейший инструмент.
Как-то так. Эти инструменты не перекрывают друг друга - у каждого своя область применения.