In fact, I think that many people here hold the opposite view, ie that various features make Julia is ideal for a user-facing API, with the understanding that “user” in this context means someone who is willing to put together various building blocks to solve numerical problems as part of a program, while preferring to leave the implementation of these blocks to others to the extent possible.
The prevalence of Python comes from history: keep in mind that it is more than 2 decades older than Julia*. Not switching a large existing codebase to another language is a reasonable choice in a lot of cases, but does not necessarily reflect on the relative merits of languages.
I and many other people here think that Julia makes a great user facing API, far better than Python. (Maybe not ideal, because of JIT latency, etc. although this is improving greatly). I think Python is an absolutely terrible choice for any position in a scientific computing stack. Maybe I meant “almost no new project” in the measure-theoretic sense. In my experience, essentially everyone mistakenly believes that Python is an ok, or even great, language for scientific computing.
Would you care to elaborate on this? As these are pretty bold statements given the popularity of Python in this context. If “scientific computing” is narrowly defined as “writing code to perform scientific computations” then I would agree with you, but many researchers are using Python as the proverbial “glue language” to build on existing components (regardless of what language those components are developed in). The latter use of Python is where it really shines. I certainly would not consider Julia a better option in that respect.