powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
25 сообщений из 27, страница 1 из 2
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39669896
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В свое время у Страуструпа прочитал, что надо обязательно делать прототип будущей программы, который выполняет роль каркаса без наполнения конкретным функционалом. Подобный прототип:
1. Сразу показывает основные несостыковки проекта (без всяких uml).
2. Позволяет при наполнении подсистем более точно чувствовать их смысл и содержание.
3. Упрощает проектирование всей системы (не сваливаясь в детали задается структура проекта).

Появилась идея писать прототип на языке быстрой разработки, и только поняв узкие места производительности применять эффективный С++. Это позволит львиную долю кода написать значительно быстрее (и опять же упростит систему, внеся дополнительное разделение проекта).

Но! Нужно чтобы отладка происходила "бесшовно", т.е. я начинаю использовать отладчик Python, а по мере спуска по стеку вызовов автоматически (без лишних движений с моей стороны) стартует отладчик для С++, а потом при поднятии по стеку- опять отладчик Python.....

Как такое организовать?
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39669964
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,
что делать то хочешь?

для начала нужно выбрать:
либо расширяешь питон

либо встраиваешь его
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39669970
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kealon(Ruslan)AlekseySQL,
что делать то хочешь?

для начала нужно выбрать:
либо расширяешь питон

либо встраиваешь его


Вы не поняли мою мысль: я ничего никуда встраивать не хочу и такими категориями вообще не мыслю. Я хочу разделить проект на кусок занимающий 90% времени выполнения (вычислительное ядро) и вспомогательный код (обертка). Первое пишется на С++, второе- на Python.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39669976
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

поясню
пишешь модуль для питона

встраиваешь интерпретатор питона в своё приложение

соответственно, в каждом случае стратегия будет отличаться
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39669981
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

разъясню вторую ситуацию на примере

я встраивал в своё приложение VBScript (язык не суть важен, попутно оно и JScript и со своим движком работало)

соответственно саму программу я спокойно отлаживал в IDE - тут делать ничего не нужно
для скриптого безобразия я делал фактически IDE (редактирование, отладка и пр.).
Фактически я мог сесть за любой ПК и отладить скриптовое безобразие, но естественно не нативный код

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

из огромных минусов - отладить скрипт где-то в другой IDE практически невозможно, так как он завязан на специфические объекты, которых нет в самом языке
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39669983
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kealon(Ruslan)AlekseySQL,

поясню
пишешь модуль для питона

встраиваешь интерпретатор питона в своё приложение

соответственно, в каждом случае стратегия будет отличаться


Это проект, в котором часть файлов написано на Python, а часть на С++.

Возможен такой стек вызовов:
С++
Python
C++
Python

Что здесь во что вложено?
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670012
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLВозможен такой стек вызовов:
С++
Python
C++
Python

Что здесь во что вложено?если вы не можете хотя бы для себя решить, что у вас первым запускаться будет, то наверное вам рано до таких проектов
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670174
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kealon(Ruslan)AlekseySQLВозможен такой стек вызовов:
С++
Python
C++
Python

Что здесь во что вложено?если вы не можете хотя бы для себя решить, что у вас первым запускаться будет, то наверное вам рано до таких проектов

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

Пока расклад примерно такой, но разумеется из- за специфики конкретной задачи он может измениться.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670366
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

пока расклад такой: каждый пилит что может, готовое врят ли кто даст

запуск скрипта - десяток строчек,
нужна отладка - пиши IDE или минимум расширение-отладчика для студии

можно конечно закостылить типа CGI, но кажется вам такой вариант не понравится по скорости
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670415
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

Насчет быстрого прототипирования - идея верная.

А обоснование использования отладчика слабое.

Есть 2 серъезных кейса когда отладчик нужен.
1) фиксится баг. Но логгирования недостаточно чтобы понять что происходит в prod или QA environment.

2) изучение или исследование чужого кода в динамике.

В вашем случае - не первое и не второе.

Так что там у вас?
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670444
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonAlekseySQL,

Насчет быстрого прототипирования - идея верная.

А обоснование использования отладчика слабое.

Есть 2 серъезных кейса когда отладчик нужен.
1) фиксится баг. Но логгирования недостаточно чтобы понять что происходит в prod или QA environment.

2) изучение или исследование чужого кода в динамике.

В вашем случае - не первое и не второе.

Так что там у вас?

А у нас пишется новый код. Неужели вы можете написать, например, 10 листов А4 совсем не смотря в отладчике что делает программа?
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670451
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLА у нас пишется новый код. Неужели вы можете написать, например, 10 листов А4 совсем не смотря в отладчике что делает программа?Скрипты обычно маленькие пишут, дебаг-вывода как правило хватает. А более сложные скрипты не завязанные на логику программы можно в поноценной IDE Отладить (PyCharm например).

Вы просто не представляете "стоимость включения" более-менее полноценной IDE в проект. Это делают когда уже есть солидный профит от проги и всех задолбало отсутствие отладчика.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670504
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLНо! Нужно чтобы отладка происходила "бесшовно", т.е. я начинаю использовать отладчик Python, а по мере спуска по стеку вызовов автоматически (без лишних движений с моей стороны) стартует отладчик для С++, а потом при поднятии по стеку- опять отладчик Python.....

Как такое организовать?

https://docs.microsoft.com/ru-ru/visualstudio/python/debugging-mixed-mode-c-cpp-python-in-visual-studio
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670520
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

Делишь программу на две части - библиотечную (можешь ее на этапе прототипа делать на том же питоне) на С++
и Основной каркас.

Библиотечная часть делается со своими юнит-тестами.

Всё. Потом из каркаса лазить в отладчик в библиотеку не надо. Если всплывает ошибка - вставляешь исходные в юнит тесты и там отлаживаешь библиотеку.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670583
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLmaytonAlekseySQL,

Насчет быстрого прототипирования - идея верная.

А обоснование использования отладчика слабое.

Есть 2 серъезных кейса когда отладчик нужен.
1) фиксится баг. Но логгирования недостаточно чтобы понять что происходит в prod или QA environment.

2) изучение или исследование чужого кода в динамике.

В вашем случае - не первое и не второе.

Так что там у вас?

А у нас пишется новый код. Неужели вы можете написать, например, 10 листов А4 совсем не смотря в отладчике что делает программа?
Мне сложно оперировать листами A4.
Но та область в которой я работаю предполагает
Самый верхний уровень архитектуры приложения
Описывать в терминах конфигураций Spring/Camel.
Туда незачем ходить отладчиком.

Грубо говоря вы проектируете независимые (слабо связные) компоненты на обычном ЯП. Тестируете.

А потом уже в терминах dsl вашего интеграционного фреймворка вы склеиваете эти компоненты в приложение.

И отладчик тут тоже мало помогает. Даже диалектически. Debugger от ловли багов. А не от архитектур.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670699
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсть 2 серъезных кейса когда отладчик нужен.
1) фиксится баг. Но логгирования недостаточно чтобы понять что происходит в prodОсобенно хорошо искать отладчиком баги в многопоточном коде.
И особенно - на промышленной системе.

Пользователь, такой, работает, а разработчик сначала убил основу бага, а потом еще и залип в монитор на пару минут: "И почему это проблема не воспроизводится?.."
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670907
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovmaytonЕсть 2 серъезных кейса когда отладчик нужен.
1) фиксится баг. Но логгирования недостаточно чтобы понять что происходит в prodОсобенно хорошо искать отладчиком баги в многопоточном коде.
И особенно - на промышленной системе.

Пользователь, такой, работает, а разработчик сначала убил основу бага, а потом еще и залип в монитор на пару минут: "И почему это проблема не воспроизводится?.."
По твоему обязательно брейкпоинтом стоять?
Мы ходили на прод через jdb и смотрели статусы потоков и всякое разное. Это было в том
случае когда jmx-порты были по различным причинам закрыты.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670916
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМы ходили на прод через jdb и смотрели статусы потоков и всякое разное.
Это было в том случае когда jmx-порты были по различным причинам закрыты.Странно - у нас разработчики просили:
1. Логи уровня debug;
2. Дампы стека;
3. Дампы кучи.
Чтобы цепляться отладчиком - даже поползновений таких не было.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670918
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё зависит от того как построена система взаимоотношений с кастомером. И нигде нет одинаковой системы.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39670920
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLВсегда считал, что задача определяет инструменты, а не наоборот. Например, тот набор стека, который я привел может выполнять следующие действия:
С++ - интерфейс, написанный на Qt.
Python - макрологика приложения (код который в программе выполнится 1 раз).
C++ - конкретная вычислительная задача.
Python - любые обслуживающие действия для основных вычислений, например, запись промежуточных результатов вычислений в файл.

Логичнее было-бы делать так (по степени "транслируемости").

Python
Python
C++
C++
C++
Assembler

Другая мысль. Современная среда разработки позволяет держать одновременно много подключений к портам отладки.
Яркий пример cвязка GWT-debug + Java-debug. Но если эту макрологику (как отдельную виртуалку класса Python)
ты в состоянии конфигурировать - то ты наверное можешь для нее поднять отдельный порт дебага и тоже подключить
к нему среду. Не спрашивай меня как это делать. Я не спец по Питонам.

Но наверное помимо желания всё видеть и всё дебажить надо еще и где-то себя ограничить. Бизнес задача всё-таки
имеет свои логические границы. В противном случае завтра ты захочешь подбежить весь стек операционной
системы с дровами.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39671040
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЧтобы цепляться отладчиком - даже поползновений таких не было.

А собрать дамп приложения и прицепиться отладчиком к нему?
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39671109
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperА собрать дамп приложения и прицепиться отладчиком к нему?Да бога ради.
Только делается это не на промышленной системе, а во внутренней кухне разработчика.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39671163
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНасчет быстрого прототипирования - идея верная.


Нет. Автор языка Python предлагал его для прототипирования программ на C++ и были даже "истории успеха", но мода на это давно прошла. Зато Python всё больше используется для написания готовых программ. Когда не хватает скорости, используются библиотечные функции на C/C++ или использующие GPU. Поскольку таких библиотек (называются пакетами) накопилось много, то маловероятно, что их придётся добавлять самостоятельно. Например:

AlekseySQLНапример, тот набор стека, который я привел может выполнять следующие действия:
С++ - интерфейс, написанный на Qt.
Python - макрологика приложения (код который в программе выполнится 1 раз).
C++ - конкретная вычислительная задача.

Неудачная идея типа "изобретение велосипеда". Не надо программировать интерфейс с Qt на С++ . Для Python уже есть модули связи (binding-и) с Qt причём даже 3: PySide, PyQt4, PyQt5. Все хорошо документированы. Они позволяют использовать только ту часть Qt, которая относится к визуальному интерфейсу, но остальное в Python не нужно, так как и без того для него есть много пакетов на разнообразные темы. Связывание Python с Qt впрочем нужно не для скорости, а просто чтобы пользоваться функциями Qt.

AlekseySQLC++ - конкретная вычислительная задача.

Для конкретной вычислительной задачи надо изучить конкретные средства её решения. А то полезете к программистам на Python с предложением своего умения программировать на C++, и неожиданно окажется, что у них уже используется математическая библиотека NumPy, которая может использовать вычисления в GPU (если оно доступно), так что ваша приблуда на С++ будет медленнее.
Примечание. Из API для GPU в Python есть хорошая поддержка только для CUDA.

Вообще, программисты на C++ склонны преувеличивать значимость своих знаний. Python им будет полезен для расширения кругозора. Я сейчас в основном программирую на Java, но для расширения кругозора осваиваю также Python и Go.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39671164
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ставил Python как необходимость в cli для cassandra. Вообще многие консольные "прослойки" на нем написаны.
...
Рейтинг: 0 / 0
Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
    #39671805
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

21548429 попробовал? как оно?

экож сподобились, и 10 лет не прошло ...
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как совместить Python для быстрой разработки "обертки" и С++ для "вычислительного ядра"?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]