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
|
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.