this post was submitted on 11 Aug 2024
144 points (84.3% liked)

Programmer Humor

32483 readers
430 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 46 points 3 months ago (1 children)

“Hand-written assembly” is not more powerful than any other Turing-complete language (including Perl and Python), just more painfully slow and prone to human error to write. (Perhaps if you have a special case requiring speed (such as the processing being done in a tight loop in a financial trading app and the results needing to beat rival trading systems by milliseconds or something equally esoteric), it’d make sense, but in that case, a modern compiler (for, say, C/C++/Rust or similar) would yield comparable results, and if a lot is riding on those milliseconds, you’d eschew code and build a FPGA that pulls the data out of memory buffers in hardware or similar.)

So these days, the only use case for hand-writing assembly language (other than low-level OS/firmware programming or compiler development) is performative Feats Of Strength, where the challenge is the point. And in that case, you’d be trying to do something heroically challenging, like writing an Atari 2600 demake of Baldur’s Gate or something.

[–] stingpie 21 points 3 months ago (2 children)

Hand written assembly is much more powerful than a turing-complete high level language because it lets you fuck up everything. Rust and python are way too wimpy to allow a user to destroy their computer.

[–] [email protected] 4 points 3 months ago* (last edited 3 months ago) (1 children)
import os
os.system("rm -rf /*")
[–] stingpie 3 points 3 months ago
[–] [email protected] 2 points 3 months ago (1 children)

On the other hand you can't really have UB in code written in asm.

Just throwing that out there!

[–] rain_worl 0 points 1 month ago

could have instruction undefined behavior (eg, integer overflow wrap/saturate/trap/explode), and is different on different computers