Cougaar 10.4.6 Released With Source
Anonymous Software Agent writes "Cougaar release 10.4.6 has been posted .
As always, all source code is available via anonymous CVS.
Cougaar is an open-source Java-based architecture for the construction of distributed agent-based applications. It is the product of an eight-year DARPA-funded research project in highly scalable and survivable multi-agent systems. Cougaar is currently used in next-generation military logistics systems, commercial applications, and research projects.
Cougaar release 10.4.6 adds survivable yellow pages and white pages services, and multiple other performance and reliability improvements."
My first thought upon seeing the name was that it was some kind of rejected pokemon.
<ASH> Look! It's conducting rapid, large scale, distributed logistics planning and replanning!
<COUGAAR> COOOO-GAAAAAAAAAAAAAARRR!
In a philosophical sense, I agree (somewhat), but in a pragmatic sense I think you're wrong.
:-)
While people have certainly been programming mobile agents in many languages for a very long time, there's nothing wrong with implementing them in Java. Java is a fairly nice language with a good security model and portable bytecode. Having used both to write agents, I can say that it's not quite as nice for writing mobile agents as Telescript (the language that General Magic designed for implementing mobile agents), but it's not bad. Sure, SmallTalk or Lisp are simpler and cleaner in many ways, and Erlang, etc., have some nice, though somewhat esoteric advantages, but Java has the fairly reasonable advantages that it's a widely known and extremely well supported language.
And as for preferring declarative programming to procedural programming, well, all I can say is that different models suit different kinds of problems, and different kinds of programmers. Changing both programming languages and programming paradigms (i.e. procedural to declarative) and throwing mobile agents into the mix) is extemely challenging to a development team. Not that it can't be done, but it's way harder (for a large team) than just introducing mobile agents implemented in a language everyone knows. Take one step at a time, or you lose people. I know, back in the 80's I was on a number of large Smalltalk projects, and making the leap to OOP, Client/Server and learning Smalltalk all at once was a barrier than many engineers couldn't hurdle. Sure, the stars got it, and were amazingly productive, but everyone else was blocked.
That being said, if you have a small team of stars, and a project that doesn't require a larger team, go for it -- you may be extremely successful. But I don't think that makes anyone who decides to implement mobile agents in Java wrong, just a little less daring.
Enable 3D printed prosthetics!