| logo =
| caption =
| paradigm = [[concurrent programming language|concurrent]]
[[multi-paradigm programming language|Multi-paradigm]]: [[concurrent programming language|concurrent]], [[logic programming|logic]], [[functional programming|functional]], [[object-oriented programming|object-oriented]], [[imperative programming|imperative]]
| year = 2003
| designer = [[Francis McCabe]], [[Keith Clark]]
| latest_test_version = 9-30-07
| latest_test_date = {{release date|mf=yes|2007|9|30}}
| typing = [strong typing|strong]]
| implementations =
| dialects =
}}
'''Go!''' is a [[concurrent programming language]], first publicly documented by [[Keith Clark]] and Francis McCabe in 2003<ref>Clark and McCabe, AAMAS'03, 2003</ref> and included as part of the Network Agents project at [[Sourceforge]]<ref>{{cite web|url=http://sourceforge.net/projects/networkagent/ |title=Network Agents |publisher=Sourceforge.net |date= |accessdate=2009-11-14}}</ref>. It is oriented to the needs of programming secure, production quality, agent based applications. It is [[multi-threadedmultithreaded]], [[strong typing|strongly typed]] and [[Functional programming|higher order]] (in the functional programming sense). It has relation, function, and action procedure definitions. Threads execute action procedures, calling functions and querying relations as need be. Threads in different agents communicate and coordinate using asynchronous messages. Threads within the same agent can also use shared dynamic relations acting as memory stores.
Its nature as a multi-paradigm programming language, integrating logic, functional, object -oriented, and imperative programming styles,<ref name=informatica-survey>Bordini et al., Informatica, 2006</ref> is particularly applied to ontology-based modeling, as exploited for the [[Semantic Web]] in allowing a type system where [[Web Ontology Language|OWL]] classes can be represented in the type system.<ref>Clark and McCabe, Applied Intelligence, 2006</ref> The design of Go!, according to Bordini et al.'s survey,<ref name=informatica-survey /> also took into consideration critical issues such as security, transparency, and integrity, in regards to the adoption of logic programming technology. Agents in Go! contain both reactive and deliberative aspects, and coordinate using BDI structures,<ref>Fisher et al., Computational Intelligence, 2007</ref> and their style of expression has influenced the modellingmodeling of agent systems in [[Erlang]].<ref>Varela et al., Erlang Workshop'04</ref>
Since the launch of Google's programming language, [[Go! (programming language)|Go!]] and(note lack of [[Goexclamation (programming language)|Gopoint]]) havehas, becomesince its 2009 release, been the subject of aan as yet unresolved naming controversy thatwith isGo! stilldue to beits very similar resolvedname.<ref>{{cite web|last=Claburn |first=Thomas |url=http://www.informationweek.com/news/software/web_services/showArticle.jhtml?articleID=221601351 |title=Google 'Go' Name Brings Accusations Of 'Evil' |publisher=InformationWeek |date=2009-11-11 |accessdate=2009-11-14}}</ref><ref>{{cite web|url=http://code.google.com/p/go/issues/detail?id=9 |title=Issue 9 - go - I have already used the name for *MY* programming language |publisher=code.google.com |date=2009-11-10 |accessdate=2009-11-14}}</ref>
== Communication model ==
|