logoalt Hacker News

kragenlast Wednesday at 5:16 PM2 repliesview on HN

Programming in assembly is slow. It takes a long time to make things that way; as Julia Ecklar sings, it's kind of like construction work with a toothpick for a tool. (https://www.youtube.com/watch?v=WZCs4Eyalxc) But that's also true of knitting (https://journal.stuffwithstuff.com/2025/05/30/consider-knitt...), crochet, plasterwork, childrearing, calligraphy, gardening, carving marble, hand-soldering electronics, watching sunrises, and solving crossword puzzles.

If you have a six-day deadline, probably it would be better to use a high-level language instead.

But, when you have time for them, all of these things are intrinsically rewarding. Not all the time! And not for everyone! But for some of us, some of the time, they can all be very enjoyable. And sometimes that slow effort can achieve a result that you can't get any other way.

I haven't written that much assembly, myself. Much less than you have. If I had to write everything in assembly for years, maybe I wouldn't enjoy it anymore. I've written a web server, a Tetris game, some bytecode interpreters, a threading library, a 64-byte VGA graphics demo, a sort of skeletal music synthesizer, and an interpreter for an object-oriented language with pattern-matching and multiple dispatch, as well as a couple of compilers in high-level languages targeting assembly or machine code. All of these were either 8086, ARM, RISC-V, i386, or amd64; I never had to suffer through 6809 or various microcontrollers.

Maybe most important, I've never written assembly code that someone else depended on working. Those programs I've mostly written in Python, which I regret now. It's much faster that way. However, I've found it useful in practice for debugging C and C++ programs.

I think that a farmer who says, "For the vast majority of consumers, gardening offers absolutely no benefit," is missing the point. It's not about easier access to parsley and chives. Similarly for an author who says, "For the vast majority of readers, solving crossword puzzles offers absolutely no benefit."

So I don't think assembly sucks.


Replies

alcoverlast Wednesday at 6:59 PM

> as Julia Ecklar sings, it's kind of like construction work with a toothpick for a tool.

    I was taught assembler
    in my second year of school.
    It's kinda like construction work —
    with a toothpick for a tool.
    So when I made my senior year,
    I threw my code away,
    And learned the way to program
    that I still prefer today.
    
    Now, some folks on the Internet
    put their faith in C++.
    They swear that it's so powerful,
    it's what God used for us.
    And maybe it lets mortals dredge
    their objects from the C.
    But I think that explains
    why only God can make a tree.
    
    For God wrote in Lisp code
    When he filled the leaves with green.
    The fractal flowers and recursive roots:
    The most lovely hack I've seen.
    And when I ponder snowflakes,
    never finding two the same,
    I know God likes a language
    with its own four-letter name.
    
    Now, I've used a SUN under Unix,
    so I've seen what C can hold.
    I've surfed for Perls, found what Fortran's for,
    Got that Java stuff down cold.
    Though the chance that I'd write COBOL code
    is a SNOBOL's chance in Hell.
    And I basically hate hieroglyphs,
    so I won't use APL.
    
    Now, God must know all these languages,
    and a few I haven't named.
    But the Lord made sure, when each sparrow falls,
    that its flesh will be reclaimed.
    And the Lord could not count grains of sand
    with a 32-bit word.
    Who knows where we would go to
    if Lisp weren't what he preferred?
    
    And God wrote in Lisp code
    Every creature great and small.
    Don't search the disk drive for man.c,
    When the listing's on the wall.
    And when I watch the lightning burn
    Unbelievers to a crisp,
    I know God had six days to work,
    So he wrote it all in Lisp.
    
    Yes, God had a deadline.
    So he wrote it all in Lisp.
show 1 reply
chubotlast Wednesday at 5:29 PM

That's kind of how I feel about C. C is fun, because you get to see "everything"

But C is slow to create -- it is like using a toothpick

Writing from scratch is slow, and using C libraries also sucks. Certainly libc sucks, e.g. returning pointers to static buffers, global vars for Unicode, etc.

So yeah I have never written Assembly that anybody needs to work, but I think of it as "next level slow"

---

Probably the main case where C is nice is where you are working for a company that has developed high quality infrastructure over decades. And I doubt there is any such company in existence for Assembly

show 1 reply