Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Danial 1

Joey Danial ENGL 106 Ms. Reynolds 15 April 2014

The Future of Agent-Oriented Programming The technology of the world has been advancing at a rapid pace, and the software that runs on todays technology is incredibly complex. As software becomes more complex, programmers need to develop new ways to organize and design software. One such approach, as is agent-oriented programming, as encouraged by Ricci and Santi in their article AgentOriented Computing: Agents as a Paradigm for Computer Programming and Software Development. Agent-oriented design is a way of organizing software into sections, known as agents, which have goals, and interact with each other to accomplish these goals. In the article, the authors argue that modern programming applications will benefit from agent-oriented programming. They also argue that there is a need for true agent-oriented programming languages, as there are currently no true agent-oriented languages. While the concept of agentoriented design has the potential to simplify many modern programming applications, I believe it is currently not defined well enough to create an agent-oriented language. Once the idea of agent-oriented programming is well defined, agent-oriented languages can be created, and agentoriented programming could become a dominant software development paradigm. Agent-oriented deign is currently limited in its applications, its use limited to artificial intelligence theory, however, I claim it has the potential to be used in a wide variety of situations. Some such situations include multi-core systems, cloud computing, and robotics. First, I will

Danial 2

discuss the benefits agent-oriented programming grant to multi-core systems. Computers with multiple cores are able to perform multiple operations at the same time, an incredibly useful ability, however, it is very complicated to program on such a system effectively using traditional paradigms. The benefit of agent-oriented programming comes from one of its main pillars, that is, the decentralization and encapsulation of control: there is not a unique locus of control in the system, which is instead decentralized into agents (Ricci). By removing a central control, each core can act autonomously, and cooperate with the other cores to complete a task. This particular division of control allows the system to run more efficiently. Such a benefit to multicore systems, an important field, especially now, shows how agent-oriented programming may soon be a dominant programming paradigm. The benefit for cloud computing is similar to the benefit to multi-core systems, in that agent-oriented design allows for the encapsulation of control. This is especially useful for cloud computing, and internet systems in general, because there is inherently no center of control in these types of systems. As Nichols Jennings says in his article On Agent-Based Programming, when modeling a networked system, like the Internet, the desired computational model needs to be agent-based. (Jennings). This shows that another critical component of modern software development benefits greatly from the concept of agent-oriented design. Finally, the field of robotics stands to benefit from agent-oriented programming and design. The application of robotics comes naturally from the use of agent-oriented programming in artificial intelligence, as most robots require some degree of AI. As Gascuena and FernandezCaballero state Like humans, robots need a certain level of autonomy, reactivity, pro-activity, and social ability to perform their tasks. These characteristics are often cited as a rationale for adopting agent technology (Gasuena & Fernandez-Caballero). Autonomy, reactivity, pro-

Danial 3

activity and social ability are all defining characteristics of agents, and as they translate perfectly to robots, it is clear that there is benefit to using agent-oriented programming in the robotics field. With robotics and automation being a huge field, agent-oriented programming is even more likely to become a mainstream paradigm. Agent-oriented programming clearly has many advantages for a variety of modern applications, however, has not become a dominant programming paradigm. One of the main reasons for this is the lack of a true agent-oriented programming language. Even Ricci and Santi do not use a true agent-oriented language, instead they use platform called JaCa, which actually integrates two independent technologies: the Jason agent programming language [10] for programming agents and the CArtAgO framework [25], for programming the environment (Ricci). Without a programming language, it will be impossible for agent-oriented design to become mainstream paradigm in the programming world. As the original definer of agentoriented programming stated, one of the necessary components of an agent-oriented system is an interpreted programming language in which to define and program agents (Shoham). A definitive language would allow the agent-oriented idea to spread mere easily, and would force the concept of agent oriented programming to become much more well defined. A better definition is something the agents of agent-oriented programming desperately need, as currently, the definition is so vague, that almost anything could be classified as an agent, and that makes programming very difficult, as it is unclear how different systems should be organized. In his article Pitfalls of Agent-Oriented Development Michael Wooldridge addresses some of these concerns regarding the issues the definition of an agent, saying one of the pitfalls relates to the fact that Most agent developers have their own opinion on exactly what constitutes an agent-and

Danial 4

no two developers appear to share exactly the same opinion (Wooldridge). Once developers agree on a definition, then a usable and applicable agent-oriented language can be created. The possible applications of agent-oriented programming are many, however, the lack of a formal definition of being agent-oriented has resulted in a lack of any complete agentoriented programming languages. In order for agent-oriented programming to become a dominant paradigm, a complete language must be created. I believe that once that occurs, agentoriented programming will become a widely used and extremely beneficial to many fields. Until that happens, however, agent-oriented design will remain a theoretical, inapplicable cocept.

You might also like