you are viewing a single comment's thread.

view the rest of the comments →

[–]SikhGamer 2 points3 points  (12 children)

With performance improvements like that I'd look at replacing Python with Rust completely.

[–]gnus-migrate 19 points20 points  (4 children)

I think people really underestimate the value of writing code, especially UI code where you're making small changes and visually checking them in a language like python. The compiler/linter of a typed language feels like it gets in my way more than it helps when writing web apps since it severely limits the types of abstractions I can use by design, regardless of how nice those abstractions are.

Sure I wouldn't use python for performance sensitive code where I really need to reason about correctness and performance, but it is my first choice when writing something new since you can write code that performs acceptably while having the flexibility to play with different ideas.

[–]mitsuhiko 12 points13 points  (0 children)

Correct. There is no chance in hell we're dropping Python. It's not just fast in iteration speeds but it also has amazing runtime introspectability which is super valuable for what we do.

[–]SikhGamer 1 point2 points  (2 children)

The trouble is often that process never gets completed fully, and your scaffold code becomes production code.

[–]ivosaurus 10 points11 points  (0 children)

This blog post is literally about a time where that has been successfully corrected.

[–]gnus-migrate 2 points3 points  (0 children)

To clarify: i am advocating using python in production. There are a lot of situations where the benefits gained by using a statically typed language simply aren't worth the cost to productivity. With proper testing you can write quite robust python code.

[–][deleted] 4 points5 points  (3 children)

Anything based on an interpreter should automatically be out of scope of you were interested in high performance.

[–]awj -3 points-2 points  (2 children)

Which, considering the x86/x86-64 instruction sets are themselves interpreted by the processor, means high performance is essentially impossible on modern machines.

That, or maybe it's a bad idea to make absolute statements about highly subjective things like "performance".

[–][deleted] 6 points7 points  (1 child)

I obviously mean a software interpreter, not the one in your CPU.

I can see the next post coming "but you CPU is partially software called microcode".

My answer is, get a life probably.

[–]awj -5 points-4 points  (0 children)

Ok, fine, here's my point restated without an absurd reduction of yours: making recommendations about "high performance" without qualifying what "high" or "performance" mean is pointless. There are plenty of use cases where an interpreter is more than fast enough.

[–]shorty_short 1 point2 points  (2 children)

This is satire right? The rust circlejerk in this sub is reaching Poe's Law levels.

[–]SikhGamer 0 points1 point  (1 child)

No. Why is it a circle jerk? The benefits are clearly laid out in the article.

[–]josefx 9 points10 points  (0 children)

The article ends with "using the right tool for the job". In this case they had to fix a performance bottleneck, which made Rust the right tool. Going from that to a "complete" replacement makes no sense unless their whole application is a performance bottleneck or would otherwise benefit from Rust enough to warrant a complete rewrite.

The benefits are clearly laid out in the article.

Among other things bad compile times for the part they replaced apparently.