Numerous programming languages exist, each with its own advantages. Java is the most common programming language, and therefore the one your colleagues will likely be able to help you with the most. However, The C programming language and Python are both nearly as common, and all are highly regarded in the robotics industry. Visual programming languages, like LabVIEW, have made programming easy to understand and accessible to a variety of engineers. Depending on how well acquainted you are with programming, different languages offer different benefits. So, which one is right for you?
The Advanced Programmer
If you already have experience doing coding and developing for robotics, then chances are you are familiar with Java, C, and Python. The C language, in particular, is used for embedded development and real-time high-level programming. This includes vision processing, control, and motion decision-making algorithms. They are the fast programming languages with better support to object-oriented programming, multi-threading, memory management and RAII.
If you know a little about programming but still need a fair amount of help and support, we suggest Java, MATLAB or LabVIEW. All three languages are popular, time-tested, and their online resources are abundant. Chances are, if you studied engineering in college, you have already used Java and MATLAB. LabVIEW is a refreshing alternative. This visual programming language is the proprietary software of National Instruments. It is built into products like myRIO and, formerly, cRIO. You may also be familiar with LabVIEW if you participated in Vex or FIRST Robotics in high school. While LabVIEW is great for beginners, it is powerful enough for novice programmers and pros alike.
If you have basic knowledge of programming, or you could use a refresher, Python, Arduino, and visual languages like LabVIEW are right up your alley. Python is easy to learn and a staple for applications like microcontrollers. However, Python is not suitable for applications requiring precise DOF control, iterative processes, or real-time vision processing. The trade-off is what you get in online libraries and support. Python experts offer some of the most thorough and fleshed-out resources. It is the ideal programming language for off-line programming.
Bonus Languages for AI
If you intend to work on AI and programming quite a bit, LISP would be a great option for you regardless of your skill level. LISP using list structure to represent data. Programs and data work with the same structure, so LISP programs can operate other systems as data. This means LISP programs are ideally suited for self-modifying or “learning” programs, i.e., artificial intelligence. Robust, simple, and internally reflexive, LISP is a great bonus language every roboticist should know.
Qt is another great bonus language worth picking up. This language allows programmers to develop software with the user interface in the foreground of their minds. Qt focuses on streamlining workflows and getting your product to market quickly and with a professional, intuitive look and feel designed to hook your users and build brand loyalty.
Once you have chosen what language you want to code with, you can go ahead and download our ebook to learn more about how you can get started designing your own cell. The language you choose will be partly constrained by the application, but also by your comfort level. Make sure you choose a programming language that is compatible with your project but also versatile enough to work well with the knowledge base of the coder.