Hi all,
heh, as I see noone standed up for the Python, so I will do it myself.
My post will probably not be that objective to C#, because I never used it, I will however compare with other programming languages in general.
But first, @Jonikster, what I disagree with:
1. What do you mean by a good game? I think it matters opinion. From audiogames for example Sound RTS is made completely in Python, and imo it is the most complicated audiogame made ever, just think about all modding, translating and playing features, I don't know any audiogame with that like capabilities joined together, like in Sound RTS. But as I said, it matters opinion.
2. Be careful when writing about Python and the speed. By saying 'Python', you're not referring to the one concrete snake, but rather to a full family of snakes Pythonidae, which includes Cpython, but also Cython, Jython and many others. And from Cython for example is possible to compile directly to the native code by to C conversion. In this case, an Python program would be faster than not Java only, but also C#one I think.
Of course it's not easy and not manageable by beginner. But if you are a professional dev and you need to get maximum speed from Python, what is btw not needed in many cases, Python will not leave you.
3. About convenient enviromment I don't know, I am not using ides in general, but as far as I know there is an Pydev for Eclipse, which is popular in the Python community. But as I said, I can't judge its quality against Visual studio for example, because I don't see an advantage of any from them.
And now, my argumentation for Python:
- multiplatformity, making the same code usable on all platforms, including Raspberrypy is very pleasant.
- Pypy. I have never seen more useful development tool, to manage some kind of problems I think. It allows programmers to just gain support for routine tasks in few minutes, and lets them concentrate directly to the problems they want to solve.
I was for example experimenting some time ago with integrating eeg mind based control into the audiogame environment. When I obtained the device, there were two problems to solve in one time. First to connect eeg together with computer and read values from it correctly, second to use values to do something.
First what I did was a look on pypy, if there isn't a package to manage the first problem, so I can be sure it is solved, and correctly solved, so I can focus to the experiments. And there was one, so all I needed to do was to download it by the one command and import in one line, using was very straight forward, what is typical for Python in general, what I see as a big plus too.
Later I have get the task to port it to Android. And that task is still not finished.
Where do you think I have stopped?
In Python, I needed few minutes to get familiar with Bluetooth, in Android...
- You can now say: "Okay, but C# can do all of this too." True is I don't know, as I said I never looked into C# and I don't know, what's the state of libraries available for it. But one thing I know is, that Python, according to
https://madnight.github.io/githut/#/pul … sts/2017/4
with 15% is the second most used programming language on Github, the greatest code database in the world. C# is on 9th place, with about 3.5%.
And I have also read somewhere, that Python is the fastest growing programming language in the world, what does not sound that unreal, when we take in the Github language statistics.
So, in summary, I think the main factor deciding, whichone language is better is the taste of the user. Both languages are usable, with more or less advantages on both sides on the specific kind of problems.
For example, I develop primary in C++, because it is nearer to what I am used to than Python. There however are some situations, when problems are extremely complicated to do in C++, Speech recognition is a great example. When such problems appear, I use Python, because its massive code base will give me all needed stone blocks like microphone module, upload module, encoding module etc. already prepared and all I need to do is just to connect them in the right way, to obtain a suitable product in very short time.
Best regards
Rastislav