"For all the good, against all the bad: Comparing the effectiveness of languages and frameworks for measurement applications development"
Hi, folks!
I'm a senior software engineer and a senior scientist in company that makes hardware and software stuff for EMC testing.
In my practice i've made apps not only for EMC, but also for antennas measurements, scanners, radar cross-section measurements, etc.
So, i'm more or less good familliar with few programming languages: C, C++, Java, Python, MATLAB, assembly languages, SQL and many-many frameworks for them.
And some time ago i started to think how to sort them for different measurements tasks, to help me and other engineers make right choice in stage of planning.
Of course, any programmers themselves choose the language for their work, based on the task, their knowledge and skills.
But most often they simply choose the most familiar language and write everything in it.
So, a very common situation: a strange measuring program with a graphical interface,
because of which the eyes bleed and with functionality that makes you want to wash your hands with bleach after:
- Spectral analysis in PHP;
- Measuring antennas parameters in time domain in LabView;
- Super-duper "low-code" app for EMC testing with email sending, weather widget, Python scripts, 2 billion options, in C# + Python + SQL + LabView + Word of God;
- Software for reverberation chamber in Basic.
I saw them all.
And they all begged me to do research on improving the efficiency of measurement software development.
And if we say "Efficiency" we need to choice our task and some metrics, for comparing development instruments (languages, frameworks, etc.) between each other.
For example, our task is to make app for amplifiers testing via power meter, signal generator and spectrum analyzer.
And metrics: "Development time - DT", "Development cost -DC", "Functionality - FC", "Performance - PF".
Let's now compare, for example, MATLAB and C++ in this task.
MATLAB: DT - Low (cause we have instrument control toolbox and AppDesigner on board); DC - High or Medium (License cost); FC - High, PF - Medium (Java legacy i think).
C++: DT - High, DC - Medium, FC - High, PF - High.
So, as we can see MATLAB is little bit more efficient for this task than Cpp.
Of course my example is very simple and subjective.
But i want to make my research more objective and that's why i want to hear different subjective opinions of many pro's in their field of work.
So, what is your favorite frameworks, languages, apps for your daily tasks and why?
Thanks for your answers!