I'm all in with Python. Used to code in C# but now Python is the thing... cross platform... tons of libraries... and really easy.
As I've been programming in c/c++/java/ruby/python/php/asm for quite a whie I feel like I have to clear some things up over here, as there is so much missinformation in this topic.
Is C# better than Python? NO
Is Python better than C#? NO
Both languages have their ups and downs.
Here are some:
Python:
-cross-platform
-easy to learn
-fast development
-there is a library for anything you can think of (like they say, "batteries included")
-can be used to develop web apps with a framework like Django
C#
-Programming over Windows is a little bit easier compared to Python
-A little bit faster then Python
-Easier to find a job as a C# developer
Some people said C# is much more powerfull then Python. They can't be futher away from the truth than that. The standard Python library contains everything you need for 99% of the projects you will be doing, and there are literarly thousands (if not more) free libs on the internet if you need to be doing something more specific. More then that, if there is no lib to fit your need, you can write one yourself in C or C++, export it as a python library and use it from python. There is also a library called ctypes that let's you import any windows '.dll' file so absolutely anything you can do in C# you can do in python too.
If you give me just one example of an app that you can't do in python I'll shut my mouth.
Someone also said that you can't sell python programs to clients because they will see the source code. Again, that couldn't be further away from the truth. There are programs that can be used to compile python scripts, like py-installer, and you get a single '.exe' file just like you could do in C#.
Pick any of the two languages, as both will fit your needs. You can't go wrong. But don't listen to all those guys that have no idea what they are talking about.
About the speed differences... In my personal experience, when it comes to botting, programs will be spending 95% of their execution time waiting for something (like a web server to respond or some button/image to appear on the screen).
Bots don't usually solve complicated mathematical formulas that need millions of operations/second, so although C# might be up to 100 times faster then python when it comes to rendering a video or who knows what... they will be just as fast when it comes to bots.
However, bot development in python is much faster, so you got to ask yourself: Would I rather code a bot in 2 days (python) or would I rather code a bot that's 5-10% faster (at most) in 2 weeks (C#)?
Would I rather code a bot in 2 days (python) or would I rather code a bot that's 5-10% faster (at most) in 2 weeks (C#)?
I don't see how C# suffers in readability, the syntax is very similar to C++.Where I believe C# suffers greatly is for example readability (its not opinionated enough about its syntax).
I agree with that statement, but IF only you are using LINQ operators(select, group by, where, order by, from in, etc.) and not the extension functions.I don't think that any other language has a GroupBy over a collection of objects, at least not out of the box.Also, overuse of LINQ can cause readability problems as well.
2 days, 2 weeks ? I code bots(for personal use) in a matter of hours(C#), of course no fancy GUIs - Registration, Email validation, Posting, Scraping, etc. You can create templates in Visual Studio and re-use the code. Developing a commercial software will take time no matter what the programming language is.
I don't see how C# suffers in readability, the syntax is very similar to C++.
I agree with that statement, but IF only you are using LINQ operators(select, group by, where, order by, from in, etc.) and not the extension functions.I don't think that any other language has a GroupBy over a collection of objects, at least not out of the box.
However, LINQ is slow and shouldn't be overused.
I don't think that any other language has a GroupBy over a collection of objects, at least not out of the box.