VisenDev / Saver5

CNC upload/download program
5 stars 0 forks source link

Language #1

Closed VisenDev closed 1 year ago

VisenDev commented 1 year ago

Decide which language we want to use for our project

VisenDev commented 1 year ago

Well after giving this some thought, here are some options:

TLDR: I think we should use JS

Python: -pro: relatively simple -pro: cross platform -con: most of us have never created a gui with python -con: python interpreter must be installed on target machine -con: python libraries must be installed on target machine -con: most of us will need to relearn python for this project

C/C++ -pro: we all have experience with it -pro: allows direct access to hardware -con: memory management is more difficult -con: creating a gui will be difficult -con: libraries may not be cross platform -con: Build system (cmake, etc) is complex -con: compiled, which means original source code can be lost

JavaScript -pro: most us have taken webdev and thus are familiar with js frontends -pro: simple to use (dynamically typed, garbage collected) -pro: cross platform -pro: can be easily bundled into a standalone application using electron (which i have experience in) -pro: libraries will be cross platform -pro: build system with npm is simpler than make/cmake -pro: interpreted, source code is present in application -con: some of us may not be as familiar with it as C++

To me, it seems like a Javascript app using electron will be our best choice. Any other opinions or comments? (We need to decide this before Monday)

VisenDev commented 1 year ago

More thoughts:

C Pros -A C application would be much faster and dramatically more lightweight than python or javascript -We could ship the C application as a single .exe file, no external dependencies or other complexities required -Using arena allocators can make managing memory much simpler -Libraries like raygui.h can make gui creation in C pretty painless and cross platform -Direct hardware access may mean there are more abundant serial port libraries available for C

Cbumann2 commented 1 year ago

I'm good with JS or C, but I lean more towards JavaScript.

VisenDev commented 1 year ago

Golang Chosen