1
$\begingroup$

I am currently learning C#. Is it a good language to get started with AI? Or should use another programming language?

$\endgroup$
1
$\begingroup$

C# is the perfect choice for programming the first Aimbot.

Quote: “Libraries for the large programming languages like Java and C# have methods for extracting the color value of a certain pixel, rendering this information extraction a very easy task.” Cheating in online games: a case study of bots and bot-detection in browser-based multiplayer games

C# can also be used for parsing events from RTS-games.

Quote: “We implemented this tool in C# using Visual Studio 2008. It parses combat logs produced by World of Warcraft”. Sequence-Based Bot Detection in Massive Multiplayer Online Games

For all, who are not familiar with the concept itself: An Aimbot is a software program to play existing computergames semi-automatically. It is similar to the “Mario AI-” and “Starcraft AI” challange, but is created outside of the university sector by beginners in Artificial Intelligence.

$\endgroup$
1
$\begingroup$

Any language is suitable for AI, though some languages are more suitable than others.

If you are working on exploratory projects, involving lots of prototyping, a more flexible language might be useful. There is a reason why a lot of early AI work has been done in Lisp, and why Prolog has been developed specifically. These languages have a lot of features that are useful for quickly building systems in a flexible way. Interpreted languages are especially useful, as the turn-around is quicker -- you won't need to wait for a compiler or build-process to finish.

The main problem for learners is that both Lisp and Prolog require a different approach to programming. It took me years of coding until I suddenly realised how good these languages are. Many beginners start with C-style languages, such as Java, and are used to a different programming paradigm. While I have developed in Java since it was first released, I haven't chosen it for my current project, as it is not flexible enough.

C-style languages are easier to understand for beginners, and IMHO are more suitable for implementing existing systems, rather than developing new ones. It does depend on what exactly you want to do, though, and I cannot really give you advice without knowing more about your plans -- AI is a broad field these days.

Some systems are better done in other languages, eg where the development is a smaller part of the project life-cycle than the run-time. Neural networks, or machine learning, genetic algorithms, all these would fall into that category. These are will-suited to the more 'imperative' languages such as C, Java, C#, etc.

I guess Python is popular in AI, as it occupies the "middle-ground": it is interpreted and thus more flexible, has some more advanced features such as built-in list handling, but is still close enough to Java and C to be used in a more traditional way.

So, to conclude: it is not possible to answer this question without more details. For more traditional (symbolic) AI I would always prefer Lisp or Prolog over Java and C#; but if you are thinking more about numerical processing, my advice would be the other way round. If you work with something that can be parallelised, perhaps Erlang might be a good choice. Erlang has also got a lot of similarities to Prolog.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.