Computer languages
August 8, 2022The post I did on the R language made me think about the computer languages that I have liked and those that I haven’t. Thought it might be worthwhile to review what I continue to use.
Language | My use case | My experience |
---|---|---|
C | Embedded | Everywhere. I continue to find use for this language from the smallest embedded processor to high end PCs. For all the suggestions of some other language becoming the next right thing it continues to be my goto language. |
Rust | Embedded - Unix | Using Rust for a small cubesat development now. While not the magic wand that is often reported to be I am finding it to be a decent enough programming language. |
C++ | Object oriented development in large data processing applications | My first professional C++ application was a large mission data / communications for Mars lander missions. |
C++ | OpenCV & image processing | Lately I have moved to Python for my image processing development, but for code that might need to migrate to a device nothing beats C++. |
C++ | HLS (high level synthesis for FPGA and ASIC) | I had an FPGA project a few years ago and became frustrated about the time being spent in verification and the resulting slow speed to incorporate algorithm improvements. On my last large FPGA project I used a C++ based HLS methodology and found it to be faster, cost less to development, with fewer errors, and greater design flexibility than a conventional Verilog implementation. |
Verilog | FPGA / ASIC development | If you are specifying hardware nothing beats Verilog. Yes I know VHDL is supposed to be a better language, but didn’t find it to be faster, less error prone, or have any advantage compared to Verilog. |
C# | Desktop - fast application development | When I need a working application fast and error free and C# is an option then that is my goto choice. A number of years ago I had a project where the same problem was coded in C++, Java, and C#. (not by me - a jr. programmer working for me did it) The C# application was faster to develop, higher performance, and had less bugs. |
Python | Data analysis, processing, algorithm development | Python has become my go to language for all sorts of things. For a long time I used MATLAB for these kind of things, but Python has just become my universal tool. Plus I have become a very big fan of Jupyter Notebooks. |
JavaScript | Web | I have a love / hate relationship with JavaScript. I hate using it but have noticed that every year I use it more and more. |