So guys, I've been seeing a lot of tutorials on the Internet about AI that are mostly done with Python. Apart from these, I've seen C# being used in AI topics but in things like for example "Self-Driving cars", I've seen Python and not C# or any other languages. I wanted to ask, do you recommend that I learn Python? Because I know C# and I wanted to become more professional in it, but, now that I see that Python is being used a lot, I'm getting intrigued in it. Do you recommend Python or other languages or should I keep up with C#? Just to mention, I'm 14 years old and I have enough time to learn more and it doesn't really matter what I love to do, because, I love coding and AI specially, so, it doesn't really matter. If it's not a waste of time, I should get started, right? If you recommend Python, please tell me which compiler I should use. I don't really know if it has a compiler, but I want to know where I should start from. Thanks.
If you're doing deep learning (which I assume you are, if you say you want to learn "AI"), then Python is a MUST. Virtually all the big frameworks are Python wrappers over a C++ core.
C# has no real deep learning frameworks. There are a couple such as the Microsoft Cognitive Toolkit, but they are on a completely different level from PyTorch or Tensorflow. No serious ML practitioner would do the majority of their research in a framework like that.
For more information, see: Why is Python the most popular language in the AI field?
Corporations, government research, and academia are favoring C, Python, Java, LISP, and R currently. The trends are not favorable to C# for AI.
C# doesn't look hopeful for keep pace.
I agree with Felicity's answer, except the part where he says that "C# doesn't look hopeful for keep pace."
There are new frameworks such as ML.Net being developed right now and the new version of C# (C# 7.0-8.0) focus on performance while keeping simplicity. I cannot find the link right now, but there was a post on their GitHub explaining their new vision. By the way, the .Net Core performance is really close to C++. For these reasons, I think C# is a language that will be more and more popular within the next years in the AI industry.
The downside of using C# is that you really need to know the language deeply in order to take full advantage of it. Personally, it took me ~2 years of full-time work to be really good at it while Python only took me two weeks. I think many people in the AI industry doesn't want to spend too much time on learning an language, so they prefer to opt for Python. But for references, C# is actually MUCH FASTER than Python as of February 4th, 2019.
- Python vs Java (Python loses in every test): https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/python.html
- .Net Core (C#) vs Java (C# wins in every tests): https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/csharp.html
- .Net Core (C#) vs C++ (C# loses in every tests, but not by much): https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/csharpcore-gpp.html
- .Net Core 2.0 (2.1 is faster) vs other languages in Amazon Lambda: https://read.acloud.guru/comparing-aws-lambda-performance-of-node-js-python-java-c-and-go-29c1163c2581
Also, I have developed in both languages, and I have found that it is much easier to develop good development practices using C# development tools than Python (this is a personal opinion - it's not a fact)
Choosing a language for AI development really depends on multiples factors, so giving a general answer here is difficult.
I did use both languages for a few things and I really do like python because it’s just so neat and tidy. But if you have never coded before it might be a little hard for you to learn. (to truly learn; basics are easy)
I would suggest the following: If you have learned a different language already (coded more than "hello world") then python might be the right deal otherwise start with a different language to learn a few basics before you are going to use and learn python. C# is a good choice then. It is important to learn how to code nice and tidy, how to comment und to understand what’s happening before stumbling into a field of "AI".
But to answer the question: Python it is! C# is maybe a choice for companies but I think even there it would not actually be used to code "AI".
BUT: AI or in all honesty Neural Networks... that's a pretty heavy topic as you wander the field. It has a lot of math and special coding in it and it will keep you "tangled". Make time to learn the scientific wrappers and it does not really matter where you start!
I wish you luck and all the best! Have fun however you decide! PS: if you are going to use python make sure to use tensorflow and keras in the beginning it just simplifies the start tremendously. And as an IDE I would personally choose PyCharm ;-)