Python has always been sort of an odd language to me. Its syntax has always had a certain strong appeal to a large number of people, but there have always been these underlying performance issues that have been swept under the rug. I was surprised when it started being adopted so much in AI research because of the performance issues (I understand it's really C and other things doing the performing, but at some point you have to do something other than call C, otherwise you might as well just use C).

I do understand the appeal; I think its ergonomics are exemplary and worth being studied by language designers as a success case (if not a perfect or unique one).

Going forward, though, I'd like to see more adoption of languages like Nim, Kotlin, or Julia, that have similar levels of expressiveness but are more performant. The issues discussed in the article aren't really growing pains; they've been there from the beginning.

I think there's a lot of worth using a high level language and integrating with C. It depends on the interface of course, XS (Perl) isn't too user friendly, but actually just using the Python C APIs is straightforward, rather than say Cython for example. I think you get the best of both worlds, but really it depends on what you are trying to achieve. If you want more type safety, then OK maybe not but if you want to interface with some low level components, or want to write a faster algorithm. Basically you can be more focused and granular with the unsafe and more error prone C side and tame it with a higher level language. Anyway, this is just my opinion but I've enjoyed this area very much and it has worked well for me.

> I think there's a lot of worth using a high level language and integrating with C.

I agree.

Python is an awesome high level interface to low level libraries and algorithms. As which it became even more appealing since you can write your low level code in Rust and call it from Python via PyO3 [0].

[0]: https://github.com/PyO3/pyo3