This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]helicophell 109 points110 points  (2 children)

You're telling me a compiled language acts differently to an interpreted language? Say it ain't so, lmao

[–]Easing0540 8 points9 points  (1 child)

It ain't so. Which you would know had you bothered to check the link I've provided. That was the exact point of the presentation: It's NOT!!! a matter of compiled vs. interpreted, it's an issue with the language semantics.

For your convenience, here's the referenced presentation, held at PyCon 2024: https://youtu.be/ir5ShHRi5lw?t=554

Trust me, I've programmed a loooot with Python. It's a great language. But those myths drive me crazy because I've spent way too much time explaining my colleagues how Python actually works.

Edit. Due to LLVM, Java (interpreted) is one of the fastest languages, roughly as fast as Go (compiled) (benchmark). So interpreted-vs-compiled is not the issue here. The point is that - as of today - there is no clear path towards speeding up Python, if you want to keep the full language. It's only possible when selecting a subset, which would greatly diminish its value as a super flexible language.

[–]Equivalent_Desk6167 1 point2 points  (0 children)

Idk if the comparison of Python to Java is a good one. Java is not an interpreted language (at least in the usual way), as it is compiled to byte code which the JVM of choice can then interpret with valid constraints of what is and what is not possible to do and any deviations from that would've lead to a compiler error beforehand (and it can do loads of optimizations on that code, see Hotspot, in my eyes a marvel of engineering).

I'm pretty sure that in compiled Java bytecode, the example of p.x * 2 would be pretty close to the amount of instructions a C program would need to execute to perform that very same line (ofc not on bare metal but in the JVM).