If you have interest in robotics,confused to chose which programming language read this once..You'll definitely got a idea.
Top 10 Popular Programming Languages in Robotics
There are over 1500 programming languages in the world, which is far too many to learn.
Here are the ten most popular programming languages in robotics at the moment. If your favorite language isn’t on the list, please tell everyone about it in the comments! Each language has different advantages for robotics. The way I have ordered them is roughly in order of importance from least to most valuable.
Pascal is a basic language (literally based on the language BASIC) and was designed to encourage good programming practices.
These days, Pascal is too outdated to be good for everyday use. However, it can be useful if you want to become familiar with other industrial robot languages without becoming tied to one particular robot brand.
A brand new entry to this list, Scratchis used by thousands of budding roboticists around the world every year. This visual programming language is specially designed for new programmers — targeted at users aged 8 to 16 — and is often the language of choice in school technology classes and robotics clubs.
Although you're probably not going to write any industrial robot programs in Scratch, it's an incredibly good and popular language for complete beginners and is paving the way for many of our future robotics engineers.
8. Industrial Robot Languages
Almost every robot manufacturer has developed their own proprietary robot programming language, which has long been one of the problems in industrial robotics. You can become familiar with several of them by learning Pascal. However, you are still going to have to learn a new language every time you start using a new robot brand.
ABB has its RAPID programming language. Kuka has KRL (Kuka Robot Language). Comau uses PDL2, Yaskawa uses INFORM and Kawasaki uses AS. Then, Fanuc robots use Karel, Stäubli robots use VAL3 and Universal Robots use URScript.
In recent years, more general-purpose programming options like ROS Industrial, manufacturer agnostic offline programming, and hand guiding have started to provide more standardized options for programmers. However, if you are a technician, you are still more likely to have to use the manufacturer's language.
Artificial Intelligence (AI) has really been gaining in popularity recently. This means that AI programming languages like LISP and Prolog are starting to make their way back into people's programming toolkits.
LISP is the world's second oldest programming language (FORTRAN is older, but only by one year). Parts of ROS(the Robot Operating System) are written in LISP, although you don't need to know it to use ROS.
Prolog is a logic programming language and allows programmers to represent "knowledge" in a form that an AI algorithm can understand. Prolog was used as part of the programming in IBM's Watson AI.
It is also possible to program artificial intelligence using some of the other languages on this list and more that are not listed. However, LISP and Prolog remain at the core of some AI implementations and certainly deserve their place on this list. It's also worth remembering that robotics and AI are not the same thing.
Hardware Description Languages are basically a programming way of describing electronics. These languages will be very familiar to electronic engineers who create the low-level electronics of robots.
HDLs are commonly used to program Field Programmable Gate Arrays (FPGAs). These devices allow you to develop electronic hardware without having to actually produce a silicon chip, which makes them a quicker and easier option for some development tasks.
If you don't create prototypes of robotic electronics in your job, you may never use HDLs. Even so, it is important to know that they exist as they are quite different from other programming languages. For one thing, all operations are carried out in parallel, rather than sequentially as with processor-based languages.
MATLAB (and its open-source relatives like Octave) is very popular with some robotic engineers for analyzing data and developing control systems. It is used extensively in research and data processing. It's also used extensively in some university courses.
For robotics, there is also a very popular Robotics Toolbox for MATLAB. I know people who have developed entire robotics systems using MATLAB alone. If you want to analyze data, produce advanced graphs or implement control systems, you will probably want to learn MATLAB.
C# is a proprietary programming language provided by Microsoft. I include C#/.NET here for two reasons:
- It is the primary language of the Microsoft Robotics Developer Studio. If you are going to use this system, you're probably going to have to use C#.
- It is used as the basis for some Virtual Reality engines, like Unity, which are growing in popularity right now.
C# is not the easiest option to learn first as it is a complex language. I would usually recommend learning C/C++ first. However, it is certainly necessary in some areas of robotics.
If you come to robotics from a computer science background (and many people do) you will probably already have learned Java first.
As an electronics engineer, I have never understood Java. I've always preferred languages that allowed for lower-level programming and more control, like C. This is a good example of how people from different disciplines within robotics have different programming preferences — just because I don't like it doesn't mean you shouldn't.
Like C# and MATLAB, Java is an interpretive language, which means that it is not compiled into machine code. Rather, the Java Virtual Machine interprets the instructions at runtime, allowing you to use the same code on many different machines.
Java is quite popular in some parts of robotics. It's apparently one of the core languages of several modern AIs, including IBM's Watson and AlphaGo.
Python is on a roll at the moment. According to statistics it is has grown rapidly to become one of the top languages.
One of the reasons for its popularity in robotics is probably that Python (and C++) are the two main programming languages found in ROS.
The prime focus of the language is ease-of-use. Many people agree that it achieves this very well. Python dispenses with a lot of the usual things which take up time in programming, such as defining and casting variable types. Like Java, it is an interpreted language.
There are also a huge number of free libraries for Python which means you don't have to "reinvent the wheel" when you need to implement some basic functionality. And since it allows simple bindings with C/C++ code, the performance-heavy parts of the code can be implemented in these languages to avoid performance loss.
With more and more robotics-friendly electronics now supporting Python "out-of-the-box" (e.g. Raspberry Pi), we are likely to continue to see a lot more Python in robotics.
Finally, we reach the Number 1 programming language in robotics!
Many people agree that C and C++ are required languages in robotics. Why? Because a lot of hardware libraries used in robotics use one of these languages. These libraries allow interaction with low-level hardware, allow for real-time performance and are very mature programming languages. These days, you'll probably use C++ more than C, although C remains one of the most efficient programming languages available.
C/C++ are not as simple to use as, say, Python or MATLAB. It can take quite a lot longer to implement the same functionality using C and it will require many more lines of code. However, as robotics is very dependent on real-time performance, C and C++ are probably the closest thing that we roboticists have to "a standard language". This is true even despite the growing popularity of Python.
If you take away just one thing from this article…
Many people have used this article to say that they should learn C/C++ or Python first.
This conclusion may be true…
… however, let me give you just one piece of advice:
Learn whichever programming language makes the most sense for you right now.
The most important thing is to develop your "Programming Mindset". Learn as many programming languages as you can. The more you learn, the better you will be at programming. Just because I've listed these ten languages doesn't mean that you have to learn all of them, or indeed any of them. The most important thing is to find a language that feels natural for you and fits with your robotic hardware.
And if you really want a recommendation…
If you must push me for a recommendation, I would suggest that you want a language that allows you to develop programs quickly and easily, so that you can focus more on developing functionality.
For this reason, I would recommend learning Python first. This is just my own personal opinion. If another language makes more sense for you, then learn that instead. However, Python is an amazingly straightforward language to learn and hugely powerful thanks to the many, easily-accessible libraries.
I have heard many accounts from (already experienced) programmers who learned Python in a couple of days and were immediately converted to it for almost all of their programming needs. As one guy said, "I can produce usable code in Python as fast as I can type."
After you've gotten reasonably proficient using Python, I would personally recommend learning C, followed by C++. You will need it to interface with a huge majority of robotic hardware drivers.
Author Name : Alex Oven -Hill
Author link : https://blog.robotiq.com/author/alex-owen-hill