Am Dienstag, dem 19.09.2023 um 12:31 +0000 schrieb Jeremy Stanley:
Not really, no. Completely rewriting software in a different language is a massive undertaking, and when you consider it's taken 13 years to build the software to its current state that's a lot to rewrite from scratch.
agreed
Keep in mind that most of OpenStack's own software is often not in performance-critical paths, it frequently calls out to other programs in userspace that are already written in "faster" languages, so the relative slowness of the Python parts of that system doesn't necessarily create much additional overhead anyway, therefore the benefits of rewriting them might not always be as great as you anticipate. It comes down to a cost vs. benefit ratio, where the cost of rewriting is very high and the benefits aren't, or can't clearly be proven as, good enough to outweigh those costs.
Python (well, the popular CPython interpreter anyway) is itself getting faster too, it's just not been a high priority for their community until the last few years, but more recently they've invested a lot of effort in making efficiency and performance improvements. Take a look at the speed improvements which came out of the Faster CPython effort in 3.10 and 3.11 as well as the 3.12 release candidates for example, or the free-threading/no-GIL work for PEP 703. Why rewrite everything into a faster language when you could instead just make the language it's already written in faster instead?
well, if you have ever run any moderate sized openstack cluster you must disagree here. of course many openstack components *are* performance sensitive, especially if you run k8s on top of it which can hammer the api servers with thousands requests per second.
I don't even want to go into arguments about general efficiency of computing, preservation of resources and "green it" [0].
a good rewrite would possibly use rust instead of golang (there, I said it), because it's easier to integrate with python[1] as it has a better FFI story than golang, from what I read online. This way this could be done in an incremental way. This would imho be the only feasible approach, which could also yield new developers interested in openstack/cloud computing.
e.g. Artem rewrote the current openstack cli client in rust and while the current cli in python is really slow for larger clouds, it is fast in rust[2]. So there is some work being done, although it's very very early days.
the results of the poc where shown at the last public cloud sig meeting, which was quite interesting.
But I do agree, as said above, that it's hard to do, and there seems sadly to be not much buy-in from the community at large just yet.
[0]: https://thenewstack.io/which-programming-languages-use-the-least-electricity... [1]: https://pyo3.rs [2]: https://lists.openstack.org/pipermail/openstack-discuss/2023-August/034934.h...
kind regards