[HN Gopher] Programming in Assembly Is Brutal, Beautiful, and Ma...
___________________________________________________________________
Programming in Assembly Is Brutal, Beautiful, and Maybe Even a Path
to Better AI
Author : fcpguru
Score : 44 points
Date : 2025-10-13 18:37 UTC (4 hours ago)
(HTM) web link (www.wired.com)
(TXT) w3m dump (www.wired.com)
| helsinkiandrew wrote:
| https://archive.ph/jV1CI
| robviren wrote:
| I have been playing with the idea of an LLM native programming
| language focusing on token efficiency, comprehension, and
| attention. It is interesting to see what the various large models
| come up with. A common theme actually reminds me quite of bit of
| assembly. The verb prefixing, limited statements per line, small
| concept surface area all appeared in multiple conversations
| across several larger models. The big difference being assembly
| lacks semantic meaning leaving some benefit on the table. I still
| cannot believe what some did with the tech, RCT is such a retro
| favorite.
| mwkaufma wrote:
| "Assembly is Brutal"
|
| Counterpoint: I picked it up in high school and I was Not That
| Bright(tm).
|
| Certainly, some complex instruction-set extensions or sprawling
| SIMD mnemonics are more challenging that what I was reading in
| the 90s, but the boogie-man status of assembly is greatly
| overstated.
|
| The final thesis, that we can-and-should let LLMs micro-optimize
| assembly into non-statically-verifiable gibberish to save an
| instruction stacks misunderstandings on top of misunderstandings.
| Just vapid gold-rush cheer-leading from Wired.
| antonvs wrote:
| Re your counterpoint, learning to write small extremely toy
| programs in assembly isn't hard. But using it to write bug-free
| programs with non-trivial functionality is much more difficult.
| bigfishrunning wrote:
| Generally, people aren't writing programs with non-trivial
| functionality in assembly; they're writing very small, hyper
| optimized functions that get called by some higher level
| language.
| jimt1234 wrote:
| Exactly ^^^ I taught myself assembly on my Commodore 64.
| However, I only used it for certain tasks that were
| suboptimal with Commodore's BASIC and 64K of RAM.
| mwkaufma wrote:
| Or in my case, 68K assembly for genesis/megadrive
| homebrew -- mostly to do VDP display interrupt tricks.
| sylware wrote:
| I am coding my own wayland compositor, in rv64 assembly...
| running on x86_64 with a small interpreter.
|
| I am currently only using the core ISA (no compressed
| instructions, not even the pseudo instructions), and I use a C
| preprocessor to avoid to get my code locked on the preprocessor
| of one assembler.
|
| I started to code assembly when I was a teenager as it is not
| hard: only uncomfortable. Nowdays, with what seems a real global,
| no IP locks, ISA, RISC-V, it is very reasonable to write directly
| assembly, as (real and sane) standard assembly is extremely
| efficient at fighting planned obsolecence.
| general1465 wrote:
| How did you validate correctness of your interpreter?
| jcranmer wrote:
| Programming in assembly isn't hard, it's just incredibly tedious.
| Doing manual linearization of an expression DAG, or manual
| register allocation, or manual control-flow layout very rarely
| adds any extra value compared to what the compiler will do for
| you.
|
| As for the idea that AI can optimize code better if we give it
| assembly code, that's called a peephole superoptimizer, and we've
| known about it for quite some time ([1], which cites the first
| relevant paper as being from 1987). It's not new, and it's
| actually been used to improve the peepholes of compilers for
| quite same time now. The main limiting factor is probably in our
| ability to prove correctness of the code generated by search
| algorithms.
|
| [1] https://www.cse.iitm.ac.in/~krishna/courses/2022/odd-
| cs6013/...
| estimator7292 wrote:
| I firmly believe that _all_ programmers, even you, should be
| forced to program a microcontroller in assembly at least once.
|
| IMO the utter lack of awareness that our abstractions represent a
| _physical machine_ with _real hardware_ that operates in _finite
| time_ is why software today is so bad. Our languages are so far
| removed from the hardware that the CPU and its finite resources
| simply don 't exist for most programmers. Many of the rising
| generation of engineers have no clue how a CPU works, what a
| register is, or what the cost of reading and writing to RAM is.
|
| Assembly is not so difficult as to be unapproachable for
| beginners. Remember, back in the day we _all_ started in assembly
| and produced a generation of absolutely brilliant engineers and
| scientists. We all _had_ to understand the physicality of the
| real machine and we had to make the best we could with very
| constrained resources.
| matt_daemon wrote:
| I enjoyed assembly programming in uni but haven't done much
| since. This take to rewrite everything in it tends to pop up
| every now and then, and I think the last line sums pretty well
| why it never actually happens:
|
| "It was probably just his imagination, but the display had been a
| little laggy, he thought. He'd redo the code if he could, he
| said. But alas, Sawyer and the machine did not speak the same
| assembly language."
___________________________________________________________________
(page generated 2025-10-13 23:01 UTC)