Monday, August 30, 2010

Is Erlang feasible option for Robotic applications?

The answer to this question is not straight forward(yes or no). It involves a lot of study about Erlang constructs, key features and current applications. I am currently working in this area and my work is to figure out some robotic application areas where Erlang certainly can be a good option than imperative programming languages(C, C++, Java).

Here I am writing some points which I observed. comments and suggestions are welcome
1. Erlang being a concurrent language helps in creating multiples processes. The communication model of Erlang is message passing which lets us write concurrent applications without worrying about deadlock, race condition etc.For more see this.

2. On the above property we can make a robotic application where multiple robots are performing a task in co-operative centralized environment. Each robot has its own logic which is controlled by an Erlang server. Some examples are swarm robotics, multiple robots cleaning a room or picking a heavy object.
Let us look at why Erlang will be a good option.
In case of languages which use native threads(C,C++ and Java), there will be a cluttered code having shared memory, loops, process synchronization etc but in Erlang we can use message passing system and other OTP feature to achieve same task in more efficient manner.

3. Erlang's functional nature makes program compact(approx 1/5 times) and readable. This increases productivity also because we can implement a product in less time and push the product before our competitor(less reasonable but true).

4. We can also program "robots with artificial intelligence" using ERESYE which is an additive advantage of Erlang over other languages like C, C++ and Java.

1 comment:

  1. Interesting topic, you should get a look on eLua (www.eluaproject.net)!

    Cheers

    ReplyDelete