Artificial Intelligence: Language selection

In the Pathfinder project, you can find it on AppHub:

Now, why one language over another?  C# has to be used for the Windows Phone, so that makes it pretty simple for me to select C#, but let’s be fair and look at the other languages out there.

First of all, which language has a standard, this is important as it allows others to develop compilers, etc. using the standard:

Language

ANSI/ECMA standards link

C

https://www.ecma-international.org/publications/standards/Ecma-372.htm

(no cost)

C++

https://www.ecma-international.org/publications/standards/Ecma-372.htm

(no cost)

C#

https://www.ecma-international.org/publications/standards/Ecma-334.htm

(no cost)

LISP

https://webstore.ansi.org/RecordDetail.aspx?sku=ANSI+INCITS+226-1994+(R2004)

(Specification cost $30)

Java

No standard

F#

No standard

For the Microsoft products that support standards based languages and Common LISP:

Language

Downloads available from

C

https://www.microsoft.com/express/Downloads/#2010-Visual-CPP

(C can be compiled using VC++ IDE)

C++

https://www.microsoft.com/express/Downloads/#2010-Visual-CPP

C#

For phone and XNA in one no-cost package:

For C# bare:

LISP

https://www.lispworks.com/news/news30.html

  • Although LISP is not a Microsoft language, it does use the .NET Framework and VS Shell

F#

F# is included in Visual Studio Professional, Premium and Ultimate, you have to build your own for an Express version

For Artificial Intelligence, in my series of blogs will remain in C#.  F#, VC++ can be used with the phone as DLLs, but if you are starting a new project, it would be important to implement your project using C#.  Don Syme and team have built an XNA release for F#, but I can’t suggest that if you are struggling with just creating a game that you utilize F#.

Bottom line: LISP is historically the language of Artificial Intelligence, however, if I was going to start my career, I would get very good at F# and C# programming and architecture.  The ability to write software in C and C++ is critical as well, but these languages tend to be used at a lower level than most AI programs anymore.  C# first, mainly because it is easy to work with and has a specification that is NOT under the control exclusively of Microsoft, whereas Java does not have a specification and is under the control of Oracle/Larry Ellison.  Naturally, you got to do what it takes to get your degree.