I use Python for simple scripts and often for data transformation. But e.g. at work we have a few million lines of C# that I would never ever want to manage if it was written in Python.
If I had to deploy 10 microservices with 2 level caches and internal network routing on a whole server rack or in "the cloud", our customers would laugh in our face and choose one of our competitors that deploys on one or two on-site servers that can sit somewhere in the office and require minimal, if any, maintenance besides security updates.
About deployments:
The fast majority of 'web-focused' apps I work on ships in a single docker container. The customer, another department in the big multinational I currently work for, deploys it on one of their docker hosts where it lives behind a nginx emperor with many - up to 30 other vassals. It happens automatically once a week on the release schedule. OK, these are usually trivial little CRUD things - but not always. Bigger systems tend to get their own VM or et of VM's.
Every other third party vendor product I had to deal with in the last 5 years came in either a set of docker containers, a pre-built VM, or both.
I use PyCharm for medium to fairly complex projects and with Python 3 type hinting, I have not faced any particularly difficult development situations, tooling wise.
Debugging in Python has gotten very nice but I feel like it's still easier in Java. I'm always very bad at finding examples, sorry :/
You can rely on them exactly the same amount as in Java though.
If you need to use Python again, look at pipenv – it automates all of that for you down to one command, similar to e.g. Rust’s cargo:
Pretty much is not everything, for example Cocos2d-x scripts.
I take issue with this. In terms of speed, python can't even hold a candle to java. Even when using pypy, which isn't 100% compatible with cpython.
Java have a super big assets: A very powerfull VM. And this is the part where python is not as good. Is sad that Python3 was not used as the moment to build up a good VM, but well, history is history.
And this actually mean: Put a very strong and well funded team behind it. Make a good VM for python is hard
Luckily I mostly write IO bound code, so sticking with GILed threads is an option for me.
Until then, no.
Specially when it needs extensions written in C or C++ for anything that requires it.
Ridiculous is making that comment without realising Python is a core part of most modern *nix userspace. try uninstalling Python on a default Ubuntu/Fedora/Centos install and see what still works. I would suggest trying the same with Java, but nobody bundles that by default despite it's JIT.
Ridiculous is pontificating about how useless Python is without C/C++, clearly without knowing much about the language and its strengths.
I've known people who say the same kind of things, who write reams of very poor, unidiomatic Python code and wonder why it's slow, not wanting to accept that it's their bad code that's slow!
Let us know when there is an OS with Python userspace that can compare to any of them.
Of course Python is a core component of any UNIX system, it is a perfectly good fit as scripting language.
As a replacement for complex shell scripts, libraries written in C and C++, or scripting GUI applications.
I'm not sure if you're being intellectually dishonest or just willfully ignorant, but except Android all of those projects are long dead or discontinued. It seems Java wasn't a great choice. And while Android uses the same syntax as Java under the hood it's a completely different and doesn't share any code with, one very different from the JVM (Yes, Java != the JVM, but you're whining about the CPython implementation of Python rather than the syntactical differences compared to Java)
I mean this whole thread is ridiculous, you start out by saying "Python is bad because you can't write an OS user-space in it" which by itself is entirely ridiculous. You defend this by saying "Java is fast, therefore Python is bad".
You like to troll around these Python threads saying the same thing, "boo Python is bad because it's slow" and "boo where is the Python JIT". By all means make these points, but until you put some actual substance into your arguments they will continue to come across as very confused. And honestly it does seem like you are very confused.
> As a replacement for complex shell scripts, libraries written in C and C++, or scripting GUI applications.
I am making the counter point regarding OP statement that Python is suitable to fully replace Java ,regardless of the implementation. Lets not mix languages and implementations.
So given that even PyPy does not match the performance of most Java implementations, it seems a bit hard to consider the scenario of Python fully replacing Java's use cases.
I'm not necessarily agreeing with the original point that you can rewrite any Java app in Python, because that's ridiculous as well. But your counterpoint that it can only happen "when a user-space could be written in it" is very poorly chosen.
As it runs bare-metal, the runtime plays the role of an OS.
Symbian also allowed for apps to be written in Python, shortly before being axed.
Not even alternative Python implementations for that matter.
And as I said, Jython and IronPython also don't have a GIL.
:D