0

I am looking for a recommendation on a platform for building quick calculation tools (with a gui) that I can reuse and also need basic file functions.

I am an engineer and use a lot of calculations for different equipment sizing exercises and such. I would like to build a simple software utility that I can store some of the calculations in so that future calculations are quick and easy.
The features that I am most concerned with:

  • It should be straightforward to add additional features later.
  • I would like the tool to allow packaging so that I can share it with others who are unlikely to participate in development
  • I would like file inputs and outputs to be straightforward to implement so that I can just load the calculation parameters if I need to revisit an older calculation. I would envision the files using xml or something similar.
  • The majority of users would be Windows users, so that would be my target platform

I am not a stranger to programming, but have spent most of my time working with C++. I am looking for some direction if using python, or java or something else would be the most straightforward for these purposes since I fully understand that you could accomplish these tasks with virtually any language/platform with enough time and work.

1 Answer 1

2

I would suggest taking a look at the combination of Python, Numpy, Scipy, etc. for the calculations you may wish to use cython for any intensive calculations that are not already available & possibly Jupyter Notebooks for the UI.

The calculations part: Pythons extensive range of libraries give a huge range of functions in a range of fields that are fast and well tested. Python also supports arbitrary precision calculations if needed.

The UI part: There are a number of GUI creation tools available such as wxPython but the reasons that I would suggest Jupyter notebooks are that:

  • Your user interface is a web page
  • That web page can contain the code, data, parameters, explanations, formulae, charts and diagrams all in one place
  • You can quickly produce reports in PDF format, etc.

Platforms: The above tool chains are available for Windows, Linux, Mac, and a large number of other platforms from RaspberryPi up to Super Computer Clusters and your code, provided you avoid a very few platform specific packages, will run on all of them.

Packaging: There are a number of packaging options including:

  • Point your users at where to install the tools and let them do so
  • PyInstaller, cxFreeze, py2exe, py2App can be user to build packages for specific platforms that include everything needed.
  • You could make a server available that is running JupyterHub or DockerSpawner that any of your users can connect to an start their own Jupyter session.
  • You can bundle up everything needed into a docker container.

The best bit about this is that, with a little care, you can provide all of the above options without having to rebuild your code for each.

Cost: All of the above tools are Free, gratis & open source.

Licencing Issues: All of the above tools are under "permissive" licences which allow commercial use as well as academic and public distribution.

Quick Development: Python is very well known for the speed with which it is possible to develop new tools but still allows, by using the libraries, etc., fast execution.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.