Платформа для создания быстрых инструментов

Я ищу рекомендацию по платформе для создания инструментов быстрого расчета (с графическим интерфейсом), которые я могу повторно использовать, а также мне нужны базовые файловые функции.

Я инженер и использую много расчетов для различных упражнений по определению размеров оборудования и тому подобного. Я хотел бы создать простую программную утилиту, в которой я мог бы хранить некоторые расчеты, чтобы будущие вычисления были быстрыми и легкими.
Функции, которые меня больше всего беспокоят:

  • Позже должно быть просто добавить дополнительные функции.
  • Я хотел бы, чтобы инструмент позволял создавать пакеты, чтобы я мог поделиться им с другими, которые вряд ли будут участвовать в разработке.
  • Я хотел бы, чтобы файловые входы и выходы были простыми в реализации, чтобы я мог просто загрузить параметры расчета, если мне нужно вернуться к более старому расчету. Я бы представил файлы с использованием xml или чего-то подобного.
  • Большинство пользователей будут пользователями Windows, так что это будет моя целевая платформа.

Я не новичок в программировании, но большую часть времени работаю с C++. Я ищу какое-то направление, если использование python, java или чего-то еще будет наиболее простым для этих целей, поскольку я полностью понимаю, что вы можете выполнить эти задачи практически с любым языком/платформой с достаточным количеством времени и работы.

Ответы (1)

Я бы посоветовал взглянуть на комбинацию Python , Numpy , Scipy и т. д. для вычислений, которые вы можете использовать cython для любых интенсивных вычислений, которые еще не доступны , и, возможно, Jupyter Notebooks для пользовательского интерфейса.

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

Часть пользовательского интерфейса: существует ряд доступных инструментов для создания графического интерфейса, таких как wxPython , но причины, по которым я бы рекомендовал блокноты Jupyter , заключаются в следующем:

  • Ваш пользовательский интерфейс представляет собой веб-страницу
  • Эта веб-страница может содержать код, данные, параметры, пояснения, формулы, графики и диаграммы в одном месте.
  • Вы можете быстро создавать отчеты в формате PDF и т. д.

Платформы . Вышеупомянутые наборы инструментов доступны для Windows, Linux, Mac и большого количества других платформ, от RaspberryPi до суперкомпьютерных кластеров, и ваш код, если вы избегаете очень небольшого числа специфичных для платформы пакетов , будет работать на всех из них.

Упаковка : Существует несколько вариантов упаковки, в том числе:

  • Укажите своим пользователям, где установить инструменты, и позвольте им это сделать.
  • PyInstaller, cxFreeze, py2exe, py2App могут использоваться пользователем для создания пакетов для определенных платформ, которые включают в себя все необходимое.
  • Вы можете сделать доступным сервер, на котором работает JupyterHub или DockerSpawner , к которому любой из ваших пользователей может подключиться, чтобы начать свой собственный сеанс Jupyter.
  • Вы можете собрать все необходимое в док- контейнер.

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

Стоимость : все вышеперечисленные инструменты бесплатны , бесплатны и имеют открытый исходный код.

Проблемы с лицензированием : все вышеперечисленные инструменты находятся под «разрешительной» лицензией, которая разрешает коммерческое использование, а также академическое и публичное распространение.

Быстрая разработка : Python очень хорошо известен своей скоростью, с которой можно разрабатывать новые инструменты, но при этом позволяет, используя библиотеки и т. Д., Быстрое выполнение.