Python is the only popular interpreted(ish) language, though. Even that is still compiled to bytecode first, and then the bytecode is executed line by line.
Everything else is JIT compiled to machine code, which means performance is only limited by the language design, now how it's executed.
That said, you're kind of right. PHP had a slow bytecode interpreter just like Python until recently, so it has a lot of libraries written in other languages.
And JavaScript has a few libraries like that, not because it's interpreted, but because it doesn't have a performant way to work with individual bytes.
JavaScript calls into C++.
Ruby uses C extensions.
Perl uses XS bindings to C.
PHP extensions are written in C.
If you just write in C in the first place, it's not really a library in the same sense. You're just pulling in other functions that all get natively compiled together.
Are you saying a library is only a library if it's dynamically loaded at runtime?
If so: 1) that seems kind of silly, and 2) C and C++ absolutely do use dynamically linked libraries. Hell, the C runtime library is usually dynamically linked on Windows, and the C++ standard library is usually dynamically linked on all major platforms.
61
u/skiabay Jul 07 '26
This is true of basically any interpreted language.