Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm thinking, a lot of people, even developers are scary of assembly, right? Or a more irrefutable one: it doesn't have much use. Definitely it is true in the sense that indeed even system programmers don't write full assembly programs.

But then I thought about the kids in 80s, the Romeros and Carmacks, and a little before that the Garriots and Gates, those kids started with BASIC but immediately picked up assembly given the chance, because that was how high performance code could be written and they just learned it on the way. No Internet, very few books even for rich kids (usually a [Machine] programming guide is good enough). Now that I think about it, some of them were barely teenages.

I bet the real difference is 1) Much simpler machine arch and 2) They had to learn it for writing games and other high performance software.



I am also from that generation.

I really don't get how people are scared of low level programming, computer languages don't bite, don't attack on dark street corners, don't whatever.

Yes bad programs might corrupt some data, just like removing the plug with computer on might do the same and no one thinks twice about it.

Back in the day we didn't had tooling like Compiler Explorer to understand how BASIC would map to Assembly, only trial and error, alongside pen and paper.

Anyone that wants to learn Assembly nowadays can jump there, click on the high level constructs and see how they map to Assembly instructions for their favourite CPU.


On the other hand, architecture back then was pretty simple though. Plus there is a big OS in middle of everything, you cannot really talk to the hardware directly nowadays. Back in the Apple ][ and DOS days it was mandatory.

That's why I have always been thinking that people actually should still start from an Apple ][/C64/80286/NES/SNES/GB these days, or maybe just embedded system for cheaper introductory tuition/quicker employment. You ignore all bells and whistles of hardware accumulated through the last 30 or so years and start from bare metal, real mode and gradually crawl from there. But without ignoring the bells and whistles of software tools people built for these platforms. I bet nowadays we have better tools for developing on these platforms. As some other commenter said, we can spin up a VM or emulator and directly look at memory and registers.


If anything virtual machines have made this so much easier than before, it's like having a $100K CPU emulator on every desktop. You can look straight into the CPU, see all of the registers change in lockstep and the result on memory. I'd have happily killed for that in the 80's.


Assembly was pretty much the only way to break the speed barrier that BASIC imposed. It started out as 'the' language, then after a while you'd realize there was the computer underneath BASIC that could do more and was faster, but also a bit scary. Then, after you mastered peek and poke and bit by bit learned more about what made the computer tick one day you'd wake up and realize that all you still used BASIC for was to load machine language programs.

That gradual ramp made it work.


Yep. Plus nowadays people have so many selections and it doesn't really make sense to use assembly for production unless in rare cases.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: