Python isn't used for serious projects?
Say what now?
Wait, are you an AI hallucinating?
Dropbox? That's not a serious project?
Spotify?
https://engineering.atspotify.com/2013/03/how-we-use-python-at-spotify
I'm not sure where you got that information from. It's not even remotely true.
There's many flaws in what you've said here.
1) Python is one of the best languages for many commercial projects.
2) Medium sized or above projects rarely use one language, but Python is one of the best core central ones, with other languages used for specific parts.
3) Python doesn't have speed issues.
3A) This is 2025. We have access to extremely fast, cheap, abundant hardware. It makes no commercial sense to build out everything in the lowest possible language so you can spend $20k/mo on hosting instead of $50k/mo, when it's going to take you 10x longer to code, maintain and add features, losing you millions.
Experienced software devs know that you don't over-engineer problems or micro-optimize. It creates enormous problems.
3B) Not all problems are CPU limited. C is not faster than Python for networked or IO applications that are limited by the I/O of the interface.
3C) Many Python libs have C bindings.
3D) And as in 2, when you have areas that are better suited to a low level language, or specific parts that are better suited to any other type of language, you write that part in that language.
I could list endless serious Python projects, but, dropbox and spotify.. Saying Python isn't used for serious projects is akin to saying computers aren't used by serious companies.
Not in a million years is Python a "research language" or a "simple programs" language. I really don't know where you got that from. It's complete nonsense.
People using C++ or Java is completely irrelevant. People drive porsches. This doesn't make bmws any less useful.
And no, AI is not akin to a junior programmer. Not even close.
It can outperform nearly 100% of senior devs on single hard tasks. It can do things that junior devs haven't even heard of or wouldn't even know how to start.
It can implement any algorithm in any way you want.
What it can't do is replace a human junior dev, who has the ability to take charge of what he's doing, have awareness of the bigger picture, know when he needs help, know how to ask for more information and understand how what he's doing fits into the business logic.
LLMs are something that devs at all levels can use to get more done, faster, and focus more on the architecture, system communications and how all the components work together, and less on the individual pieces of code, just like with Python we can do list.sort() to sort a list. A few characters.
Here's the assembly code to do an insertion sort. The python sort is a hybrid, that does a TON of stuff, so this assembly code is just 1 tiny part of what that one line of code does.
section .text
global insertion_sort
; void insertion_sort(int* arr, int n)
; arr in RDI, n in ESI
insertion_sort:
push rbp
mov rbp, rsp
cmp esi, 1 ; if array length <= 1, no sorting needed
jle .end_sort
mov ecx, 1 ; i = 1
.outer_loop:
cmp ecx, esi
jge .end_sort ; if i >= n, finished sorting
; key = arr
mov rax, [rdi + rcx*4]
mov rdx, rcx
dec rdx ; j = i - 1
.inner_loop:
cmp rdx, -1
jl .insert_key ; if j < 0, insert key
mov ebx, [rdi + rdx*4]
cmp ebx, eax
jle .insert_key ; if arr[j] <= key, insert key
; arr[j+1] = arr[j]
mov [rdi + (rdx+1)*4], ebx
dec rdx
jmp .inner_loop
.insert_key:
mov [rdi + (rdx+1)*4], eax
inc rcx ; i++
jmp .outer_loop
.end_sort:
pop rbp
ret
This is why LLMs are to Python, what Python is to Assembly.
LLMs don't replace junior devs. They replace writing out repetitive code. Instead of writing that 15 line function, you just ask the llm to write it.
That's how you use them. You don't vibe code and ask them to add features to a program, giving it full carte blanche to your entire codebases, and letting it try to figure out how to do it, what code it should edit, what will break if it edits that code, and what are the consequences of editing that code for future additions. It cannot do these things. YOU do those, and tell it "write this function. take params x, y z, do this, and return this. Also be aware of A, B and C."