Answers.Body: <p>If you're talking about pure speed, C will get you there if you really know C and operating systems, etc. C++ is nicer in terms of user friendliness, and won't be much slower. I don't know much about VB but I don't see many benefits.</p>
  
  <p>Please clarify at least generally what the AI program is about. It is extremely difficult to answer the generalized question "What programming language is best for AI"? if you know what I mean. (  I vote python :^]  )</p>
  
  <p>To add: Any programming language of those listed is "stable" if you write things correctly, but C++ and its great IDE's will help you to that point much more nicely than C will. C, to fully utilize it's potential, requires much fiddling with delicate and precise systems. It'll go that little bit faster, as the cost of being less stable in the practical, " uh oh, now I need to troubleshoot this" sense.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-08T08:22:31.803Z
Answers.Text: Thank you, well, first, it's just an start for me, I have experience in web based programing and scripting using .net and php, now I like to step up and try something new :) To answer ur question, it shouldn't be a gaming AI and not a Robot (Maybe in future), I would like to create a self teaching program which can learn with it's daily jobs and mistakes. I already did a bit of research about all this and I want to start a project now.
Answers.UserDisplayName: Sinf
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-08T09:14:43.507Z
Answers.Text: May I ask why u or most of people vote Python as a AI programming language ? And not a .net language ? What is the real different between those programming languages for AI programming ?
Answers.UserDisplayName: Sinf
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-08T15:07:19.433Z
Answers.Text: Python is brilliant for its simplicity and ease of use. Even if you've never used python before, you can just go to the online tutorial the dev's put out and be sufficiently literate in a few hours. Any other problems you run into can be quickly found online. The reason it's so great for AI is that this simplicity and 'batteries included' mentality mean that it's waaaaay quicker and easier to write code relative to C++. Great libraries, great plotting, etc. Check [this vid series](https://www.youtube.com/watch?v=bxe2T-V8XRs) out, I think you'll be convinced by the end of it:
Answers.UserDisplayName: Avik Mohan
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-08T18:59:49.490Z
Answers.Text: Another big advantage Python has is the numpy and scipy libraries.  You can describe your algorithm in Python, but then the actual number crunching is done by a backend written in C or Fortran.  If it wasn't for that, it'd probably be too slow to do any serious work, but this way, you (mostly) get the best of both worlds.
Answers.UserDisplayName: Ray
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-09T08:03:56.937Z
Answers.Text: So basically, Python is much easier and faster in programming then .net (which i'm agree with after my search about Python yesterday :D), just another question if u have experience with Python, is that possible to easily create visual programs like what we do in C++ by adding a windows forms application ? because as I saw, u have to run a Python program using command line !
Answers.UserDisplayName: Sinf
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-09T19:48:06.837Z
Answers.Text: You do not actually have to run python in the CLI (command line interface,  known as interactive mode) There are ide's for it as well (spyder and pycharm are the two big ones). I'm not at all familiar with windows forms application. If you are just talking about graphical user interfaces, you certainly can do that, however, using some library in python.
Answers.UserDisplayName: Avik Mohan
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-07T17:21:15.123Z
Answers.LastActivityDate: 2016-09-07T22:07:28.870Z
Answers.LastEditDate: 2016-09-07T22:07:28.870Z
Answers.UserDisplayName: Avik Mohan
Answers.Body: <p>In the Visual Studio, there is no real difference between C and C++. It is compiled with the same compiler binary, although with different flags.</p>
  
  <p>In most cases, the easily programmable complex data structures are generally more important, as the linear speed. The AI is an exception. AI has mostly not so complex data structures, and also the linear speed improvement is very important.</p>
  
  <p>It closes out the garbage collected languages, i.e. any managed code, and, in my opinion, the best solution would be if you would use <em>not</em> a .net-based language, but a directly to asm compilable one.</p>
  
  <p>But, knowing that you are asking explicitly for a .net one, I would suggest one, which can be easily ported later to machine code. It closes out C# and VB, but it doesn't close out C++.</p>
  
  <p>C++ has also the needed complex data structures, while it still has the near-asm speed (and memory need).</p>
  
  <p>My idea would be to start with unmanaged C++ in .net, but use simply, native .exe-s to your final programs. It would make also possible to make your program portable, because C++ is for everywhere, while .net only for windows. I.e. your program will be later able to run in non-windows server (or cluster) environment, too.</p>
  
  <p>It would be also important to prefer the deeply parallel or easily parallelizable algorithms. Ideally it should be made adaptable to slow communication channels (also for the parallel cluster run).</p>
  
  <p>--</p>
  
  <p>Your program will probably have some user interface, persistent database and similar things, these aren't speed and memory critical things, thus these you can implement in anything as you wish. The result will be a two-process solution, where a speed-optimized, C++ calculating daemon is controlled by essentially a GUI (or db.. or script.. or anything) interface.</p>
  
  <p>Probably there are already C++ frameworks for this task, so you don't need to reinvent the wheel.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-09T07:55:32.697Z
Answers.Text: May I ask why u said, don't use .net for AI programming ?
Answers.UserDisplayName: Sinf
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-01-19T07:36:05.610Z
Answers.Text: Excellent review, C++ is a just as competent for AI as any other language. The only problem is that it doesn't have as many libraries for scientific computing as lets say Python, Java or Lua.
Answers.UserDisplayName: Seth Simba
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-01-19T09:43:20.480Z
Answers.Text: @Soheyl Mainly yes, but I also explained, how should you use .net if you really want to.
Answers.UserDisplayName: peterh
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-09-07T20:44:54.933Z
Answers.LastActivityDate: 2016-09-07T20:44:54.933Z
Answers.UserDisplayName: peterh
Body: <p><em>I know that every program has some positive and negative points, and I know maybe .net programming languages are not the best for AI programming.</em></p>
  
  <p><strong>But I prefer .net programming languages because of my experiences and would like to know for an AI program which one is better, C or C++ or C# and or VB ?</strong></p>
  
  <p><em>Which one of this languages is faster and more stable when running different queries and for self learning ?</em></p>
  
  <p>To make a summary, i think C++ is the best for AI programming in .net and also C# can be used in some projects, Python as recommended by others is not an option on my view !</p>
  
  <p>because : </p>
  
  <ol>
  <li><p>It's not a complex language itself and for every single move you need to find a library and import it to your project (most of the library are out of date and or not working with new released Python versions) and that's why people say it is an easy language to learn and use ! (If you start to create library yourself, this language could be the hardest language in the world !)</p></li>
  <li><p>You do not create a program yourself by using those library for every single option on your project (it's just like a Lego game)</p></li>
  <li><p>I'm not so sure in this, but i think it's a cheap programming language because i couldn't find any good program created by this language !</p></li>
  </ol>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-09-07T14:20:25.050Z
Comments.Text: Welcome! From the tour: "Artificial Intelligence Stack Exchange is a question and answer site for people interested in conceptual questions about life and challenges in a world where "cognitive" functions can be mimicked in a purely digital environment." You'd probably have better luck asking this in Data Science.
Comments.UserDisplayName: Matthew Gray
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-09-07T14:25:09.700Z
Comments.Text: @MatthewGraves THX :)
Comments.UserDisplayName: Sinf
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-09-07T17:18:26.307Z
Comments.Text: @MatthewGraves I think this still applies, as he's asking in what digital environment these cognitive functions can be developed. This SE is for questions people have about the how's and why's of AI. But I'll leave it to mods to decide.
Comments.UserDisplayName: Avik Mohan
Tags: <intelligent-agent>
Title: What is the best .net programming language for artificial intelligence programming?
UserDisplayName: Sinf
ThreadText: # What is the best .net programming language for artificial intelligence programming?
  
  (Asked by: username_0 on 2016-09-07)
  
  *I know that every program has some positive and negative points, and I know maybe .net programming languages are not the best for AI programming.*
  
  **But I prefer .net programming languages because of my experiences and would like to know for an AI program which one is better, C or C++ or C# and or VB ?**
  
  *Which one of this languages is faster and more stable when running different queries and for self learning ?*
  
  To make a summary, i think C++ is the best for AI programming in .net and also C# can be used in some projects, Python as recommended by others is not an option on my view !
  
  because :
  
  1. It's not a complex language itself and for every single move you need to find a library and import it to your project (most of the library are out of date and or not working with new released Python versions) and that's why people say it is an easy language to learn and use ! (If you start to create library yourself, this language could be the hardest language in the world !)
  2. You do not create a program yourself by using those library for every single option on your project (it's just like a Lego game)
  3. I'm not so sure in this, but i think it's a cheap programming language because i couldn't find any good program created by this language !
  
  **Tags:** intelligent-agent
  > **Comments:**
  > **username_1**: Welcome! From the tour: "Artificial Intelligence Stack Exchange is a question and answer site for people interested in conceptual questions about life and challenges in a world where "cognitive" functions can be mimicked in a purely digital environment." You'd probably have better luck asking this in Data Science.  
  > **username_0**: @MatthewGraves THX :)  
  > **username_2**: @MatthewGraves I think this still applies, as he's asking in what digital environment these cognitive functions can be developed. This SE is for questions people have about the how's and why's of AI. But I'll leave it to mods to decide.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2016-09-07. Score: 1 | Accepted answer
  
  If you're talking about pure speed, C will get you there if you really know C and operating systems, etc. C++ is nicer in terms of user friendliness, and won't be much slower. I don't know much about VB but I don't see many benefits.
  
  Please clarify at least generally what the AI program is about. It is extremely difficult to answer the generalized question "What programming language is best for AI"? if you know what I mean. ( I vote python :^] )
  
  To add: Any programming language of those listed is "stable" if you write things correctly, but C++ and its great IDE's will help you to that point much more nicely than C will. C, to fully utilize it's potential, requires much fiddling with delicate and precise systems. It'll go that little bit faster, as the cost of being less stable in the practical, " uh oh, now I need to troubleshoot this" sense.
  
  > **Comments:**
  > **username_0**: Thank you, well, first, it's just an start for me, I have experience in web based programing and scripting using .net and php, now I like to step up and try something new :) To answer ur question, it shouldn't be a gaming AI and not a Robot (Maybe in future), I would like to create a self teaching program which can learn with it's daily jobs and mistakes. I already did a bit of research about all this and I want to start a project now.  
  > **username_0**: May I ask why u or most of people vote Python as a AI programming language ? And not a .net language ? What is the real different between those programming languages for AI programming ?  
  > **username_2**: Python is brilliant for its simplicity and ease of use. Even if you've never used python before, you can just go to the online tutorial the dev's put out and be sufficiently literate in a few hours. Any other problems you run into can be quickly found online. The reason it's so great for AI is that this simplicity and 'batteries included' mentality mean that it's waaaaay quicker and easier to write code relative to C++. Great libraries, great plotting, etc. Check [this vid series](https://www.youtube.com/watch?v=bxe2T-V8XRs) out, I think you'll be convinced by the end of it:  
  > **username_3**: Another big advantage Python has is the numpy and scipy libraries.  You can describe your algorithm in Python, but then the actual number crunching is done by a backend written in C or Fortran.  If it wasn't for that, it'd probably be too slow to do any serious work, but this way, you (mostly) get the best of both worlds.  
  > **username_0**: So basically, Python is much easier and faster in programming then .net (which i'm agree with after my search about Python yesterday :D), just another question if u have experience with Python, is that possible to easily create visual programs like what we do in C++ by adding a windows forms application ? because as I saw, u have to run a Python program using command line !  
  > **username_2**: You do not actually have to run python in the CLI (command line interface,  known as interactive mode) There are ide's for it as well (spyder and pycharm are the two big ones). I'm not at all familiar with windows forms application. If you are just talking about graphical user interfaces, you certainly can do that, however, using some library in python.  
  
  ---
  
  ### Answer by username_4 on 2016-09-07. Score: 1
  
  In the Visual Studio, there is no real difference between C and C++. It is compiled with the same compiler binary, although with different flags.
  
  In most cases, the easily programmable complex data structures are generally more important, as the linear speed. The AI is an exception. AI has mostly not so complex data structures, and also the linear speed improvement is very important.
  
  It closes out the garbage collected languages, i.e. any managed code, and, in my opinion, the best solution would be if you would use *not* a .net-based language, but a directly to asm compilable one.
  
  But, knowing that you are asking explicitly for a .net one, I would suggest one, which can be easily ported later to machine code. It closes out C# and VB, but it doesn't close out C++.
  
  C++ has also the needed complex data structures, while it still has the near-asm speed (and memory need).
  
  My idea would be to start with unmanaged C++ in .net, but use simply, native .exe-s to your final programs. It would make also possible to make your program portable, because C++ is for everywhere, while .net only for windows. I.e. your program will be later able to run in non-windows server (or cluster) environment, too.
  
  It would be also important to prefer the deeply parallel or easily parallelizable algorithms. Ideally it should be made adaptable to slow communication channels (also for the parallel cluster run).
  
  --
  
  Your program will probably have some user interface, persistent database and similar things, these aren't speed and memory critical things, thus these you can implement in anything as you wish. The result will be a two-process solution, where a speed-optimized, C++ calculating daemon is controlled by essentially a GUI (or db.. or script.. or anything) interface.
  
  Probably there are already C++ frameworks for this task, so you don't need to reinvent the wheel.
  
  > **Comments:**
  > **username_0**: May I ask why u said, don't use .net for AI programming ?  
  > **username_5**: Excellent review, C++ is a just as competent for AI as any other language. The only problem is that it doesn't have as many libraries for scientific computing as lets say Python, Java or Lua.  
  > **username_4**: @Soheyl Mainly yes, but I also explained, how should you use .net if you really want to.  
  
  ---
  
  