There are a lot of very high quality libraries like Pandas and SciPy that are not available in the React Native ecosystem. Tools like those provided by BeeWare let you add a GUI quickly. The folks interested in interacting with something running on these data science libraries tolerate imperfect user experiences more than the average consumer.
If we looked at React Native we could level your argument at it as well. Why use RN when you could build real native apps? Surely, that's the most optimal experience over a third-party platform, no matter how good RN is in practice.
csharp and java, famously interpreted languages, unlike javascript.
Seeing as this is for GUIs and not say, computing digits of Pi, I think Python is a fantastic choice for this.
I honestly wish Python had taken off as the web language instead of JS, but that's a conversation for another time.
FWIW, I'm not a Python fanatic or anything, I haven't used it in years - but it's hard to argue it's not a great language for beginners.
Sarcasm?
Typescript tries to fix a lot of the problems JS has, but still inherits a lot of its problems.
> especially when you consider the insane performance compared to Python
In my experience, people who complain about Python’s performance don’t actually have experience with software optimization. Aka, the same people who decide to use C++ “because fast”.
Even if you only look at synthetic benchmarks, there is not a single thing that would make javascript stand out as a good choice for high performance computing, V8 or not. But even if you find yourself in a situation where you’re stuck with javascript and have to optimize a particularly nasty hot path, the types of techniques you’d need to rely on aren’t going to be all that different than what you’d have to do with Python (with similar results).
The difference is that the Python environment can almost always outsource processing to a C library (maybe even hand written assembly). That’s really only possible with typescript if you’re working with Node, but I don’t think that’s what you’re referring to considering the context of this thread.
> and the fact that it can run in the web.
AKA, the only reason to use Javascript pre-Node. Post Node, you get to share code throughout your whole stack, but even then that’s rarely the best objective choice, and the benfits of using a single language tend to be overblown in my experience. For example, an Elixir/Erlang backend would be overwhelmingly more beneficial to any project than the minor conveniences of a single language (and I think Erlang is even slower than Python)
When/if web assmebly becomes more popular, I think JS/TS will finally die because web developers will finally be exposed to good languages, and will not want to go back to the mess that JS is/was.
And why would Python level "slow" matter at all for most kinds of apps? You're not writing games or bitmap editors with this...
I should also add that it is GPL - with all that implies. They also have commercial licenses.
Instead, what I think we need is a solid cross platform native UI library targeting C (libui would be a candidate - before it lost momentum). It would then be a reasonable amount of work to create multi-language bindings. Instead we have things like wxWidgets/Qt that are a pain to create bindings for since it is written in C++. As proof this would accelerate things, notice how many languages have GTK bindings (C based).
As a user, I don't want to use toy applications. So hats off to those who do things properly and use the real platform frameworks.
Kotlin/Rust could be supported if there's enough interest.